Skip to content

zhangshichuan/typescript-monorepo-template

Repository files navigation

Modern Monorepo Template

A full-stack TypeScript monorepo template with React 19, React Router v7, Vite, TailwindCSS and NestJS.

Features

  • 🚀 Modern Stack: React 19 + Vite + TailwindCSS
  • Full-stack: Frontend (SPA/SSR) + Backend (NestJS)
  • 📦 Monorepo: Managed by TurboRepo with pnpm workspaces
  • 🛠 Developer Experience: ESLint + Prettier + Husky
  • 🔄 CI/CD Ready: Changesets for versioning and publishing

Tech Stack

Frontend

Backend

Tooling

Getting Started

Prerequisites

  • Node.js >=20.12.0
  • pnpm

Installation

pnpm install

Development

# Start all apps in development mode
pnpm dev

Production Build

pnpm build:prod

Project Structure

modern-monorepo-template/
├── apps/
│   ├── be/        # NestJS backend
│   ├── spa/       # SPA frontend (Vite)
│   └── ssr/       # SSR frontend (Vite)
├── packages/      # Shared packages
├── docs/          # Documentation
├── .eslintrc.js   # ESLint config
├── .prettierrc    # Prettier config
├── package.json   # Root package
└── turbo.json     # TurboRepo config

Application Details

SPA Frontend

SSR Frontend

Backend API

Deployment

  1. Build production artifacts:
pnpm build:prod
  1. Start with PM2:
pnpm pm2

Code Quality

  • ESLint for static analysis
  • Prettier for code formatting
  • Husky for pre-commit hooks
  • Conventional Commits for commit messages

Version Management

This project uses Changesets for version management:

  1. Create changeset:
pnpm changeset
  1. Version packages:
pnpm version
  1. Publish:
pnpm release

License

ISC