SST
A TypeScript framework that defines a whole app, from Next.js front end to functions, containers and databases, in one config file and deploys it to your own AWS or Cloudflare account.
- Type
- Open source
- Made by
- Anomaly Innovations
- License
- MIT
- Facts checked
- 6 October 2026
What it is
An SST app is described in one file, sst.config.ts. Instead of listing low-level resources, you create components: sst.aws.Nextjs for a front end with its domain, sst.aws.Function for a Lambda function, sst.aws.Service for an always-on container on ECS and Fargate, plus buckets, Postgres databases, cron jobs, and Cloudflare Workers. Each component creates the underlying resources with sensible defaults, and a transform option lets you change any of them. Beyond the built-in AWS and Cloudflare components you can use resources from any of the 150+ Pulumi and Terraform providers, such as Stripe, Vercel or PlanetScale.
Under the hood SST uses Pulumi’s deployment engine with Terraform-based providers. It runs from your machine or CI, keeps its state file locally and backs it up to a bucket in your account, with secrets in the state encrypted by a passphrase stored in SSM. Two features target the inner loop. Linking (link: [bucket]) grants a function or site permission to a resource and gives your code typed access to it, as Resource.MyBucket.name. sst dev deploys the app to a development stage and proxies its Lambda invocations to your laptop, so code changes take effect without a redeploy.
SST is open source under MIT, built by Anomaly Innovations, which also makes opencode, OpenNext and OpenAuth and sells the optional SST Console for logs, issues and automatic deploys. Versions 1 and 2 were built on the AWS CDK and CloudFormation; version 3 (2024) replaced both, and version 4 (February 2026) moved to version 7 of the Pulumi AWS provider. The latest release is 4.17.1, from July 2026.
Why teams pick it
- High-level components for frameworks like Next.js, Remix, Astro and SvelteKit, so a full-stack app is a few lines of config
- Live Lambda development:
sst devruns functions locally against real AWS events, with breakpoints and the function’s real IAM permissions - Resource linking replaces hand-written IAM policies and environment variables, with typed SDKs for JS/TS, Python, Go and Rust
- No CloudFormation underneath since v3: no stacks, no 500-resource limit per stack, and any Pulumi or Terraform provider
Watch out for
- Major versions have meant migrations: v3 dropped CDK constructs, which had to be rewritten, and v4 needs a one-way state refresh on every stage
- Built-in components exist only for AWS and Cloudflare; anything else is lower-level provider resources
- The config is TypeScript, and the project depends on one small company whose team also works on other products
- Another layer between you and the cloud: when a component’s defaults don’t fit, you debug its generated Pulumi resources
Alternatives
What all infrastructure as code have in common →
AWS Cloud Development Kit (CDK)AWSDefine AWS infrastructure in TypeScript, Python, Java, C# or Go; the CDK turns it into CloudFormation templates and CloudFormation deploys them.How it fits with other technologies
sst.config.ts: a bucket linked to a function with a public URL · ts
/// <reference path="./.sst/platform/config.d.ts" />
export default $config({
app(input) {
return { name: "receipts", home: "aws" }; // state lives in your AWS account
},
async run() {
const bucket = new sst.aws.Bucket("Uploads");
const api = new sst.aws.Function("Api", {
handler: "src/api.handler",
url: true,
link: [bucket], // IAM access + typed Resource.Uploads in the handler
});
return { url: api.url };
},
});
// $ sst dev deploys a dev stage, runs functions live on your machine
// $ sst deploy --stage productionSee it in a real stack
No architecture uses SST yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2020–2026
SST started in 2020 as Serverless Stack, a framework for building serverless apps on AWS that launched publicly in 2021. It was built on the AWS CDK, so its constructs generated CloudFormation templates that AWS then deployed. In June 2022 it renamed itself SST, partly to stop being confused with the Serverless Framework, and moved to sst.dev; v1 had shipped that May and a rewritten v2 followed in February 2023.
After nearly three years on CDK and CloudFormation, the team decided the foundations were the problem. A January 2024 post listed what they kept hitting: CloudFormation runs as a black box on AWS’s side, failed deployments can get stuck rolling back, every stack is limited to 500 resources (a Next.js site alone created around 68), and supporting a non-AWS provider such as Cloudflare would need custom-resource hacks. They began a new engine, code-named Ion, built on Pulumi and Terraform providers.
Ion was released as SST v3 in August 2024, with no CDK, no CloudFormation and support for 150+ providers. SST v4, in February 2026, was a smaller step that moved to the Pulumi AWS provider v7. Meanwhile the company behind it, Anomaly, broadened its work to opencode, an open-source AI coding agent, alongside OpenNext and OpenAuth.
Why it’s built this way
- Start on top of the AWS CDK
- CDK already modelled every AWS resource and deployed through CloudFormation, so a small team could focus on higher-level constructs and live development instead of a deployment engine.
- Replace CDK and CloudFormation with Pulumi and Terraform providers
- CloudFormation’s opaque execution, slow and sometimes stuck rollbacks and 500-resource stack limit kept hurting users, and it couldn’t deploy to providers like Cloudflare without workarounds.
- Run Lambda functions on the developer’s machine during development
- Redeploying a function to test every change is slow. Proxying invocations from AWS to the laptop gives sub-second reloads and real breakpoints while still using real events and permissions.
- Link resources instead of wiring permissions by hand
- Connecting a function to a bucket normally means an IAM policy plus an environment variable with the bucket’s name. One
linkdoes both and gives the code typed access.
Timeline
- 2020
Repository created as Serverless Stack, built on the AWS CDK
- 2022
SST v1 in May; renamed from Serverless Stack to SST in June
- 2023
SST v2, a rewrite into a single
sstpackage, in February - 2024
Team announces Ion in January; released as SST v3 in August
- 2026
SST v4 moves to the Pulumi AWS provider v7 in February
- SST: About (launched in 2021; opencode, OpenNext, OpenAuth)
- GitHub API: anomalyco/sst repository (created August 2020)
- SST blog: SST v1 (May 2022)
- SST blog: SST.dev, changing our name from Serverless Stack (Jun 2022)
- SST blog: SST v2 (Feb 2023)
- SST blog: Moving away from CDK (Jan 2024)
- SST blog: SST v3, Ion is now officially SST v3 (Aug 2024)
- GitHub: SST 4.0.0 release (Feb 2026)
- SST docs: Migrate from v3 (Pulumi AWS provider v7)
Sources15 · facts checked 6 October 2026
- SST docs: What is SST (components, 150+ providers, transforms)
- SST docs: Providers (built on Pulumi/Terraform)
- SST docs: State (local state backed up to a bucket, passphrase in SSM)
- SST docs: Live (proxying Lambda invocations to your machine)
- SST docs: Linking
- SST docs: Config reference ($config, app, run)
- SST docs: Service component (Amazon ECS on AWS Fargate)
- SST docs: Cloudflare Worker component
- SST docs: Function component
- SST docs: Migrate from v3 (one-way state migration)
- SST blog: SST v3 (no CDK constructs, no CloudFormation stacks)
- AWS docs: CloudFormation quotas (500 resources per template)
- SST on GitHub: MIT licence
- GitHub: SST v4.17.1 release (Jul 2026)
- SST blog index (Console pricing, Windows support and other updates)