The ultimate open-source starter kit for building production-ready SaaS applications
Everything you need to build a production-ready SaaS. It's an 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.
- Features and Benefits
- What's Included
- Directory Structure
- Quick Start
- Prerequisites
- Getting Started
- How to Use
- License
- π Production-Ready: Built with best practices and optimized for performance
- π¦ Scalable Architecture: Monorepo setup for easy code sharing and maintenance
- π Full-Stack Solution: Includes frontend, backend, and DevOps tooling
- π§ Modern Tech Stack: Utilizes the latest and most powerful web technologies
- π» Developer Experience: Optimized workflow with linting, formatting, and type safety
- π¨ Customizable: Easy to extend and adapt to your specific needs
- π Internationalization: Built-in support for multiple languages
- π§ Email Integration: Ready-to-use email templates and delivery system
- π Security First: Implements best practices for authentication and data protection
- π Analytics and Monitoring: Integrated tools for tracking performance and user behavior
- Next.js: React framework for production-grade apps.
- TypeScript: Adds static typing for improved developer experience and code quality.
- TailwindCSS: Utility-first CSS framework for rapid UI development.
- Shadcn: Customizable UI components built on top of Radix UI.
- Supabase: Open-source Firebase alternative for authentication, database, and storage.
- Upstash: Serverless Redis for caching and rate limiting.
- Turborepo: Monorepo build system for optimal DX and performance.
- Biome: Fast linter and formatter for consistent code style.
- React Email: Customizable email templates.
- Resend: Reliable email delivery service.
- i18n: Easy-to-use internationalization library.
- Dub: Custom URL shortener and link management.
- Trigger.dev: Powerful workflow automation platform.
- Polar: Integrated billing solution (coming soon).
.
βββ 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
Get up and running in minutes:
bunx degit midday-ai/v1 my-saas-app
cd my-saas-app
bun i
bun devVisit http://localhost:3000 to see your app in action.
Before you begin, ensure you have the following installed:
- Bun: Fast all-in-one JavaScript runtime
- Docker: Containerization platform for easy deployment
- Git: Version control system
You'll also need accounts for the following services:
-
Clone the repository:
bunx degit midday-ai/v1 my-saas-app cd my-saas-app -
Install dependencies:
bun i
-
Set up environment variables:
cp apps/api/.env.example apps/api/.env cp apps/app/.env.example apps/app/.env cp apps/web/.env.example apps/web/.env
Update the
.envfiles with your service credentials. -
Start the development server:
bun dev
-
Open
http://localhost:3000in your browser to see the app running.
- Create a new file in
apps/app/pages/ - Use components from
packages/uifor consistent styling - Update navigation in
apps/app/components/Layout.tsxif necessary
- Modify
apps/app/tailwind.config.js - Update global styles in
apps/app/styles/globals.css
- Create a new file in
apps/api/functions/ - Use the Supabase client from
packages/supabasefor database operations - Test your endpoint using the included Postman collection
- Add new translations in
apps/app/locales/ - Use the
useTranslationhook in your components
- Create new email templates in
packages/email/templates/ - Use the
sendEmailfunction frompackages/emailto send emails
Vercel deployment will guide you through creating a Supabase account and project.
Create v1 is open-source software licensed under the MIT license.
Built with β€οΈ by the Midday team and contributors.