A Turborepo template for fullstack development with Vercel integration
- NestJS + Fastify - High-performance Node.js framework
- Drizzle ORM + PostgreSQL - Type-safe relational database
- MongoDB + Mongoose - Document database for logs
- Redis - Caching with @nestjs/cache-manager
- Socket.IO - Real-time WebSocket communication
- Helmet - Security middleware
- Throttler - Rate limiting
- React 18 + TypeScript - Modern UI framework
- TanStack Router - Type-safe routing
- TanStack Query - Server state management
- Vite - Build tool
- Tailwind CSS - Utility-first CSS
- shadcn/ui - Component library
- Material Design 3 - Design system
- React Native + Expo - Cross-platform mobile
- Expo Router - File-based navigation
- Material Design 3 - Consistent UI
- Vercel - Frontend deployment and CI/CD
- Docker - Containerization
turborepo-template/
├── apps/
│ ├── api/ # NestJS backend (Fastify + Drizzle)
│ ├── web/ # React frontend (TanStack Router)
│ └── mobile/ # React Native + Expo
├── packages/
│ ├── ui/ # shadcn/ui + Material Design 3
│ ├── types/ # Shared TypeScript types
│ ├── utils/ # Shared utilities
│ └── config/ # Shared configurations
├── docs/ # Documentation
└── tools/ # Build tools and scripts
- Node.js 18+
- pnpm 8+
- Docker & Docker Compose
# 1. Install dependencies
pnpm install
# 2. Setup environment
cp .env.example .env
# Edit .env with your configuration
# 3. Start databases (Docker)
docker-compose -f docker-compose.dev.yml up -d
# 4. Push database schema
pnpm db:push --filter=api
# 5. Start development
pnpm devThis will start:
- API: http://localhost:3001
- Web: http://localhost:3000
- Mobile: Expo DevTools
pnpm dev- Start all appspnpm build- Build for productionpnpm lint- Lint all packagespnpm type-check- TypeScript validationpnpm test- Run testspnpm db:studio- Open Drizzle Studio
- Automatic deployments from main branch
- Environment variables configured in Vercel dashboard
- Docker container ready
- Deploy to Railway, Render, or similar
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'feat: add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
MIT License - see LICENSE file for details.