---
title: Patterns
description: AWS CDK Construct Libraries that provide simple configuration to deploy modern web apps.
---
import ServerlessAPIArchitecture from '@/components/docs/patterns/ServerlessAPIArchitecture.astro';
import SPAArchitecture from '@/components/docs/patterns/SPAArchitecture.astro';
import WebServiceArchitecture from '@/components/docs/patterns/WebServiceArchitecture.astro';
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.
**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 →](/docs/patterns/s3-cloudfront)
---
## 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.
**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 →](/docs/patterns/lambda-apigateway)
---
## 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.
**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 →](/docs/patterns/fargate-alb)