Demonstration build
Wexford & Way Realty
Wexford & Way Realty is a made-up business we built to demonstrate the work. The site is live and you can try it. The numbers shown on it are illustrative sample data.

The problem
Wexford & Way lists active and pending homes, but the old site was a static list of addresses with no photo gallery and no way to book a showing, a buyer interested in a listing had to call the office to even find out if it was still available, let alone see it.
What we built
A modern-estate listings site with 8 fixed listings (6 active, 2 pending), a photo gallery per listing, a 30-minute showing scheduler, and a lead-capture form protected by a hidden honeypot field that silently drops anything a bot fills in, the demo stores and sends nothing beyond passing its own validation.
Decisions & why
Pending listings show zero showing slots, enforced in the availability function itself.
A home already under contract shouldn't be bookable for a showing no matter how a request reaches the scheduler. Checking listing status inside `showingSlots`, not just hiding a button in the UI, means a pending listing can't be scheduled through any path.
A honeypot field checked first, before any other validation, with a success response returned either way.
A bot that fills in every field it finds, including one hidden from real visitors, gets a normal-looking success response so it doesn't learn it was caught, while the submission itself is silently dropped before it's stored or sent anywhere.
The lead-capture handler is a pure function of a `Request` in and a `Response` out, tested directly without a live dev server.
Validation logic you can only exercise by spinning up the whole site is validation logic that's hard to trust. A pure request handler means the exact code path a real submission takes is the same code path the test suite exercises.
Half-hour showing slots (10:00-17:30) closed on weekends, deterministically seeded per listing and date.
A showing schedule needs to behave the same way every time it's demonstrated. You can read exactly how a slot opens and closes in the code, with no live MLS or calendar feed changing the answer underneath it.
The result it aims for
The build aims to let a buyer browse a listing's photos and book a showing in the same visit, and to give the office a lead form that filters out bot noise before it ever reaches a real inbox.
This is the goal the build is designed to hit, not a measured client outcome.