Modern blog platform. Next.js 16 + Cloudflare D1 + R2. Deployed on Railway.
Migrated from WordPress (lizheng.me).
See docs/ for architecture and design documents.
- Bun (runtime & package manager)
- Node.js 20+
bun install
bun run dev # Start dev server (Turbopack, port 7043)bun run test # Run all unit tests
bun run test:watch # Watch mode
bun run test:coverage # Run with V8 coverage reportCoverage thresholds are enforced at 90% for lines, functions, branches, and statements.
bun run lint # ESLintHusky hooks are checked into .husky/ and shared across the team:
| Hook | Runs |
|---|---|
| pre-commit | bun run test |
| pre-push | bun run test + bun run lint |
Hooks are installed automatically via the prepare script on bun install. Do not skip hooks — all commits must pass tests, and all pushes must also pass lint.