- Web: Next.js (App Router)
- API: Fastify
- DB: Prisma + PostgreSQL
- Email: Nodemailer abstraction (
EmailSender)
- Node.js 22+
- npm 10+
- Podman
- Install Node.js (recommended with
nvm):nvm install 22 && nvm use 22
- Install dependencies:
npm install
- Start Podman machine (first time):
podman machine init --now
- Start local PostgreSQL:
podman volume create dailyread_postgres_datapodman run -d --name dailyread-postgres -e POSTGRES_USER=dailyread -e POSTGRES_PASSWORD=dailyread -e POSTGRES_DB=dailyread -p 5432:5432 -v dailyread_postgres_data:/var/lib/postgresql/data docker.io/library/postgres:16-alpine
- Prepare API env:
cp apps/api/.env.example apps/api/.env
- Run Prisma setup:
npm run prisma:generate -w @dailyread/apinpm run prisma:migrate -w @dailyread/api -- --name initnpm run prisma:seed -w @dailyread/api
- Build shared email package once:
npm run build -w @dailyread/email
- Run web:
npm run dev:web
- Run api:
npm run dev:api
If node is not found in your shell, add:
export PATH="/opt/homebrew/opt/node@22/bin:$PATH"
Subscriber(email-only subscription)User(GitHub OAuth user)Blog,PostLike,CommentRecommendationGroup(system-only group for MVP)EmailLog
apps/web: Next.js appapps/api: Fastify API + Prisma schema/seedpackages/email: provider-agnostic email interface and SMTP sender
- PRD baseline:
docs/prd/MVP_PRD.md - Start each task with:
docs/templates/TASK_SPEC_TEMPLATE.md - Record implementation history in:
docs/process/WORKLOG.md - Run pre-deploy checklist:
docs/process/RELEASE_READINESS.md - Append deploy history in:
docs/process/RELEASE_NOTES.md - Project skill for this flow:
skills/dailyread-execution-log/SKILL.md - Branch/PR flow skill:
skills/git-pr-delivery-flow/SKILL.md