Serverless Stack + Prisma - Starter Kit
What is this?
If you want to build a serverless app with AWS CDK, Lambda, and Postgres, this is the template for you.
You can click "Use this template" button in GitHub to fork this repo. You can merge in improvements in this repo to your project over time.
Clone your copy of this template, then do a search and replace for "myapp" to give it a name.
Quickstart
Prerequisites
Assumes you have Node 20 installed and AWS credentials configured.
Setup
Edit sst.config.ts and set your default AWS profile and region.
npm i -g pnpm # install pnpm globally pnpm i # install dependencies + generate types from DB and GQL schemas pnpm commit-hooks # install commit hooks for linting and formatting (optional) pnpm db:migrate # run DB migrations pnpm dev # start AWS local dev environment pnpm dev:web # start NextJS frontend dev server
Config
Set your default AWS profile and region in sst.config.ts.
Edit .env or .env.$stage to set infrastructure vars.
Features
All features are optional, delete what you don't need.
Click links to learn more and view documentation.
- 🌩 Serverless Stack - powerful CDK developer experience tools
- 🌤 AWS CDK - cloud-native infrastructure as code
- ፨ GraphQL API (optional)
- ⇅ AWS AppSync - serverless GraphQL AWS service
- ✽ Code generation of TypeScript + react client
- 🌐 REST API gateway
- 🖥 NextJS nextjs app router
- 🎨 Tailwind - for styling
- 🔓 NextAuth.js - authentication and session management
- 🔓 AWS Cognito - authentication backend
- 💾 Prisma ORM
- 📚 Prisma engine lambda layer
- 📜 Prisma DB migration CDK script
- 🐳 Database integration test setup with postgres in docker
- 🔋 Aurora Serverless v2 RDS PostgreSQL
- ⚡️ Live local lambda development (
pnpm dev)- 🐞 Lambda debugging - set breakpoints on your lambda functions and step through in your IDE
- 📦 pnpm - fast and correct package manager
- 🚅 vitest - fast tests
- 🐛 ES Modules
- 🔧 ESBuild - fast code bundling on backend (under the hood) with tree-shaking
- 🫙 Middy - middleware for Lambda functions
- 🛠 AWS Lambda Powertools - for custom metrics, structured logging, and tracing.
Package scripts
Please see package.json scripts for more.
Start live backend dev server with AWS
Start Nextjs frontend dev server
Run/generate DB migrations locally
Just watch and perform type-checking
Deploy to your AWS environment
Deploy to specific AWS environment (region/profile)
pnpm deploy --region eu-west-1 --profile dev
All SST/CDK commands
pnpm exec sst pnpm exec cdk