A modern, production-ready monorepo setup for building full-stack applications with shared tooling and configurations.
web– Next.js 16 frontendapi– Hono.js backend
@repo/ui– Shared shadcn/ui components@repo/eslint-config– Shared ESLint configuration@repo/ts-config– Shared TypeScript configuration@repo/vitest-config– Shared Vitest configuration@repo/prettier-config– Shared Prettier configuration
- TypeScript – Static type checking across all packages
- ESLint – Code linting with shared rules
- Prettier – Consistent code formatting
- Husky – Git hooks for code quality enforcement
- Commitlint – Conventional commit message validation
- Tailwind CSS – Utility-first styling
- Prisma – Type-safe database ORM
- Docker – Containerization support
- Node.js 22+
- pnpm (recommended)
- Git
-
Clone the repository
git clone <your-repo-url> cd <repo-name>
-
Install dependencies
pnpm install
-
Set up environment variables
cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env
-
Set up the database (API only)
pnpm db:generate pnpm db:push
pnpm devpnpm dev --filter=web
pnpm dev --filter=api- 🔧 API: http://localhost:3000
- 🌐 Web App: http://localhost:3001
pnpm buildpnpm build --filter=web
pnpm build --filter=api
pnpm build --filter=docs# Development
pnpm dev # Start all apps
pnpm dev:web # Start web app only
pnpm dev:api # Start API only
# Build
pnpm build # Build all packages
pnpm build:web # Build web app only
pnpm build:api # Build API only
# Code Quality
pnpm lint # Lint all packages
pnpm lint:fix # Fix lint issues
pnpm format # Format code with Prettier
pnpm type-check # Run TypeScript checks
# Testing
pnpm test # Run all tests
pnpm test:watch # Run tests in watch mode-
Connect the repository to Vercel
-
Configure build settings:
- Build Command:
pnpm build --filter=web - Output Directory:
apps/web/.next
- Build Command:
-
Set required environment variables in the Vercel dashboard
-
Deploy 🚀