Zepup.lv is a mobile-first website and booking platform for a Latvian water adventure park. The important part was not just showing availability, but making reservations work reliably when people want more than one hour and multiple visitors may be trying to book the same slot at once.
Booking had to be the product
My role here was hands-on product and software implementation for the booking flow and the underlying platform setup. The finished booking-engine scope covers the guest reservation flow, consecutive hourly reservations, server-side enforcement of an 80-person limit per slot, and the supporting reservation storage behind it.
That meant treating booking logic as the core product surface instead of a thin form on top of a brochure site. People need to understand what they are reserving, select time in a way that works on mobile, and get a clear path through the flow without capacity rules becoming confusing.
The main engineering decision: capacity lives on the server
The riskiest part of this project is overselling time slots. Availability checks that only happen in the browser are not enough when two people can submit overlapping reservations seconds apart, so the platform keeps capacity enforcement on the server.
The booking flow also supports consecutive-hour selection, which makes slot handling more complicated than a single isolated reservation. Capacity has to stay consistent across the selected time range, not just on one click. That decision shaped the implementation more than any visual detail did.
Platform setup mattered too
The current stack uses Next.js, Payload CMS, Postgres on Neon, Cloudflare R2, and Vercel. Another important choice was separating environment resources so staging and production do not share the same database, storage, or app configuration. For a booking system, that kind of separation is basic operational safety, not optional polish.
Current status
The booking engine itself is done. The current phase is admin polish, slot-management work, and SEO. Verification by email or SMS and some anti-abuse work are part of the active scope, but I would describe those as current work rather than finished public features.
