Initial commit
This commit is contained in:
82
README.md
Normal file
82
README.md
Normal file
@ -0,0 +1,82 @@
|
||||
# CMS Monorepo (Bun + Biome + Next.js)
|
||||
|
||||
A baseline monorepo with:
|
||||
|
||||
- `apps/web`: public frontend app
|
||||
- `apps/admin`: separated admin app
|
||||
- `packages/ui`: shared UI primitives (shadcn-ready)
|
||||
- `packages/content`: shared Zod schemas/types
|
||||
- `packages/db`: Prisma + PostgreSQL data access
|
||||
- `packages/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
|
||||
|
||||
1. Install dependencies:
|
||||
|
||||
```bash
|
||||
bun install
|
||||
```
|
||||
|
||||
2. Copy env and set your database URL:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
3. Generate Prisma client and run migrations:
|
||||
|
||||
```bash
|
||||
bun run db:generate
|
||||
bun run db:migrate
|
||||
bun run db:seed
|
||||
```
|
||||
|
||||
4. Run both apps:
|
||||
|
||||
```bash
|
||||
bun run dev
|
||||
```
|
||||
|
||||
- Web: http://localhost:3000
|
||||
- Admin: http://localhost:3001
|
||||
|
||||
## Useful scripts
|
||||
|
||||
- `bun run dev`
|
||||
- `bun run dev:web`
|
||||
- `bun run dev:admin`
|
||||
- `bun run lint`
|
||||
- `bun run typecheck`
|
||||
- `bun run check`
|
||||
- `bun run format`
|
||||
- `bun run db:generate`
|
||||
- `bun run db:migrate`
|
||||
- `bun run db:push`
|
||||
- `bun run db:studio`
|
||||
- `bun run db:seed`
|
||||
|
||||
## Recommended next packages
|
||||
|
||||
- Auth: `better-auth` or `next-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`
|
||||
Reference in New Issue
Block a user