Skip to main content

Introduction

Stars

Watch

Discuss

Sponsor

Use this GitHub Action



Scaffoldly is a new framework for packaging and deploying applications to AWS. Scaffoldly provides:

It is a open-source, no-code, developer-focused solution that simplifies the packaging and deployment process for modern web applications.

✨ Our docs site is built and deployed using Scaffoldly (source), which uses the Docusaurus Framework, is hosted on AWS Lambda, and is deployed using GitHub Actions (source).

Motivation

  • Current tooling (such as Serverless, AWS SAM, Terraform, Pulumi, AWS CDKs, and Docker) is unintuitive and cumbersome for developers.
  • Popular frameworks (such as Next.js) are expensive and difficult to deploy to public Clouds Providers such as AWS.
  • Most applications can be run cost effectively in serverless compute such as AWS Lambda.

We believe that developing apps locally has been made incredibly easy. Deploying them to the Cloud Provider of your choice should be equally easy. Learn More.

Key Features

  • Automatic Docker Image Generation: No need to write Dockerfiles manually.
  • Infrastructure Automation: Automatically create and manage AWS resources.
  • Built-in CI/CD Support: Integrate with GitHub Actions for seamless deployments.
  • Environment Variables and Secrets: Dotenv and GitHub Secrets are built-in.
  • Minimal configuration required: Get started quickly with sensible defaults.
  • Built for the Public Cloud: Deploy applications to AWS Lambda effortlessly. Don't get locked into using Vercel or Netlify.
  • Cost Effective: Only pay for what you use with AWS Lambda.

Tutorials

Usage

Using a minimal configuration in package.json, the scaffoldly toolchain can package and deploy an application:

package.json
{
"name": "my-app",
"version": "0.1.0",
// other package.json
"scaffoldly": {
"runtime": "node:22-alpine",
"handler": "localhost:3000",
"files": [".next", "node_modules", "package.json", "package-lock.json"],
"scripts": {
"install": "npm install",
"dev": "npm run dev",
"build": "npm run build",
"start": "npm run start"
}
}
}

Running scaffoldly deploy or the GitHub Action will automatically create and push a multi-stage Docker build to ECR and deploy it to AWS Lambda.

Command Line Interface

npx scaffoldly [command]

The Scaffoldly CLI is a developer friendly tool build and host applications on AWS Lambda with ease, and is available on npm and can be invoked using npx.

Commands:
npx scaffoldly show Display config, dockerfiles, etc.
npx scaffoldly dev [ALPHA FEATURE] Launch a development environment
npx scaffoldly deploy Deploy an environment

Options:
--help Show help [boolean]
--version Show version number [boolean]

See: CLI Docs for more iformation.

GitHub Action

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Deploy
uses: scaffoldly/scaffoldly@v1
with:
secrets: ${{ toJSON(secrets) }}

Scaffoldly provides a seamless integration with GitHub Actions, allowing you to deploy your applications using GitHub, and is available on the GitHub Actions Marketplace.

See: GitHub Action Docs for more information.

Usage Metrics Opt-Out

If you do not want to be included in Anonymous Usage Metrics, ensure an environment variable named SCAFFOLDLY_DNT is set:

SCAFFOLDLY_DNT=1 npx scaffoldly

Documentation

Documentation for the Scaffoldly toolchain is located at https://scaffoldly.dev/docs.

Reporting Issues

Maintainers

License

Functional Source License, Version 1.1

Questions, Feedback, and Help