React Router TypeScript monorepo with Turborepo pipelines, Drizzle/Prisma ORM, Turso/PostgreSQL database, Docker deploy to Fly.io, pnpm, shadcn/ui, and TailwindCSS.
Important
This used to be the remix-gospel-stack (Remix v2) but to follow remix merging back into react router, the stack was converted to React Router v7+. And the name was changed to react-router-gospel-stack.
In this migration, we made other adjustments to the stack that reflects what I'm using in production SaaS apps:
- Using Turso instead of LiteFS (decision)
- Dropping the NextJS app and the Vercel deployments (I was not using them so difficult to maintain)
- We now use pnpm catalogs to define our versions in one file.
pnpm dlx degit PhilDL/react-router-gospel-stack my-app
cd my-app
pnpm install
pnpm run setupgit clone [email protected]:PhilDL/react-router-gospel-stack.git my-app
cd my-app
pnpm install
pnpm run setupπ½ This repository is opiniated:
- TypeScript only
- Only compatible with pnpm package manager to handle monorepo workspaces
- Uses turborepo pipelines + cache to build, lint, typecheck, and test the monorepo
This is a monorepo for building modern web applications with React Router, optimized for developer experience and deployment simplicity.
- π React Router v7+ - Modern full-stack React framework
- π¦ Turborepo - High-performance build system for monorepos
- ποΈ Database - Choose between:
- Turso - Distributed SQLite with libSQL
- PostgreSQL - Multi-region Fly PostgreSQL Cluster
- π οΈ ORM - Choose between:
- π¨ shadcn/ui - UI Components system
- π― TailwindCSS 4 - Utility-first CSS framework
- π³ Docker - Containerized deployment
- πͺ Fly.io - Multi-region deployment platform
- π¦Ύ TypeScript - Full ts setup
- π§ͺ Vitest - Fast unit testing
- π Playwright - End-to-end testing
- π ESLint - Code linting
- π Prettier - Code formatting
- π GitHub Actions - CI/CD pipelines
apps/- Your applications (React Router webapp included)packages/- Shared code, UI components, database, business logicconfig/- ESLint, tsconfig, and other configuration packages
- π Initialization Guide - Set up a new project from this template
- π Architecture - Understand the monorepo structure and packages
- π οΈ Development Guide - Set up your local development environment
- ποΈ Database Guide - Configure PostgreSQL or Turso, migrations, and switching
- βοΈ Deployment Guide - Deploy to Fly.io with Docker
- π¨ UI Package - Work with shadcn/ui components
- π§ͺ Testing Guide - Run tests, linting, and typechecking
If you knew this stack from a previous version, here are some decisions documents that explain why certain things changed:
- β Found this useful? Give it a star!
- π Found a bug? Open an issue
- π‘ Have an improvement? Submit a PR
See CONTRIBUTING.md for contribution guidelines.
- The ESM setup is heavily inspired by the epic-stack by @kentcdodds
- Thanks to @shadcn for the amazing component library
- UI integration and practices borrowed from @juliusmarminge's acme-corp monorepo
I am learning and improving this stack continuously. The setup proposed here is one of many possible approaches. If you see any possible improvements, please submit a PR β I will appreciate it greatly!
MIT
