Based on v1.
Everything you need to build a production ready SaaS, it's a opinionated stack based on learnings from building Midday using the latest Next.js framework, it's a monorepo with a focus on code reuse and best practices that will grow with your business.
Next.js - Framework
Turborepo - Build system
Biome - Linter, formatter
TailwindCSS - Styling
Shadcn - UI components
TypeScript - Type safety
Supabase - Authentication, database, storage
Upstash - Cache and rate limiting
React Email - Email templates
Resend - Email delivery
i18n - Internationalization
Sentry - Error handling/monitoring
Trigger.dev - Background jobs
OpenPanel - Analytics
Polar - Billing (coming soon)
react-safe-action - Validated Server Actions
nuqs - Type-safe search params state manager
next-themes - Theme manager
.
├── apps # App workspace
│ ├── api # Supabase (API, Auth, Storage, Realtime, Edge Functions)
│ ├── app # App - your product
│ ├── web # Marketing site
│ └── ...
├── packages # Shared packages between apps
│ ├── analytics # OpenPanel analytics
│ ├── email # React email library
│ ├── jobs # Trigger.dev background jobs
│ ├── kv # Upstash rate-limited key-value storage
│ ├── logger # Logger library
│ ├── supabase # Supabase - Queries, Mutations, Clients
│ └── ui # Shared UI components (Shadcn)
├── tooling # are the shared configuration that are used by the apps and packages
│ └── typescript # Shared TypeScript configuration
├── .cursorrules # Cursor rules specific to this project
├── biome.json # Biome configuration
├── turbo.json # Turbo configuration
├── LICENSE
└── README.md
Bun
Docker
Upstash
Trigger.dev
Resend
Supabase
Sentry
OpenPanel
- Install dependencies using bun:
bun i
- Copy
.env.example
to.env
and update the variables.
# Copy .env.example to .env for each app
cp apps/api/.env.example apps/api/.env
cp apps/app/.env.example apps/app/.env
cp apps/web/.env.example apps/web/.env
- Start the development server from either bun or turbo:
bun dev // starts everything in development mode (web, app, api, email)
bun dev:web // starts the web app in development mode
bun dev:app // starts the app in development mode
bun dev:api // starts the api in development mode
bun dev:email // starts the email app in development mode
// Database
bun migrate // run migrations
bun seed // run seed