Tikkets
Multi-tenant event ticketing — online checkout, door cash sales, and offline-safe scanning, one inventory.
Multi-territory landing — one platform, per-country storefronts — scroll to see more
Live event ticket selection — real event, real inventory — scroll to see more
Promoters selling in mixed-currency, mixed-channel markets — online plus door cash — had no single inventory model, no offline-safe scanning, and no reconcilable money trail. Gate scanning tools froze under load; door cash floated uncounted; refunds and comp tickets were spreadsheets.
- Three doors into one inventory: online Stripe checkout, a door cash POS with live FX conversion and drawer reconciliation, and a scanner PWA that queues check-ins offline and replays them without double-counting when connectivity returns.
- A 'soft hold' checkout model — picking a ticket reserves inventory for 10 minutes and automatically releases it if payment isn't completed; free orders skip payment entirely.
- A webhook path that cross-checks amount and currency between Stripe's record and the internal order before confirming, catching tampered requests before they slip through.
- A complimentary ticket pool completely separate from paid-sales inventory, so sponsor/VIP tickets never distort revenue reporting.
- An optional Hedera NFT ticketing layer, minted asynchronously on its own queue so a slow blockchain call never holds up a customer's checkout.
Load-tested to 22+ scans per second sustained with zero errors, and no failures at 5,000 concurrent users — built specifically to handle a 40,000-attendee event inside a 30–60 minute entry window. Live and selling real event tickets across three territories.
- The offline queue is the real product — anyone can build a QR scanner, but one that keeps working when a venue's network blips, and replays every queued check-in without double-counting a guest, is what actually gets trusted at the door.
- Money correctness across three payment paths — free, card-paid, and webhook-recovered orders all have to agree on amount and currency before a ticket is issued.
- Read/write database splitting and targeted indexing added ahead of a 5,000-concurrent-user event to keep dashboards from degrading to multi-second load times.
Next.js 14 · React 18 · TypeScript · Tailwind CSS · Laravel 11 (Octane/FrankenPHP) · PostgreSQL (AWS RDS, read replica) · Redis (ElastiCache) · Stripe · Hedera · AWS · Nginx