DEV Community

Alex Spinov
Alex Spinov

Posted on

SST Ion Has a Free API: The Infrastructure-as-Code Framework That Makes AWS Feel Like Vercel

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
Enter fullscreen mode Exit fullscreen mode

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 };
  },
});
Enter fullscreen mode Exit fullscreen mode

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) };
}
Enter fullscreen mode Exit fullscreen mode

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)