create-base-stack
v1.1.0
Published
Full-stack monorepo template with Hono, React, and Vite, powered by Bun and Turborepo.
Downloads
208
Maintainers
Readme
Create Base Stack
A high-performance, type-safe full-stack monorepo generator. Scaffold a complete architecture with Hono, React, TanStack, and Turborepo in seconds.
Tech Stack
| Layer | Technology | |-------|------------| | Runtime | Bun | | Monorepo | Turborepo | | Backend | Hono + Zod | | Frontend | React + Vite | | Routing | TanStack Router | | Data | TanStack Query | | Styles | Tailwind CSS + Shadcn/UI | | Linting | Biome |
Features
- Type-safe — Shared Zod schemas, fully typed RPC between frontend and backend
- Monorepo — Built-in workspace management with Turborepo
- Hot Reload — Instant development server with Bun's native hot reloading
- Production Ready — Optimized builds with tsdown
- Pre-configured — ESLint, Prettier, Git hooks with Lefthook
- Modern Styling — Tailwind CSS v4 with Shadcn/UI patterns
Quick Start
No global install required. Run directly with Bun:
bun create base-stack <project-name>Navigate to your project and start the development server:
cd <project-name>
bun run devProject Structure
<project-name>/
├── apps/
│ ├── api/ # Hono backend (RPC-ready)
│ └── app/ # React + Vite frontend
├── packages/
│ └── shared/ # Zod schemas, types, utilities
├── turbo.json # Turborepo configuration
├── bunfig.toml # Bun configuration
└── biome.json # Biome linter configAvailable Scripts
| Command | Description |
|---------|-------------|
| bun run dev | Start all apps in development mode |
| bun run build | Build all apps for production |
| bun run test | Run tests across all packages |
| bun run format | Format code with Biome |
| bun run lint | Lint code with Biome |
| bun run check | Type-check with Biome |
API Usage
The backend exposes RPC-style endpoints. Example call from frontend:
import { rpc } from "@base/api";
const result = await rpc.greeting.query({ name: "World" });
console.log(result); // { message: "Hello, World!" }Environment Variables
Copy .env.example to .env and configure:
NODE_ENV=development
PORT=3000
DATABASE_URL=postgresql://localhost:5432/mydb