DECISION_LOG
RECORDS: 05Every non-obvious call I've made on a real project, written up the way I'd write it for a team.
- CONTEXT //
- the constraint I was under
- OPTIONS //
- what I considered and rejected
- DECISION //
- what I actually did
- TRADEOFF //
- what it cost
- OUTCOME //
- what happened next
- REVISIT //
- what I'd change
- ADR-0012025-02-08TWEETPRENUER
LLM calls belong behind a backend, not in the browser
All LLM and third-party API traffic moves behind an Express backend. The client only ever talks to my API.
FULL_RECORD - ADR-0022025-02-21TWEETPRENUER
Cache AI generations: staleness is a feature, not a bug
Persist every generated result in MongoDB keyed by username. Repeat requests return the stored card instead of erroring or regenerating.
FULL_RECORD - ADR-0032025-12-22
AI scaffolds are for discovering the product, not shipping it
Prototype the full product surface in an AI scaffold (Lovable), treat it as a disposable spec, and hand-write the production app natively.
FULL_RECORD - ADR-0042025-09-25PARKIT
In a hackathon, fake the familiar, build the differentiator
Hardcode the current user, mock the payment settlement, and spend the time making the differentiating flows real: live map, booking, QR check-in/out, WebSocket payment events, push notifications.
FULL_RECORD - ADR-0052026-05-21FORMFORGE
One declarative API beats fifteen flexible components
Consumers describe the form as data (fields, types, validation) and the library owns rendering, layout, and state. Individual components stay internal.
FULL_RECORD