← Back to articles

SST Review 2026: Full-Stack Apps on AWS, Made Simple

SST (Serverless Stack) makes deploying to AWS not terrible. It provides TypeScript-first infrastructure as code, instant local development, and a web console for managing your apps. After using it for a production project, here's the honest review.

What SST Does

  • Infrastructure as code — Define AWS resources in TypeScript
  • Live Lambda dev — Test Lambda functions locally against real AWS resources
  • Console — Web dashboard for logs, functions, and resources
  • Frontend deployment — Deploy Next.js, Astro, Remix to CloudFront
  • API routes — Create API Gateway endpoints easily
  • Cron jobs — Schedule Lambda functions
  • Auth — Built-in auth module (Google, GitHub, etc.)
  • Databases — Easy RDS, DynamoDB, and Aurora setup

What I Like

TypeScript Infrastructure

Define your entire stack in TypeScript:

const bucket = new sst.aws.Bucket("Uploads")
const api = new sst.aws.Function("Api", {
  handler: "packages/api/src/index.handler",
  link: [bucket],
})
const site = new sst.aws.Nextjs("Site", {
  link: [api],
})

Type-safe, auto-completed, and readable. Compare this to writing CloudFormation YAML.

Live Lambda Development

The killer feature. sst dev connects your local code to real AWS resources. When you invoke a Lambda function, your local code runs — with access to real DynamoDB, S3, etc. Changes are instant (no deployment).

This solves the biggest pain of serverless development: the deploy-test-deploy cycle. With SST, development feels like working with a local server.

Resource Linking

SST's link system automatically injects permissions and environment variables:

const table = new sst.aws.Dynamo("Table", { ... })
const api = new sst.aws.Function("Api", {
  handler: "src/api.handler",
  link: [table], // Automatically gets DynamoDB permissions + table name
})

// In your function code:
import { Resource } from "sst"
const tableName = Resource.Table.name // Type-safe access

No manually configuring IAM policies or environment variables. Linking handles it.

The Console

Web-based dashboard for your SST apps. View function logs, invoke functions, browse S3 buckets, and query DynamoDB — all from a clean UI. Much better than the AWS Console for day-to-day work.

Multi-Stack Architecture

Organize resources into logical stacks. Deploy stacks independently. This matters for large apps where you don't want to redeploy everything for a small change.

What I Don't Like

AWS Lock-In

SST is AWS-only. Your infrastructure code doesn't work on GCP or Azure. If you might switch clouds, this is a concern. (Most startups won't switch.)

Learning Curve

You need to understand AWS services (Lambda, API Gateway, CloudFront, DynamoDB, IAM). SST simplifies the configuration but you still need to know what you're building on.

Cold Starts

Lambda cold starts remain an issue. SST doesn't solve this — it's an AWS limitation. Functions that haven't been invoked recently have 100-500ms cold starts.

Deployment Speed

Initial deployments are slow (CloudFormation under the hood). Subsequent updates are faster but still 30-60 seconds. Compare to Vercel's 10-second deployments.

Debugging Production Issues

Live Lambda dev is great locally. In production, you're debugging with CloudWatch logs and the SST Console. Less convenient than local debugging.

Pricing

SST itself is free and open source. You pay for AWS resources:

ResourceTypical Cost
Lambda$0.20/million requests + compute time
API Gateway$1/million requests
DynamoDB$1.25/million writes, $0.25/million reads
S3$0.023/GB storage
CloudFront$0.085/GB transfer

A typical small SaaS: $5-50/month on AWS. Very cost-effective.

SST vs Alternatives

SSTVercelServerless Framework
CloudAWSVercel (abstracted)AWS, GCP, Azure
LanguageTypeScriptN/A (config)YAML + JS
Local dev✅ Live Lambdanext dev❌ (plugins)
Deploy speed30-60s10-15s30-120s
Frontend✅ Best
PricingAWS costs$20/mo+AWS costs
DX✅✅✅✅✅✅✅✅✅

When to Use SST

✅ Use SST When

  • Building on AWS and want good DX
  • Need full control over infrastructure
  • Running a SaaS with serverless architecture
  • Want to keep costs low (pay-per-use)
  • Team knows (or wants to learn) AWS

❌ Skip SST When

  • Just need a Next.js deployment (use Vercel)
  • Don't want to deal with AWS at all
  • Need multi-cloud support
  • Small project that doesn't need infrastructure control

FAQ

Is SST production-ready?

Yes. SST v3 (Ion) is stable and used in production by many companies.

SST vs CDK?

SST is built on top of Pulumi (v3) or CDK (v2). SST adds the developer experience layer: live dev, console, resource linking. Use SST instead of raw CDK.

Do I need AWS experience?

Basic understanding helps. SST simplifies AWS but doesn't hide it completely. You'll benefit from knowing Lambda, DynamoDB, and S3 concepts.

Can I deploy Next.js with SST?

Yes. new sst.aws.Nextjs("Site") deploys Next.js to CloudFront + Lambda. Works well but Vercel is simpler if you don't need AWS control.

Bottom Line

SST makes AWS development not suck. Live Lambda dev, TypeScript infrastructure, and resource linking create a genuinely good developer experience on top of AWS. The tradeoff is AWS lock-in and a learning curve.

Recommendation: Use SST if you're building on AWS and want the best DX possible. For simple web apps, Vercel is easier. For full-stack AWS applications with specific infrastructure needs, SST is the best tool available.

Get AI tool guides in your inbox

Weekly deep-dives on the best AI coding tools, automation platforms, and productivity software.