Getting Started with Thunder

Thunder is an open-source CDK library and CLI for deploying modern web applications on your own AWS account — no vendor lock-in, no black boxes.

The Thunder Library

The @thunder-so/thunder package provides CDK constructs for every deployment pattern: static sites, serverless functions, containers on Fargate, and full-stack SSR frameworks.

Install

Terminal window
bun add -d @thunder-so/thunder

Bootstrap AWS

If you haven’t bootstrapped your AWS environment yet:

Terminal window
cdk bootstrap aws://YOUR_ACCOUNT_ID/us-east-1

Create a Stack

Create a stack file (e.g. stack/dev.ts) and pick the construct that matches your app:

stack/dev.ts
import { Cdk, Static, type StaticProps } from '@thunder-so/thunder';
const config: StaticProps = {
env: { account: 'YOUR_ACCOUNT_ID', region: 'us-east-1' },
application: 'myapp',
service: 'web',
environment: 'prod',
rootDir: '.',
outputDir: 'dist',
};
new Static(new Cdk.App(), `${config.application}-${config.service}-${config.environment}-stack`, config);

Deploy

Terminal window
npx cdk deploy --app="npx tsx stack/dev.ts" --profile default

After deployment you’ll receive a CloudFront URL for your application.


Framework Guides

Pick your framework for a step-by-step deployment guide.


Thunder Console

Prefer a UI over writing CDK stacks? Thunder Console is a hosted dashboard that connects to your AWS account and manages deployments for you.

Connect your AWS account

Thunder creates a scoped IAM role in your account — you stay in control of your infrastructure.

Import from GitHub

Install the Thunder GitHub App and import any repository. Automatic build detection included.

Manage environments

Configure environment variables, custom domains, redirects, and response headers from the UI.

Real-time build logs

Watch builds and deployments stream live. Get notified on success or failure via email or Slack.