Green Ridge campsites are first-come, first-served. Ground truth lives on a clipboard at HQ — not a reservation API. Campers need planning context before they drive and situational context after they arrive. Overclaiming availability would erode trust faster than no app at all.
The board is authoritative. The app only mirrors it, with visible freshness, within whatever window someone last photographed it.
Uncertainty is the product condition — not an edge case.
Outcomes.
Freshness as a feature
Every site row carries a freshness state — last known state, clearly described, is more trustworthy than false certainty.
Human review is architecture
Clipboard capture runs photo → vision parse → validate → publish or review queue. Low-confidence reads route to a human before they go live.
Solo stack shipped
Design system, PWA, API, vision pipeline, admin tooling, and marketing — one owner from constraint through field hardening.
Production-linked kit
Semantic tokens and component imports pull from the live product — surfaces stayed aligned through pivots.
What the full case study covers
- Problem discovery and the HQ clipboard constraint
- Design process — artifact-driven architecture, freshness, production-linked kit
- Clipboard capture, vision pipeline, ML feedback loop, and admin review
- Four product surfaces, five lessons, and reflection on uncertain domains