Getting started with LaunchApp
LaunchApp is a production-ready SaaS starter monorepo. It bundles everything you need to go from idea to launch: authentication, a PostgreSQL database with Drizzle ORM, a Hono API server, and a React Router 7 frontend — all wired together and ready to deploy.
- guide
- setup
LaunchApp Team
Jan 15, 2025
LaunchApp is a production-ready SaaS starter monorepo. It bundles everything you need to go from idea to launch: authentication, a PostgreSQL database with Drizzle ORM, a Hono API server, and a React Router 7 frontend — all wired together and ready to deploy.
The monorepo layout
The monorepo is managed with pnpm and Turborepo. Internal packages live under the @repo/* namespace and each one has a single, well-defined responsibility:
@repo/auth— Better Auth server + client@repo/database— Drizzle ORM schema and migrations@repo/billing— Stripe and Polar.sh integrations@repo/email— Resend + React Email templates@repo/ui-kit— shared Radix + Tailwind components
This structure keeps the graph shallow and lets each template variant (Next.js, Nuxt, SvelteKit) share the same backend packages while swapping the frontend framework.
First-run checklist
Clone the repository, copy .env.example to .env, and fill in your DATABASE_URL and BETTER_AUTH_SECRET. Then run docker compose up -d to start the local PostgreSQL instance.
Once the database is running, execute pnpm db:migrate to apply the initial schema, then pnpm dev to start all apps in watch mode. The web app is available on port 5173 and the API on port 3000 by default.
Where to go next
From here you can register a new account, explore the dashboard, and start customising the template for your own product. The package dependency graph in CLAUDE.md is a useful map of how everything connects, and the rest of this blog covers deeper topics like auth, deploys, and extending the schema.