1.6 KiB
1.6 KiB
CMS Monorepo (Bun + Biome + Next.js)
A baseline monorepo with:
apps/web: public frontend appapps/admin: separated admin apppackages/ui: shared UI primitives (shadcn-ready)packages/content: shared Zod schemas/typespackages/db: Prisma + PostgreSQL data accesspackages/config: shared TypeScript config
Stack
- Bun workspaces
- Biome (lint + format)
- Next.js App Router + TypeScript +
src/ - Tailwind CSS
- Prisma + PostgreSQL
- Zod
- Zustand
- TanStack (Query, Table, Form)
Quick start
- Install dependencies:
bun install
- Copy env and set your database URL:
cp .env.example .env
- Generate Prisma client and run migrations:
bun run db:generate
bun run db:migrate
bun run db:seed
- Run both apps:
bun run dev
- Web: http://localhost:3000
- Admin: http://localhost:3001
Useful scripts
bun run devbun run dev:webbun run dev:adminbun run lintbun run typecheckbun run checkbun run formatbun run db:generatebun run db:migratebun run db:pushbun run db:studiobun run db:seed
Recommended next packages
- Auth:
better-authornext-auth - Uploads:
uploadthing - Rich text:
@tiptap/react - Caching/queue:
bullmq,ioredis - Email:
resend - i18n:
next-intl - Observability:
@sentry/nextjs - Testing:
vitest,@testing-library/react,playwright
For TanStack specifically, this baseline already includes Query, Table, and Form. Add Virtual when you introduce very large lists:
@tanstack/react-virtual