Blog

Guides, deep dives, and updates from the LaunchApp team.

6 min read

Billing with Stripe and Polar.sh

LaunchApp ships with two billing providers out of the box: Stripe and Polar.sh. Both are wrapped behind the @repo/billing package, which exposes the same interface regardless of which provider is active. You pick one at deploy time by setting the BILLING_PROVIDER env var — the rest of the codebase never cares which is running.

LT
LaunchApp Team
5 min read

Extending the database schema

Every LaunchApp template shares the same @repo/database package. Tables are defined in packages/database/src/schema/, one file per domain (auth.ts, billing.ts, organization.ts, and so on). This layout keeps the schema browsable and makes it obvious where new fields belong.

LT
LaunchApp Team
6 min read

Deploying to production

LaunchApp is designed to deploy as two separate services: the React Router 7 web app and the Hono API server. Both are standard Node.js processes that you can run on any platform that supports a Dockerfile or a Node runtime — Railway, Fly.io, Render, AWS ECS, or your own Kubernetes cluster.

LT
LaunchApp Team
8 min read

Authentication deep dive

Authentication in LaunchApp is handled by Better Auth, a framework-agnostic auth library that supports email/password, OAuth providers, magic links, and more. The server instance lives in @repo/auth and is shared across both the Hono API and the React Router frontend — one config, one source of truth.

LT
LaunchApp Team
5 min read

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.

LT
LaunchApp Team

Want to stay updated?

Join our newsletter →