A modern, high-performance full-stack React template powered by Vite+ and TanStack Start. Designed for developer experience, type-safety, and modularity.
This template provides a solid foundation for building full-stack applications with the latest React 19 features. It uses a modular monolith architecture that can easily scale or be transitioned to a monorepo if needed.
- βοΈ React 19: Leveraging the latest React features and improvements.
- π TanStack Start: Full-stack React framework with type-safe routing and SSR.
- β‘ Vite+: Unified toolchain for dev, build, lint, format, and test.
- ποΈ Drizzle ORM: Type-safe TypeScript ORM for PostgreSQL.
- π¨ Tailwind CSS v4: Utility-first styling with the latest engine.
- π§© Shadcn UI: 50+ accessible UI components built on
@base-ui/react. - π¦ Modular Design: Clean separation of concerns within
src/core.
# Install dependencies
pnpm install
# Setup environment variables
cp .env.example .env.local
# Edit .env.local with your credentials# Start PostgreSQL via Docker (optional)
docker-compose up -d
# Run migrations
pnpm db:migratevp devOpen http://localhost:3000 to see the application.
| Technology | Category | Description |
|---|---|---|
| Vite+ | Toolchain | Unified dev, build, lint, format, and test |
| React 19 | Frontend | The library for web and native user interfaces |
| TanStack Start | Framework | Full-stack React framework |
| Tailwind CSS v4 | Styling | Utility-first CSS framework |
| Drizzle ORM | Database | TypeScript ORM for SQL databases |
βββ src/
β βββ components/ # UI components, layouts, and providers
β βββ core/ # Core business logic & infrastructure
β β βββ database/ # Drizzle client and schema definitions
β β βββ schema/ # Shared Zod validation schemas
β β βββ shared/ # Shared utilities and constants
β βββ hooks/ # Custom React hooks
β βββ lib/ # Application-specific utilities
β βββ routes/ # TanStack Router file-based routes
β βββ server.ts # Server entry point
β βββ start.tsx # Client entry point
βββ drizzle.config.ts # Drizzle ORM configuration
βββ package.json # Project dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite/Rolldown configuration
| Command | Description |
|---|---|
vp dev |
Start development server on port 3000 |
vp build |
Build the application for production |
vp check |
Format, lint, and type-check |
vp lint --fix |
Lint code using Oxlint |
vp fmt |
Format code using Oxfmt |
vp test |
Run tests with Vitest |
pnpm db:generate |
Generate Drizzle migrations |
pnpm db:migrate |
Apply Drizzle migrations |
Create a .env.local file in the root directory:
DATABASE_URL=postgresql://user:pass@localhost:5432/dbThis project is licensed under the MIT License.