A high-performance monorepo boilerplate featuring Hono, Next.js, Expo (React Native), Better-Auth, and Drizzle ORM.
thunder-stack/
├── client/
│ ├── expo/ # Mobile Client App (React Native + Expo Router) - [Package: mobile]
│ └── nextjs/ # Web Client App (Next.js + TailwindCSS) - [Package: nextjs]
├── server/
│ ├── db/ # Shared Database Package (Drizzle Schema, Migrations, & Services) - [Package: @attendance/db]
│ └── hono/ # Backend API Server (Hono + Cloudflare Workers / Wrangler) - [Package: server]
└── packages/
├── shared/ # Common Shared Configs & Utilities
└── create-thunder-app # CLI bootstrap tool
- NodeJS (v20+ recommended)
- pnpm (v10+ recommended)
These commands run across the entire monorepo using Turbo to manage dependencies and concurrency efficiently.
pnpm installpnpm devStarts Next.js (port 3000), Hono Backend Server (port 8787), and Expo bundler concurrently.
pnpm buildpnpm typecheckYou can run commands for specific workspaces using pnpm's --filter flag.
Commands are run from the root using workspace filtering:
- Generate Migrations:
pnpm db:generate
- Run Migrations:
pnpm db:migrate
- Seed Database:
pnpm db:seed
Alternatively, you can run them directly in the directory server/db:
# In server/db
pnpm run db:generate
pnpm run db:migrate
pnpm run db:seed- Start Dev Server:
pnpm --filter nextjs dev
- Build Project:
pnpm --filter nextjs build
- Start Production Server:
pnpm --filter nextjs start
- Start Bundler:
pnpm --filter mobile start
- Run on Android:
pnpm --filter mobile android
- Run on iOS:
pnpm --filter mobile ios
- Start Local Dev Server (Wrangler/Cloudflare Workers):
pnpm --filter server dev
- Deploy to Cloudflare:
pnpm --filter server deploy
- Clean build/cache folders:
pnpm run clean
- Clean and Reinstall all dependencies:
pnpm run ci