Serverless Stack (SST) is a framework that makes it easy to build serverless apps. It's an extension of AWS CDK and it features:
- A Live Lambda Development environment
- Support for setting breakpoints and debugging in VS Code
- Higher-level constructs designed specifically for serverless apps
- Zero-config support for Go, Python, ES and TypeScript using esbuild
- Support for deploying to multiple environments and regions
Create your first SST app.
# Create your app $ npx create-serverless-stack@latest my-sst-app $ cd my-sst-app # Start Live Lambda Development $ npx sst start # Deploy to prod $ npx sst deploy --stage prod
We think SST can make it dramatically easier to build serverless apps.
Live Lambda Development
sst start command starts up a local development environment that opens a WebSocket connection to your deployed app and proxies any Lambda requests to your local machine.
This allows you to:
- Work on your Lambda functions locally
- Supports all Lambda triggers, so there's no need to mock API Gateway, SQS, SNS, etc.
- Supports real Lambda environment variables and Lambda IAM permissions
- And it's fast. There's nothing to deploy when you make a change!
Composable serverless constructs
SST also comes with a set of serverless specific higher-level CDK constructs. This includes:
- Api for building APIs
- Cron for building cron jobs
- Queue for creating queues
- Bucket for adding S3 buckets
- Auth for configuring authentication
- Table for adding DynamoDB tables
- Topic for creating pub/sub systems
- StaticSite for creating static websites
- KinesisStream for real-time data streaming
- WebSocketApi for creating WebSocket APIs
- ApolloApi for using Apollo Server with Lambda
- AppSyncApi for creating AppSync GraphQL APIs
- ApiGatewayV1Api for using AWS API Gateway v1
SST also supports deploying your CloudFormation stacks asynchronously. Seed natively supports concurrent asynchronous deployments for your SST apps. And SST deployments on Seed are free!
SST also comes with a few other niceties:
Internally, SST uses the CDK CLI to invoke the various CDK commands.