Atomic booking engine
One single-threaded lock per event serializes every hold. All-or-nothing baskets, TTL expiry, confirm with your order reference. Double-booking is impossible by construction.
The embeddable seat map and booking layer for ticketing products. Real-time availability, atomic holds, your checkout.
Hover a section for live pricing. Tap to zoom in and pick real seats. This is the actual renderer, not a video.
Scroll through on-sale night. Four moments, one machine, zero oversells.
The listing drops and everyone wants Block 3, Row 8. Every purchase runs through one lock that takes requests strictly in order — the first buyer secures the pair, the second gets an instant, clean 'sold' in milliseconds. Never the same seat twice.
One single-threaded lock per event serializes every hold. All-or-nothing baskets, TTL expiry, confirm with your order reference. Double-booking is impossible by construction.
Draw sections on a map, slice them into rows, number seats, set zone pricing. Import a CSV seat manifest, or start from an AI-generated layout and refine.
One compact protobuf blob per venue, spatially indexed in the browser. Tens of thousands of seats with instant hover and click hit-testing, on any device.
Every hold, confirm and release fans out over WebSocket to every open map. No polling, no stale seats, no refresh button.
Three JSON calls to a sold seat, a WebSocket for live state, and a renderer that drops into any page. Your backend stays in charge.
A built-in MCP server lets Claude, Codex or Cursor generate a venue from a description or a spreadsheet and push it straight to the designer.
Scroll sideways through the whole workflow — design, price, publish, sell.
Sketch sections on a map or import a CAD/CSV export.
One tap turns a section into numbered, straight rows.
Drag price tiers across the map; events inherit them.
One compact blob ships the whole venue worldwide.
Holds lock atomically and fan out to every open map.
Two tiers, eighty thousand seats, sub-second hit-testing on a phone.
Curved rows, boxes and balconies, drawn in the designer and priced by zone.
GA capacity zones and reserved seating side by side on one map.
White-label embed: your brand, your checkout, our seat layer underneath.
The buyer picks seats; you request an all-or-nothing hold. The engine grants it atomically and starts the TTL clock.
Your checkout completes payment, then confirms the hold with your order reference. The sale is recorded durably, exactly once.
Seat state fans out over WebSocket to every open map. Abandoned holds expire on their own, with no reconciliation jobs.
# 1: hold seats (all-or-nothing, TTL-bound) POST /api/events/evt_42/hold { "owner": "buyer_42", "seatIds": ["E7", "E8"] } → 200 { "holdId": "hold_9f2" } # 2: confirm with your order reference POST /api/events/evt_42/confirm { "holdId": "hold_9f2", "externalOrderRef": "order_981" } → 200 sale recorded, exactly once # 3: live seat state, everywhere GET /api/events/evt_42/ws → ws: E7 held, E8 held, E7 sold, E8 sold
The demo theater is already loaded. Open it in two tabs, watch a seat lock live, then wire in your checkout with three API calls.