The problem
My partner and I needed one place to shortlist and compare wedding venues. Venue Finder puts a map view and a list view over the same data, lets us define our own fields, and compares venues side by side. No login and no backend code.
Who did what
I set the scope in a spec written as a handoff: the visual design went to Claude Design, and the build went to Claude Code with a “do not build” list it had to treat as binding. Claude Code built it in 24 commits over two days, working through the sessions in the plan in order.
Constraints
- The “do not build” list: no auth, no TypeScript, no router, no file uploads, no Cloud Functions, no geocoding.
- Every field type lives in one file. No
switch(field.type)anywhere else.
The trade-off
There’s no login, so anyone with the URL can read or wipe the data. The spec accepts that in writing and says to keep nothing confidential in the app. For a two-person tool, having no backend code of our own was worth more than access control.
Outcome
- Deployed on its second day and in use by the two of us.
- 13 field types and 34 starter fields.
- No test suite. Each session ended with its own “Done when” checks instead.
How it was built
There was no .claude/ folder. The README was Claude’s operating manual: a start-of-session ritual (read the plan, check git log, confirm the files exist, take the first unfinished session), an append-only session log, and a ranking for when sources disagree: “code on disk > git log > this README > anything I remember”.
