Stay Engine
A four-step direct booking flow with a real date-range calendar and seasonal pricing per night.
Stay Engine
Overview
A direct booking engine an independent hotel would embed on its own site, so it stops paying commission on every reservation. Four steps — dates, room, extras, confirm — with a running summary rail that stays visible throughout.
Role
Product thinking, interaction design, front-end build, deployment
Challenge
A booking flow is the one interface where wrong arithmetic is immediately disqualifying. It needed a genuine date-range calendar, per-night seasonal rates, availability that responds to the dates chosen, and validation that catches an empty name or a malformed email — all without a server.
Approach
The calendar is built from scratch (Monday-first, range selection, past dates disabled) and prints the nightly rate under each date. Pricing sums night by night through a seasonal multiplier rather than multiplying one flat rate, so a stay crossing a season boundary costs what it should. Availability is a deterministic function of the dates and the room, so the same search always returns the same answer.
Outcome
Live and walked end to end: a sold-out room correctly refuses selection, extras price per-person versus per-trip correctly ($70 + $95 × 2 = $260), tax lands right, and submitting an empty form or a malformed email is blocked with a specific message rather than a generic one.