Bun · Hono · Vite · React · Drizzle
Scaffold a production-ready full-stack monorepo in seconds.
bunx bhvrd create myapp
cd myappOr scaffold in the current directory:
mkdir myapp && cd myapp
bunx bhvrd create .myapp/
├── server/ Hono API + Drizzle ORM + PostgreSQL + Redis
├── client/ Vite + React (port 5174)
├── admin/ Vite + React (port 5173)
└── shared/ Zod validations + shared types
All packages are linked via Bun workspaces with @myapp/shared as the shared dependency.
| Layer | Technology |
|---|---|
| Runtime | Bun |
| Server | Hono |
| Frontend | Vite + React 19 |
| Database | Drizzle ORM + PostgreSQL |
| Cache | Redis via ioredis |
| Validation | Zod |
# Set up environment
cp server/.env.example server/.env
# Start development
bun run dev:server # API on :3000
bun run dev:client # Client on :5174
bun run dev:admin # Admin on :5173
# Database
cd server
bunx drizzle-kit generate
bunx drizzle-kit migrate
bunx drizzle-kit studioInternal imports use @/ — no need to reference the package name inside its own code:
// server/src/routes/users.ts
import { db } from "@/db";
import { redis } from "@/lib/redis";
// client/src/pages/Home.tsx
import { Header } from "@/components/Header";
import "@assets/index.css";Cross-package imports use the scoped package name:
// server or client
import { z } from "@myapp/shared/validations";
import type { User } from "@myapp/shared/types";MIT