Production-ready monorepo starter built with Turborepo, Next.js, Express, TypeScript, and Docker.
Designed to provide a scalable foundation for SaaS applications with multiple frontend apps, shared packages, type-safe development workflows, and containerized environments.
- Overview
- Architecture
- Included Apps and Packages
- Technology Stack
- Key Features
- Development Workflow
- Getting Started
- Docker Usage
This project demonstrates a scalable full-stack monorepo architecture using Turborepo and PNPM workspaces.
The repository includes multiple applications, shared packages, centralized configuration, and Docker-based development environments. The goal is to reduce duplication, improve maintainability, and enable rapid development across multiple services.
The workspace follows a modular architecture:
- Multiple Next.js applications
- Dedicated Express API service
- Shared UI component library
- Shared TypeScript configurations
- Shared ESLint configurations
- Centralized dependency management
- Dockerized local and production environments
All packages are fully typed and integrated through workspace dependencies.
Customer-facing Next.js application.
Administrative dashboard built with Next.js.
Express-based backend service responsible for business logic and API endpoints.
Reusable UI component library shared between frontend applications.
Centralized TypeScript configuration.
Shared linting configuration used across all applications.
- Next.js
- React
- TypeScript
- Node.js
- Express
- Docker
- Docker Compose
- Turborepo
- PNPM Workspaces
- ESLint
- Prettier
- TypeScript
- Monorepo architecture using Turborepo
- Shared UI package across multiple applications
- Shared TypeScript types and configurations
- Shared linting and code quality standards
- Containerized development and deployment workflow
- Automatic package rebuilding during development
- Workspace-based dependency management
- Consistent local and production environments
pnpm installI'd position it as an architecture project, not an application project.
The strongest thing here is not the features. It's the monorepo architecture, shared packages, Docker workflow, and type-safe full-stack setup.
docker compose -f compose.dev.yaml up -dWeb Application
http://localhost:3000API Service
http://localhost:8000Changes made to shared packages are automatically propagated to dependent applications during development.
- Node.js 20+
- PNPM
- Docker
- Docker Compose
pnpm installdocker compose -f compose.dev.yaml up -dProduction Environment
docker compose up -dDevelopment Environment
docker compose -f compose.dev.yaml up -dDocker is used to ensure consistent environments across development and deployment workflows.