The React Router Gospel Stack is an opinionated TypeScript monorepo boilerplate that combines React Router v7+, Turborepo, and pnpm to produce full-stack web applications deployable to Fly.io or as Docker images.
What is the React Router Gospel Stack?
The React Router Gospel Stack is a GitHub template maintained by PhilDL that generates a full-stack TypeScript monorepo for React Router v7+ applications. It takes a project name as input and outputs a workspace with apps, packages, and config folders, prewired with Turborepo pipelines, pnpm workspaces, shadcn/ui, TailwindCSS 4, and a choice between Drizzle or Prisma ORMs against Turso or PostgreSQL. The application runs on Node.js, deploys to Fly.io or as a Docker image, and is released under the MIT license. The stack evolved from the Remix Gospel Stack and reflects its author's production SaaS setup, with decision documents explaining changes like Turso over LiteFS.
Key Features
- React Router v7+ framework — Uses the merged full-stack React framework for server rendering, routing, data loading, and actions.
- Turborepo build system — Configured pipelines with caching for build, lint, typecheck, and test tasks across the monorepo.
- pnpm workspace + catalogs — Only pnpm is supported; dependency versions are centralized in pnpm catalogs.
- Choice of ORM — Drizzle and Prisma are both supported, with a documented comparison of why you might pick Drizzle.
- Turso or PostgreSQL — Database abstraction lets you switch between distributed SQLite (Turso) and a multi-region Fly PostgreSQL cluster.
- shadcn/ui components — UI component system based on Radix UI primitives, styled with TailwindCSS 4.
- Testing setup — Vitest for unit testing and Playwright for end-to-end browser testing.
- Docker and Fly.io deployment — Comes with Docker configuration and GitHub Actions for CI/CD, targeting multi-region deployment on Fly.io.
- Documentation — Dedicated markdown guides cover initialization, architecture, development, database switching, deployment, UI package use, and testing.
Who is it for?
This stack targets TypeScript developers and teams who want a production-oriented monorepo for React Router applications without assembling all tooling from scratch. It's suited for developers already committed to pnpm and Turborepo, teams planning to deploy on Fly.io, and those looking for a concrete example of the React Router v7+ framework after the Remix merge.
What can you do with the React Router Gospel Stack?
- SaaS product teams: bootstrap a multi-package monorepo with database schema, ORM models, shared UI components, and CI/CD from day one.
- Fly.io deployers: push the included React Router app to Fly.io using the provided Docker setup and GitHub Actions workflows.
- React Router learners: study a real-world monorepo architecture that demonstrates how to structure apps, packages, and configuration packages in React Router v7+.
How does it work?
Copy the template with pnpm dlx degit PhilDL/react-router-gospel-stack my-app (or git clone), then run pnpm install and pnpm run setup to initialize the project. The setup script configures the chosen database and prepares environment variables. During development, Turborepo runs builds, linting, typechecking, and tests across all packages with caching.
Pros and cons
- Pros: Monorepo structure with shared code; choice of ORM and database; Turborepo caching speeds up builds; extensive documentation and clear decision records.
- Cons: Requires pnpm exclusively (npm or Yarn won't work); TypeScript-only with no JavaScript variant; the stack is opinionated and may not fit every project's needs.
Alternatives
- Epic Stack — A similar full-stack React/Remix template by Kent C. Dodds that inspired this stack's ESM setup.
- acme-corp monorepo — A Turborepo example by Julius Marminge that influenced the UI integration and monorepo practices used here.
FAQ
Is the React Router Gospel Stack free to use?
Yes, the stack is released under the MIT license, so you can use it commercially and modify it freely.
Can I use npm or Yarn instead of pnpm?
No, the stack is designed exclusively for pnpm to manage monorepo workspaces and uses pnpm catalogs for version centralization. Other package managers are not supported.
Which databases and ORMs does it support?
You can choose between Turso, a distributed SQLite with libSQL, and PostgreSQL on a multi-region Fly cluster. The stack includes both Drizzle and Prisma ORMs, and you can switch between them.
Can I deploy it somewhere other than Fly.io?
The stack comes with Docker configuration and GitHub Actions that target Fly.io, but because it builds Docker images, you can adapt those images to other container hosts.
Does the stack include Next.js?
No. The migration from the Remix Gospel Stack intentionally dropped the Next.js app and Vercel deployments to focus on React Router v7+.







