agentsclimarketplace

Sst ion

Skill ComeOnOliver/skillshub/skills/TerminalSkills/skills/sst-ion

🧠 The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.From the repository description

Install
npx -y skills add ComeOnOliver/skillshub --skill sst-ion

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

3.9 KB, 997 tokens by cl100k_base, as published. Nobody here has run it

SST (Ion) β€” Full-Stack Serverless Framework

You are an expert in SST (Ion), the framework for building full-stack serverless applications on AWS. You help developers deploy Next.js, Remix, Astro, and API services with infrastructure-as-code defined in TypeScript, automatic IAM permissions, live Lambda debugging, secrets management, and zero-config deployments β€” replacing CDK/Terraform complexity with a developer-friendly abstraction over AWS services.

Core Capabilities

Infrastructure as Code

// sst.config.ts β€” Define your entire app
export default $config({
  app(input) {
    return {
      name: "my-saas",
      removal: input.stage === "production" ? "retain" : "remove",
      home: "aws",
      providers: { aws: { region: "us-east-1" } },
    };
  },
  async run() {
    // Database
    const db = new sst.aws.Postgres("MyDB", { scaling: { min: "0.5 ACU", max: "4 ACU" } });

    // S3 bucket for uploads
    const bucket = new sst.aws.Bucket("Uploads", {
      access: "public",
      cors: { allowOrigins: ["*"], allowMethods: ["GET", "PUT"] },
    });

    // Secrets
    const stripeKey = new sst.Secret("StripeKey");
    const openaiKey = new sst.Secret("OpenAIKey");

    // API
    const api = new sst.aws.Function("Api", {
      handler: "packages/api/src/handler.handler",
      link: [db, bucket, stripeKey],      // Auto-grants IAM permissions
      url: true,                          // Creates function URL
    });

    // Cron job
    new sst.aws.Cron("DailyReport", {
      schedule: "rate(1 day)",
      job: {
        handler: "packages/api/src/cron/daily-report.handler",
        link: [db],
        timeout: "5 minutes",
      },
    });

    // Queue
    const queue = new sst.aws.Queue("EmailQueue", {
      consumer: {
        handler: "packages/api/src/queue/email.handler",
        link: [db],
      },
    });

    // Next.js frontend
    const site = new sst.aws.Nextjs("Web", {
      path: "packages/web",
      link: [api, bucket, stripeKey],
      environment: { NEXT_PUBLIC_API_URL: api.url },
      domain: {
        name: "app.example.com",
        dns: sst.aws.dns(),
      },
    });

    return { api: api.url, site: site.url };
  },
});

Using Linked Resources

// packages/api/src/handler.ts β€” Access linked resources type-safely
import { Resource } from "sst";

export async function handler(event) {
  // Resource bindings β€” type-safe, auto-permissioned
  const dbUrl = Resource.MyDB.url;          // RDS connection string
  const bucketName = Resource.Uploads.name; // S3 bucket name
  const stripeKey = Resource.StripeKey.value; // Secret value

  // Upload to S3 (IAM permissions auto-granted by `link`)
  await s3.putObject({
    Bucket: Resource.Uploads.name,
    Key: `uploads/${event.fileName}`,
    Body: event.fileBuffer,
  });
}

Installation

# Install SST
curl -fsSL https://sst.dev/install | bash

# Create new project
sst init

# Development (live Lambda debugging)
sst dev

# Deploy
sst deploy --stage production

# Set secrets
sst secret set StripeKey sk_live_...

Best Practices

  1. Link for permissions β€” Use link: [resource] instead of manual IAM policies; SST auto-grants minimal permissions
  2. Resource bindings β€” Access linked resources via Resource.Name.property; fully typed, no env var juggling
  3. Stages for environments β€” Use --stage dev/staging/prod; each stage gets isolated resources
  4. Live debugging β€” Use sst dev for real-time Lambda debugging; edit code, test instantly, see logs
  5. Secrets management β€” Use sst.Secret for API keys; encrypted, per-stage, accessible via Resource
  6. Domain configuration β€” Use domain property on sites; SST handles SSL certificates and DNS records
  7. Monorepo structure β€” Use packages/ directory; separate api, web, shared code; SST links them automatically
  8. Removal policy β€” Set removal: "retain" in production; prevents accidental deletion of databases and buckets

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.