A turborepo-based monorepo template with Next.js, shadcn/ui, and strict code quality via Ultracite.
apps/web— Next.js applicationpackages/ui— shared shadcn/ui component librarypackages/typescript-config— shared TypeScript configs
- Runtime: Bun
- Build: Turborepo
- Linting/Formatting: Ultracite (Biome)
- UI: shadcn/ui + Tailwind CSS
- Pre-commit: Husky + Ultracite
Using GitHub CLI:
gh repo create my-app --template Mark-Life/netxjs-monorepo --private --clone
cd my-app
bun install
bun run upgradeOr from GitHub UI: click "Use this template" > "Create a new repository", then:
git clone https://github.com/YOUR_USERNAME/my-app.git
cd my-app
bun install
bun run upgradeThe upgrade command updates Next.js, refreshes all shadcn/ui components, updates dependencies, and runs lint fixes.
| Command | Description |
|---|---|
bun dev |
Start all apps in dev mode |
bun run build |
Build all apps and packages |
bun run lint |
Lint all apps and packages |
bun run fix |
Auto-fix formatting and lint issues |
bun run check |
Check for lint/format issues |
bun run upgrade |
Upgrade Next.js, shadcn/ui, and all deps |
Add shadcn/ui components to the shared ui package:
bunx shadcn@latest add button -c packages/uiThen import from @workspace/ui:
import { Button } from "@workspace/ui/components/button"