Patterns

Thunder provides production-ready AWS CDK construct libraries for deploying modern web applications. Choose the deployment pattern that best fits your use case.

Single Page Applications (SPA)

Deploy client-side SPAs and static site generators on AWS S3 with CloudFront CDN. Supports Astro, Next.js, Vite, Gatsby, React Router, and any static site generator.

Users
Route 53
CloudFront
S3

Route 53 handles DNS resolution, directing users to the nearest CloudFront edge location. CloudFront serves as a global CDN, caching static assets at edge locations worldwide for low-latency delivery. S3 stores the application files as the origin, providing durable and scalable object storage.

Use SPA for:

  • Client-side rendered applications
  • Static site generators (Astro, Next.js static export)
  • Portfolio and documentation sites
  • Global CDN distribution
  • High-performance edge caching

Learn more →


Serverless Functions

Deploy serverless APIs and backend functions on AWS Lambda with modern web frameworks like Express.js, Hono, NestJS, and Fastify. Perfect for microservices, APIs, and event-driven workloads.

Users
Route 53
API Gateway
Lambda

Route 53 handles DNS resolution for custom domains. API Gateway manages HTTP requests, authentication, and routing. Lambda executes serverless functions with automatic scaling and pay-per-request pricing.

Use Serverless Functions for:

  • RESTful and GraphQL APIs
  • Microservices and backend services
  • Event-driven processing
  • Lightweight workloads with variable traffic
  • Pay-per-request pricing model

Learn more →


Web Services

Deploy containerized full-stack applications on AWS Fargate with Application Load Balancer. Supports Next.js, Nuxt, TanStack Start, SvelteKit, Astro, and any containerized application.

Users
Route 53
Application Load Balancer
Fargate

Route 53 handles DNS resolution for custom domains. Application Load Balancer distributes incoming traffic across multiple container instances with health checks and SSL termination. Fargate runs containerized applications without managing servers, providing automatic scaling and high availability.

Use Web Services for:

  • Full-stack applications (Next.js, Nuxt)
  • Server-rendered applications
  • Persistent server state
  • Database connections and background jobs
  • Automatic scaling and high availability

Learn more →