AWS has 200+ services. Deploying a simple app requires CloudFormation, IAM roles, API Gateway configs, and S3 buckets. SST Ion abstracts this into simple TypeScript components — deploy to AWS with Vercel-like simplicity.
What Is SST Ion?
SST Ion is an open-source infrastructure-as-code framework. It uses Pulumi under the hood and provides high-level components for common patterns: APIs, websites, databases, cron jobs, queues, and more. You write TypeScript, SST deploys to AWS.
The Free Framework
SST Ion is completely free and open source:
- TypeScript components: Define infrastructure in code you already know
- Live Lambda dev: Instant hot-reload for Lambda functions
- Linked resources: Type-safe access to AWS resources
- Multi-stage: Dev, staging, prod with one config
- Console: Web dashboard for monitoring
- Drop-in auth: Cognito, Google, GitHub auth
Quick Start
npx create-sst@latest my-app
cd my-app
npx sst dev
Define infrastructure (sst.config.ts):
export default $config({
app(input) {
return { name: 'my-app', removal: 'remove' };
},
async run() {
// API
const api = new sst.aws.ApiGatewayV2('Api');
api.route('GET /users', 'src/users.list');
api.route('POST /users', 'src/users.create');
// Database
const db = new sst.aws.Dynamo('Database', {
fields: { userId: 'string', email: 'string' },
primaryIndex: { hashKey: 'userId' },
});
// Link resources (type-safe!)
api.route('GET /users', {
handler: 'src/users.list',
link: [db],
});
// Static site
const site = new sst.aws.StaticSite('Web', {
path: 'web',
build: { command: 'npm run build', output: 'dist' },
environment: { VITE_API_URL: api.url },
});
// Cron job
new sst.aws.Cron('DailyReport', {
schedule: 'rate(1 day)',
job: 'src/report.handler',
});
return { api: api.url, site: site.url };
},
});
Access linked resources type-safely:
// src/users.ts
import { Resource } from 'sst';
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
const db = new DynamoDBClient({});
export async function list() {
// Resource.Database.name is typed!
const result = await db.scan({ TableName: Resource.Database.name });
return { statusCode: 200, body: JSON.stringify(result.Items) };
}
Why Teams Choose SST
A startup was spending 2 hours per feature on CloudFormation YAML. After switching to SST, the same infrastructure took 5 minutes in TypeScript — with autocomplete, type checking, and live reload during development. Their infrastructure code went from 500 lines of YAML to 50 lines of TypeScript.
Who Is This For?
- AWS developers tired of CloudFormation and CDK complexity
- Full-stack developers wanting Vercel DX on AWS
- Startups building on AWS without a dedicated DevOps team
- Teams wanting type-safe infrastructure with live development
Start Building on AWS
SST Ion makes AWS feel simple. TypeScript infrastructure, live development, type-safe resources.
Need help with AWS architecture? I build custom cloud solutions — reach out to discuss your project.
Found this useful? I publish daily deep-dives into developer tools and APIs. Follow for more.
Top comments (0)