Prixwerkz presents
One booking platform. Eight markets. Eight currencies.
The problem
Most booking platforms are built around a single country — one currency, one language, one set of habits baked into the product. Opening a second market means forking the codebase and maintaining two of everything.
Lumo inverts that. The market is a property of the venue, not of the software. Adding a city is a data change, not a release.
What we built
Every venue in the demo carries its own city, currency and timezone. The interface, the prices and the tickets follow the venue the customer chose — not a global default.
Footprint
| Venue | City | Currency | Standard seat |
|---|---|---|---|
| Lumo Leicester Square | London | GBP | £14.00 |
| Lumo SoHo | New York | USD | $16.00 |
| Lumo Shibuya | Tokyo | JPY | ¥1,800 |
| Lumo Bastille | Paris | EUR | 12,00 € |
| Lumo Downtown | Dubai | AED | AED 45.00 |
| Lumo Marina Bay | Singapore | SGD | $15.00 |
| Lumo Bandra | Mumbai | INR | ₹250 |
| Lumo Paulista | São Paulo | BRL | R$ 35,00 |
Money
Amounts are held in the venue’s own currency and never converted at display time. Tokyo drops its decimals because yen has none; Paris puts the symbol after the number; Mumbai groups digits the Indian way. That is one formatting function, not eight code paths.
The journey
Live catalogue with posters, ratings, runtimes and trailers.
Filtered by city, priced in that venue’s currency.
Standard, premium and recliner tiers, priced per seat.
QR code, seats, venue address and showtime on one card.
Beyond the transaction
Lumo runs a 3D layer in the browser — no app to install, no headset required. It turns a seat number into something a customer can actually judge.
Trailers played inside a virtual auditorium rather than a rectangle on a page.
Walk the foyer and the screens before booking — useful for premium tiers.
A social space where an audience gathers ahead of a showing.
An in-venue guide that speaks six languages, with hand-written scripts in each.
Recommendations
Recommendations are not a black box. Each film is scored on five weighted signals, and the operator can see exactly why a title surfaced.
That last term earns its weight: without a heavy penalty for films the customer has already seen, popular titles dominate every list and the feature stops being personal at all.
For the operator
Create a venue, add screens, and design each seat layout row by row — including aisles, which renumber the seats around them the way a real venue labels a row.
Schedule showings, set tier prices, and hold seats back from sale. Double-booking a screen is rejected, and a sold seat cannot be held.
A group administrator sees the whole estate; a venue administrator sees only their own sites — and the system never confirms that the others exist.
Engineering
The platform is built on the current generation of the React ecosystem, typed end to end. What you are evaluating today is a complete static export of that interface: 176 pages, no server, no keys, no database — it will run from a laptop with the network switched off.
The production application and the offline demo share one codebase. Nothing was rewritten or stubbed to make the demo work, so what you click is what ships.
Where it stands
Booking, venues, seat selection, tickets, the 3D layer, recommendations and the operator console.
Eight markets, per-venue currency, six interface languages, offline demo build.
Persistent database, production-grade authentication, and payment processing.
Take the demo away with you — it needs nothing but a browser.