v0.5.25 — Two-week sprint: Mar 27 – Apr 10
Floor plan editor, service view, reservations page, settings, sidebar, booking widget
Table assignment, scoring, combinations, seat loss, channel availability, live reshuffle
Company admin, group manager, location manager, rate limiting, race condition fixes
One-click toggle. Drag-to-time on the timeline to reschedule. Search dimming highlights matches on the canvas.
Waitlist and walk-in management in a drawer. Reservation details as overlays — floor plan stays visible.
Adapts to screen size. Sidebar auto-collapses. Language and appearance settings accessible from the sidebar.
Confirm, seat, cancel, no-show, reject, mark incomplete — defined once, used on dashboard and service view.
"Marked as no-show — Undo". Snackbar on every status change. One click to reverse.
Confirmed → Needs Review · Confirmed → Incomplete · Seated → Confirmed. All DB-enforced.
Drag, resize, rotate. Multi-select. Smart snapping. Same engine powers the editor and the live service view.
Visual capacity on every table. Linked groups show combined seats with seat loss accounted for.
Version checking prevents overwrites. Undo/redo tracks saved state. Dark & light mode.
Every booking needs a table. Picking the wrong one wastes capacity, frustrates guests, and leaves money on the table.
Seat a party of 2 at a 6-top, and that table can't serve a larger party. Multiply by 50 bookings a night.
Guest requests a patio seat, gets the bar. Guest books for a quiet dinner, ends up next to the kitchen.
Staff manually juggling tables on a busy Saturday night. No time to think about optimization.
Our algorithm solves this automatically — every booking, every time.
The brain and the body. The algorithm thinks. The engine acts.
packages/booking-algo
packages/booking-engine
From a booking request arriving to a table being assigned
Each layer answers one question. If any rejects, later layers don't run.
"Can we accept more guests right now?"
"Which tables pass the 7 hard constraints?"
"Can we push tables together for large parties?"
"Does this time block fit without overlapping?"
"Which eligible table scores best on 6 factors?"
"Can we rearrange all reservations for a better plan?"
The algorithm doesn't just say "no" — it generates alternative times (+/-15 to +/-120 min), runs the full pipeline on each, and returns the top 3 scored by time proximity, table quality, size fit, and demand level.
Every table gets a score from 0 to 1. The highest score wins. Two presets available.
Weights are configurable per service. Restaurants choose their strategy — or create a custom blend.
Can we rearrange all reservations for a better overall plan?
Re-optimize all reservations at once before the service starts.
When things change — cancellation, walk-in, no-show — find a better arrangement.
Staff can override the algorithm when they need to. Two lock levels give the right balance between automation and control.
The algorithm never reassigns this table.
Algorithm prefers this table via scoring but will reassign if a better arrangement exists.
Org: General, Team, Billing, Integrations
Venue: Details, Channels, Widget, Notifications
Details: Address autocomplete, live map, timezone
Admin — full access, all locations
Group Manager — assigned locations
Location Manager — single venue
4-level fallback: Service → Table → Zone → All
Canvas indicators show channel config per table
Zone inheritance — set once, override per table
Two guests could grab the same slot. Now uses database-level locks — physically impossible.
Save and close quickly? Changes lost. Saves now run sequentially and reliably.
Guest "confirmed" with no table. Now flags with "Needs table" badge visible to staff.
Walk-in turn times fixed. Onboarding no longer silently fails before payment.
Widget: 30 queries/min, 5 holds/min, 3 confirms/min per IP.
Trivy scans Docker images before every deploy.
Email verification on acceptance. Can't join with the wrong account.
Version checks + auto-reload. API errors sanitised.
"For 2 weeks old I am not a hater!! Some good stuff in there... I like how easy it is to switch between floor plan and timeline... really looking forward to diving in for more of a play!"
"Of the AI startup codebases, this is the best so far. I usually find unauthenticated endpoints, XSS, CORS issues. Kudos."