Contributing

We're so glad you're interested in Contributing to Scaffoldly or interested in learning more about our open source tooling.

If you'd like to contribute, Join the Slack Communityarrow-up-right and hop into the #contributing channel.

You can also check out the various Open Source Tooling we provide, maintain, use, and contribute to below.

Open Source Components

Scaffoldly outfits a User or Organization with a lot of tooling. For transparency, we have open-sourced the tooling and components for full transparency of stacks we create and manage

Infrastructure

Terraform for AWS

When the scaffoldly-bootstrap project is created, it's created using the Terraform AWS Archetypearrow-up-right.

The scaffoldly-bootstrap then configures an AWS account using the Terraform AWS Bootstraparrow-up-right Terraform Module, which is generally available in Terraform Registryarrow-up-right, as well as the Additional Modulesarrow-up-right that are used. Links to the GitHub repositories can be found in each module within the Scaffoldly Project on GitHubarrow-up-right.

Code Templates

When Scaffoldly creates Microservices, we've partnered with an open-source template rendering tool called Archetectarrow-up-right. Scaffoldly has developed a GitHub Action for Archetectarrow-up-right to render Archetypes on a repository, and all projects are created using the GitHub Template.

Serverless Express Microservices

When Microservices are created, they're creating using the Serverless Express REST API Archetypearrow-up-right. Various different ways we customize options in the generated tempates build it can be found herearrow-up-right.

CI/CD

Infrastructure

Scaffoldly provides a Bootstrap Actionarrow-up-right to execute terraform plan and terraform apply operations within GitHub. This is automatically added to the scaffoldly-bootstrap repositories during Template Renderingarrow-up-right.

Microservices

Scaffoldly provides a Bump Version Actionarrow-up-right to execute deploys to AWS for nonlive and live environments. This is automatically added to each Microservice during Template Renderingarrow-up-right.

Libraries

TypeScript

For each Serverless Express REST API that is generated, the serverless-utilarrow-up-right NPM packagearrow-up-right is added to simplify interaction with various components in AWS, such as Getting/Fetching Secrets, interacting with DynamoDB, and much more.

Utilities

OpenAPI Generation

We've leveraged the OpenAPI Generatorarrow-up-right project to automatically generate OpenAPI/Swagger docs when the project is built. In TypeScript, it auto-generates the OpenAPI document using Tsoaarrow-up-right.

We've written a Wrapper to the OpenAPI CLIarrow-up-right to discover and auto-generate OpenAPI docs for each microservice in your projectarrow-up-right.

Dotenv

Each Microservice is outfitted with Dotenvarrow-up-right. To standardize environment variable injection from multiple locations in your project, we've written the dotenv-outarrow-up-right CLI to write multiple dotenv configurations to a single filearrow-up-right in various formats.

Documentation

The documentation that you're reading now is Open Source and we welcome contributions to it. The documentation is hosted generously for free by GitBookarrow-up-right.

Last updated