Skip to content

A production-ready monorepo starter kit for modern full-stack applications featuring Hono API, Vite + shadcn UI, Drizzle ORM, BullMQ queues, and Dockerized infrastructure. Powered by Turborepo ⚡

Notifications You must be signed in to change notification settings

shakibhasan09/turborepo-starter-kit

Repository files navigation

TurboFullStack Starter 🚀

A production-ready monorepo starter kit for modern full-stack applications featuring Hono API, Vite + shadcn UI, Drizzle ORM, BullMQ queues, and Dockerized infrastructure. Powered by Turborepo ⚡

Features

  • 🔥 Hono.js API server with TypeScript
  • Vite React frontend with shadcn/ui components
  • 🐘 PostgreSQL database with Drizzle ORM
  • 📮 Redis queue system with BullMQ
  • 🐳 Docker Compose for Postgres & Redis
  • 📦 Dev Container setup for VS Code
  • Turborepo optimized monorepo architecture

Getting Started

Prerequisites

  • Node.js v18+
  • Docker & Docker Compose
  • VS Code Dev Containers (optional but recommended)

Quick Start

  1. Clone the repository
git clone https://github.com/shakibhasan09/turbo-repo-starter-kit.git
cd turbo-repo-starter-kit
  1. Install dependencies
pnpm install
  1. Setup environment variables
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.local.example apps/web/.env.local
  1. Start database & redis
docker-compose up -d
  1. Run development servers
pnpm dev

Tech Stack 🛠️

API (apps/api)

  • Hono - Ultrafast edge-ready web framework
  • Drizzle ORM - TypeScript ORM for PostgreSQL
  • Zod - Schema validation
  • Redis - Queue persistence

Web (apps/web)

Database (packages/postgres-database)

Queue (packages/queue-worker)

  • BullMQ - Redis queue system
  • Redis - In-memory data store

DevOps

Project Structure 📁

turbo-repo-starter-kit/
├── apps/
│   ├── api/
│   │   ├── src/
│   │   └── package.json
│   │
│   └── web/
│       ├── src/
│       └── package.json
│
├── packages/
│   ├── postgres-database/
│   │   ├── src/
│   │   └── package.json
│   │
│   └── queue-worker/
│       ├── src/
│       └── package.json
│
├── docker-compose.yml        # Postgres & Redis services
└── package.json              # Turborepo workspace config

Environment Setup 🔒

  1. Update database credentials in apps/api/.env:
DATABASE_URL="postgres://user:pass@localhost:5432/dbname"
REDIS_URL="redis://localhost:6379"
  1. Configure frontend in apps/web/.env:
VITE_API_URL=http://localhost:3000

Development Workflow 🛠️

Command Description
pnpm dev Start web + api in dev mode
pnpm build Build all packages
pnpm db:generate Generate Drizzle migrations
pnpm db:migrate Run database migrations
pnpm format Format all code with Prettier
pnpm lint Lint all packages

Contributing 🤝

Contributions welcome! Please follow:

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a pull request

License 📄

MIT License - see LICENSE for details


Happy coding! 🚀 Built with ❤️ by Sakib Hasan

About

A production-ready monorepo starter kit for modern full-stack applications featuring Hono API, Vite + shadcn UI, Drizzle ORM, BullMQ queues, and Dockerized infrastructure. Powered by Turborepo ⚡

Topics

Resources

Stars

Watchers

Forks

Sponsor this project