Stage 4 of 5 · Day 21
In progress: Backend core
62%
Building a realtime task board for small agencies, in stages: problem → prototype → system design → code. Updated at the end of every working session.
Updated Tue, Nov 3
Daily activity
- Shipped
- In progress
- Rest
- Planned
- Oct 14: Shipped. PRD, user flow, wireframes
- Oct 15: Shipped. Hi-fi mockup (12 screens), design tokens
- Oct 16: Shipped. Persona walkthrough, mockup v2, system design basics
- Oct 17: Shipped. Monorepo, CI, OpenAPI contract
- Oct 18: Shipped. Typed mock API, theme, Vercel deploy
- Oct 19: Shipped. Data layer, auth and onboarding screens
- Oct 20: Shipped. Today, Project and Members screens
- Oct 21: Rest. Rest day
- Oct 22: Shipped. Stage 1: business brief, status page
- Oct 23: Rest. Rest day
- Oct 24: Shipped. Visual v2, landing page, Kanban board, live updates, AI drafting, activity log
- Oct 25: Shipped. Demo data, demo video, pitch deck
- Oct 26: Shipped. C4 diagrams + ERD
- Oct 27: Rest. No session
- Oct 28: Shipped. Sequences + ADRs
- Oct 29: Rest. No session
- Oct 30: Rest. No session
- Oct 31: Shipped. Backend: auth + guardrails
- Nov 1: Rest. No session
- Nov 2: Rest. No session
- Nov 3: Shipped. Backend: roles + tenant isolation
- Nov 4: Planned. Backend: tasks
- Nov 5: Planned. Backend: edit conflicts (409)
- Nov 6: Planned. Backend: drag and drop (move)
- Nov 7: Planned. Frontend on the real API: auth, projects
- Nov 8: Planned. Frontend on the real API: board
- Nov 9: Planned. Deploy to AWS (demo profile)
- Nov 10: Planned. Deploy: main screens on production
- Nov 11: Planned. Realtime: WebSocket
- Nov 12: Planned. Realtime: Redis pub/sub + outbox
- Nov 13: Planned. Members and email invitations
- Nov 14: Planned. Today, activity log, rate limit, cache
- Nov 15: Planned. Buffer + feedback round
- Nov 16: Planned. AI drafts on a real LLM
- Nov 17: Planned. AI: validation, retries, rate limit
- Nov 18: Planned. AI: evals in CI
- Nov 19: Planned. MCP server
- Nov 20: Planned. MCP server (continued)
- Nov 21: Planned. Claude Code skills, hooks, subagents
- Nov 22: Planned. Wrap-up: README, demo video
Stages
0. FoundationsOct 14–21Done100%
Requirements, design system, API contract and a clickable prototype on a mock API.
- Done: PRD, user flow, wireframes
- Done: Hi-fi mockup (12 screens) + design tokens
- Done: Monorepo, CI, OpenAPI 3.1 contract with generated types
- Done: Typed mock API (MSW): RBAC, 409 conflicts, fractional ordering
- Done: Auth, onboarding, Today, Project and Members screens
- Done: Deployed on Vercel with a preview per pull request
1. Problem & ideaOct 22Planned75%
Is it worth building? Problem with evidence, target customers, competitors, business model, metrics, risks.
- Done: One-page business brief
- Done: Public status page
- Done: v1 scope + v1.1 roadmap locked
- To do: Pitch passes the gate
Gate: 60-second pitch in English
2. Prototype & presentOct 23–25Planned86%
Do users want it? A polished prototype with every v1 feature on mock data, then a live demo.
- Done: Visual v2 + landing page
- Done: Kanban drag and drop (keyboard accessible)
- Done: Simulated live updates from teammates
- Done: AI task drafting (mock)
- Done: Activity log per project
- Done: Demo data, pitch deck, 2-minute demo video
- To do: Feedback from a mentor and 2–3 team leads; UI frozen
Gate: Feedback from a mentor and 2–3 team leads; UI frozen afterwards
3. System designOct 26–28Done100%
How do we build it? Architecture for all of v1, including what ships after the core.
- Done: C4 diagrams (context, containers) + ERD
- Done: Sequence diagrams: realtime across instances, AI drafting
- Done: ADRs: backend stack, infrastructure
- Done: Contract updated for AI drafts and realtime events
Gate: 10-minute design review without notes
4. Backend coreOct 29 – Nov 3In progress50%
Make it real, test first: the prototype switches from the mock to the real API.
- Done: Quality guardrails: lint, hooks, CI gates
- Done: Auth with refresh-token rotation
- Done: Workspaces, roles, tenant isolation tests
- To do: Tasks: optimistic locking (409), ordering
- To do: Realtime over Redis pub/sub
- To do: Frontend on the real API, API deployed
Gate: Main screens run on the real API in production
5. HardeningNov 4 →Planned0%
The rest of v1, in priority order.
- To do: Redis cache, login rate limiting, email queue, outbox
- To do: AI drafting on a real LLM, with evals in CI
- To do: MCP server + agent skill for TaskFlow
- To do: AWS deploy, then Terraform
Updates
Roles and tenant isolation
Workspaces and projects on the real API. One pure function decides who may do what (owner, admin, member, viewer); outsiders get the same 404 as for something that doesn't exist, so IDs reveal nothing. 18 unit cases cover the permission table and 9 end-to-end tests try to read and write across workspaces.
First real backend: auth
NestJS API on Postgres, test first: register, login, refresh-token rotation with reuse detection, logout and /me, validated against the OpenAPI contract. A deliberately broken build showed one race test was passing by luck; it now forces the race deterministically. CI runs the API tests against a Postgres service.
System design: sequences and decisions
Sequence diagrams for the three hard flows (a move seen live across API instances via the outbox, AI drafting with rate limit and timeout, refresh-token rotation with a long-lived socket), the realtime message contract, and two ADRs: NestJS + Prisma, and AWS with demo and production profiles.
System design: containers and data model
C4 context and container diagrams and the ERD for all of v1: modular monolith (API + worker), WebSocket fan-out over Redis pub/sub, a transactional outbox for reliable events, and a schema built around tenant isolation and optimistic locking. In docs/architecture.
Ready to present
Richer demo data across three client projects, a 100-second captioned demo video on the landing page, and an 8-slide pitch deck. Next: feedback from a mentor and team leads, then the UI is frozen.
AI task drafting and activity log
Paste a client brief and get editable task drafts to review before anything is saved (rule-based stand-in for the model on the mock). Every create, edit and move now lands in a per-project activity log. Both endpoints added to the OpenAPI contract as drafts for the Stage 3 review.
Kanban board with live updates
Drag and drop with optimistic moves (mouse, touch and keyboard, announced to screen readers). Live updates arrive over a WebSocket; on the mock, virtual teammates move and add tasks, with presence avatars and toasts.
Visual v2 and landing page
New landing page (problem, features, how it works, planned pricing) with a one-click demo. Redesigned sidebar with project colours, a richer Today screen and a new sign-in page.
v1 scope locked
v1: accounts, workspaces and roles, per-project client viewers, live board with drag and drop, Today, activity log, AI task drafting. Comments, labels, attachments and search move to the v1.1 roadmap.
New process: stages with gates
After mentor feedback, work now moves in stages — problem, prototype, system design, code — each closed by a gate. Wrote the business brief and shipped this page.
Today, Project and Members screens
Overview of late and due-soon work, project task list with detail panel and edit-conflict handling, member invites with per-project client viewers. 13 Playwright checks.
Typed data layer and auth screens
openapi-fetch + TanStack Query typed from the contract; access token in memory, refresh token in an httpOnly cookie; sign-up and onboarding flow.
Mock API and first deploy
MSW handlers typed from the OpenAPI contract: roles, 409 on concurrent edits, fractional-index ordering. Deployed to Vercel.
Monorepo and API contract
pnpm + Turborepo + Next.js 16. OpenAPI 3.1 contract with generated TypeScript types and a CI check that they stay in sync.