Browse by type
A production-ready monorepo template built with Turborepo, featuring an Astro marketing site, a React dashboard, an Elysia API, and shared packages. Perfect for building scalable full-stack SaaS applications with modern tooling.
npx create-your-saas-boilerplate
Get started in seconds with our interactive CLI tool! It will scaffold the entire monorepo with your custom configuration.
project/
├── apps/
│ ├── landing/ # Astro marketing site
│ ├── web/ # React dashboard SPA
│ └── api/ # Elysia API server
├── packages/
│ ├── database/ # Database schema and migrations
│ ├── shared/ # Shared types and utilities
│ └── config/ # Environment configuration
├── Dockerfile # Single-image build for all 3 apps
├── turbo.json # Turborepo configuration
└── package.json # Root package.json
The fastest way to get started is using our CLI tool:
npx create-your-saas-boilerplate
This will: - Prompt you for a project name and organization name - Download and configure the template - Set up your monorepo with custom package names - Optionally install dependencies
Alternative package managers:
# Using npm
npm create your-saas-boilerplate
# Using bun
bunx create-your-saas-boilerplate
After creation:
cd your-project-name
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env
cp apps/landing/.env.example apps/landing/.env
cp packages/database/.env.example packages/database/.env
# Edit with your database URL and secrets
bun run dev
If you prefer to clone the repository directly:
# Clone the repository
git clone https://github.com/JuanPabloGilA/your-saas-starterkit.git
cd your-saas-starterkit
# Install dependencies
bun install
# Set up environment variables
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env
cp apps/landing/.env.example apps/landing/.env
cp packages/database/.env.example packages/database/.env
# Edit with your database URL and other secrets
# Start all apps in development mode
bun run dev
# Start specific app
bun run dev --filter=@your-saas-starterkit/landing
bun run dev --filter=@your-saas-starterkit/web
bun run dev --filter=@your-saas-starterkit/api
# Build all apps
bun run build
# Run linting
bun run lint
# Type checking
bun run type-check
# Generate migrations
bun run db:generate
# Push schema changes
bun run db:push
# Run migrations
bun run db:migrate
apps/landing)domain.com).astro components/login, /register) are absolute cross-domain URLsapps/web)apps/api)/api on the dashboard's domainpackages/database)packages/shared)packages/config)bun run dev - Start all apps in development modebun run build - Build all apps for productionbun run lint - Lint all packages with Biomebun run lint:fix - Fix linting issues automaticallybun run format - Format code with Biomebun run type-check - Type check all packagesbun run clean - Clean all build artifactsIf using the CLI (recommended): The CLI automatically handles package naming and setup. You only need to:
.env.example (apps/api, apps/web, apps/landing, packages/database) to .env and configure your settingsapps/api/lib/auth.tsIf manually cloning:
1. Update package names: Change @your-saas-starterkit in all package.json files to your organization name
2. Environment variables: Copy each app's .env.example (apps/api, apps/web, apps/landing, packages/database) to .env and configure your settings
3. Database: Set up your PostgreSQL database and update the connection string
4. Authentication: Configure Better Auth providers in apps/api/lib/auth.ts
5. Optional services: Set up OpenAI and Resend if you need AI or email functionality
bun run type-check to ensure type safetybun run lint to check code qualitybun run devdocker build -t your-saas-starterkit .
The Dockerfile builds the landing site and dashboard as static output, compiles the API into a standalone Bun binary, and runs pending migrations on boot. At runtime, the binary dispatches on the incoming Host header: /api/* goes to the Elysia app, Host: $DASHBOARD_HOST serves the dashboard's static files (with SPA fallback), and anything else serves the landing site (real 404s). This lets one container/port serve both your root domain and your app subdomain — point both at the same deployment and set DASHBOARD_HOST accordingly. Any platform that runs a Dockerfile works; Nixpacks is intentionally not used since it lags official Bun releases.
See DEPLOYMENT.md for step-by-step guides for Coolify, Dokploy, and other Docker hosts.
This template can be scaffolded using our CLI tool: create-your-saas-boilerplate
npx create-your-saas-boilerplate
The CLI provides: - Interactive prompts for project configuration - Automatic package namespace replacement - Optional dependency installation - Beautiful terminal UI with progress indicators
Contributions are welcome! Feel free to open issues or submit pull requests.
MIT License - feel free to use this template for your projects!
browse all types & interfaces →
$ claude mcp add hono-react-boilerplate \
-- python -m otcore.mcp_server <graph>