1// Second Draft.md
2// ---------------------------
3 
4# Second Draft
5 
6Private writing club platform for anonymous essays, structured critiques, and per-essay discussion — real accounts, invisible identities.
7 
8**TYPE:** Web Application
9**STATUS:** Live
10**LIVE:** https://second-draft-swart.vercel.app
11**DEV:** http://localhost:4100
12**WORKSPACE:** ~/GitHub/writing
13**GITHUB:** nikanjuri/second-draft (private)
14 
15---
16 
17## FEATURES
18 
19- Anonymous essay publishing — member pages never expose names, emails, or user IDs
20- Invite-code signup with admin approval for pending members
21- Structured critique workflow per essay
22- Per-essay discussion threads
23- Real authenticated accounts behind the anonymity layer
24- Private object storage for essay content
25- Guardrail tests enforcing the anonymity model
26 
27---
28 
29## TECHNOLOGIES
30 
31- Next.js 15 (App Router)
32- TypeScript
33- Supabase (Auth, Postgres, private storage)
34- Vitest
35- Playwright
36 
37---
38 
39## NOTES
40 
41Second Draft is a platform for a private writing club: members publish essays anonymously, give structured critiques, and discuss each piece — without knowing who wrote what.
42 
43### The anonymity model
44 
45Members use real authenticated accounts, but member-facing pages never expose names, emails, or raw user IDs. New signups without the club invite code stay pending until an admin approves them — that invariant is enforced in code and covered by focused Vitest guardrail tests, so a refactor can't quietly leak identity.
46 
47### Why anonymity
48 
49Honest critique requires separating the work from the person. When you don't know whose essay you're reading, feedback gets sharper and egos stay out of the room — the club reads the writing, not the writer.
50 
51### Stack
52 
53Next.js App Router on Supabase — auth for real accounts, Postgres for essays and critiques, and private object storage so drafts are never publicly addressable.