
Tablekeeper is a restaurant reservation system built around one promise: a table is never given to two parties at the same time. Double-bookings usually come from three places. Two guests click "book" in the same second, and the system checks availability before writing, so both get through. A dropped connection or an impatient double-click sends the same request twice. Daylight-saving changes make some times happen twice and others not at all, so a booking can quietly move by an hour. Tablekeeper handles all three in the database itself. Every booking is stored as 15-minute blocks, and the database lets a table hold each block only once. If a booking overlaps another, the database rejects it, and the guest is told the slot is taken. Retries are safe because each request carries a key tied to its content, so sending it again returns the original booking instead of creating a second one. Times are stored in UTC and shown in the restaurant's own time zone. A time that doesn't exist is refused, and a time that happens twice must say which one is meant. We proved it under pressure. In a live test, 20 simultaneous requests for the same table produced exactly one booking and 19 refusals. The automated suite has 57 passing tests, including 12 separate processes racing on one database file and time zones with unusual offsets such as Kathmandu (+05:45). The interface is soft and approachable, with pastel cards for each step, a custom cursor, dark mode and a phone layout. Tablekeeper runs on Node.js and its built-in SQLite, with zero runtime dependencies.
6 Oct 2026