A bus line between Washington DC and New York that sells its own seats. Riders search, pick a departure, hold a seat and pay without ever meeting a third-party marketplace, which is the whole point: the operator keeps the customer and the margin.
The search form is the homepage. One way or return, seats, date, go.
Picking a departure. The countdown on the right is a seat hold: inventory is reserved while you check out, and released when the clock runs out.
What it does
Four cities, and the stops within them. New York at Penn Station and Brooklyn, Arlington at Rosslyn and Georgetown, Dupont Circle in DC, and Bethesda. A route is a pair of stops, not a pair of cities, which is what the schedule and the pricing hang off.
Two products on one schedule. Standard runs 56 seats; Elite runs 34, with leather captain's seats two abreast, tray tables and water. The same departure carries a different seat map, a different price and a badge on the card.
Seats are held, not just sold. Choosing a trip starts a countdown. Inventory is reserved for the length of checkout and released if the clock expires, which is the part of a booking system that has to be right: two people must never buy the same seat, and an abandoned cart must not strand one.
Self-service after the sale. Tickets can be changed from the site without an account, and riders earn a free trip for every six bought.
What I built
Lead developer. I architected the PostgreSQL schema, the REST API and the React and Next.js front end.
The schedule and inventory model, spanning stops, dated departures, per-product seat maps and the holds that sit between a search and a sale.
Booking end to end, from the search on the homepage through departure selection, seat count, checkout and ticket management.
A 35% cut in load times, which on a booking funnel is revenue rather than housekeeping: every second before the search results is a rider who leaves.