appycodes.

Eventbrite is fine for 95% of events. We exist for the 5% where it isn't.

Custom event ticketing platforms for multi-day festivals, white-label venue groups and marketplaces. Tier logic Eventbrite can't model, and door-staff apps that keep working when the venue Wi-Fi dies.

Admit one · anonymised

Tribute Festival · Anonymised RFC

Date

23 to 24 May 2026

Tier

Adult · Weekend Pass

Order

#ONT-2026-04812

Status

Confirmed

QR · signed · per-event secret

What you get

Six engagements.

From a single festival with awkward tier logic to a multi-tenant white-label network, the ticketing surface and the door-staff app ship on one design system.

01

Custom ticketing platforms

Multi-event, multi-day, tiered, mixed adult / child / group pricing. The shapes Eventbrite makes you live with, we handle natively.

02

White-label ticketing

For venue groups or promoter networks. Multi-tenant data model, brand-aware checkout flows, isolated payout paths per tenant.

03

Door-staff & scanner apps

Offline-capable React Native or PWA. Local-only session logs, four-stat summary, scan-result colour-coding (admit / used / invalid).

04

Payments + payouts

Stripe Connect-style flows with hold periods and dispute reserves. The deeper billing engineering covered on the Stripe page.

05

Migrations off Eventbrite / Ticket Tailor

Past order history, customer accounts, search rankings, preserved through cutover. Same redirect engineering we do for Shopify migrations.

06

Event marketplaces

Where the platform owns multiple venues, organisers, and check-in reward systems (Bloc-style).

The ticket lifecycle engineering map

Every stage where a ticketing platform can quietly break.

Eight stages from tier publish to event reconciliation. Each one with the typical failure mode and the pattern we use to handle it.

01
Publish
RiskInventory definition · tier overlap · timezones
PatternSingle canonical tier definition · explicit timezone fields · validated at write
02
Purchase
RiskTwo buyers, last ticket, race condition
PatternAtomic decrement on inventory · Postgres SELECT FOR UPDATE / Redis SETNX
03
Inventory lock
RiskHold expires, ghost inventory persists
PatternTTL-based holds · janitor job · per-tier lock counters
04
Payment
RiskWebhook drops, payment confirmed but order pending
PatternIdempotent webhook handler · Stripe / Razorpay signature verification · DLQ
05
Email
RiskTicket lands in spam · spoofed sender
PatternSPF · DKIM · DMARC · Resend / Postmark · monitoring deliverability per domain
06
QR
RiskSpoofed codes · pre-event leaks
PatternSigned JWT-style codes · per-event secret · rotation post-event
07
Scan at gate
RiskOffline at venue · Wi-Fi dies under load
PatternOffline-first scanner app · IndexedDB cache · merge on reconnect
08
Refund / payout
RiskInventory released to wrong tier · payout race
PatternAtomic release · Stripe Connect-style holds with dispute reserve

Evidence, Ontick

Customer-facing platform plus a door-staff app on the same design system.

Ontick
230K+
Tickets booked
£90K+
In sales

Stack

Laravel · Vue.js · MySQL · Vite + React 18 check-in app

Customer platform. Laravel + Vue.js + MySQL. £90K+ in sales, 230K+ tickets booked. Real events include the Bromsgrove Tribute Festival 2026 (23 to 24 May at Bromsgrove Rugby Football Club) with multiple tiers: Adult Weekend Pass, Adult Saturday Day, Adult Sunday Day, Child Saturday.

Staff check-in app.Vite + React 18, deployed under goappycodes/ontick-checkin-mockup. Established Ontick design system (accent #037dd4, DM Sans, iOS-style 280 to 560 phone frames). Nine screens: Login, Events, Dashboard, Scanner, Admit (green), Already Used (amber), Invalid (red), Manual Entry, plus "My Session", a local-only session log per staff member.

Two-tab bottom nav (Dashboard / My History). Multi-day events show day pills on the dashboard. Four-stat summary strip (Total / Admit / Used / Issue) explicitly marked "Saved on this device · Your scans only." The point: door-staff apps are not afterthoughts, they're the moment the platform either works or doesn't.

Read the full Ontick case study. Adjacent work: Bloc (events + venue ads + check-in rewards), React Native for the staff app side, Laravel for the backend, Stripe billing for Connect-style payouts, API & integration for promoter / venue feeds.

Good fit if

When ticketing is real engineering

  • Festivals and multi-day events with complex tier logic Eventbrite can't model
  • Venue groups or promoter networks needing white-label ticketing across multiple sites
  • Operators who need to own the customer relationship instead of renting it
  • Door-staff workflows that have to work offline at the gate

Probably not a fit

We'll tell you to rent instead

  • Single-event organisers, Eventbrite or Ticket Tailor will be cheaper and faster
  • Generic 'we sell tickets' use cases where the off-the-shelf platforms genuinely fit
  • Teams without a clear answer to 'who runs door staff training'

Stack we ship on

Laravel · Vue · Stripe Connect · offline-first staff app.

Backend
Laravel · MySQL · Redis (locks + holds) · queue workers
Customer UI
Vue.js / Next.js · server-rendered for SEO · checkout flows
Staff app
React Native / PWA · offline-first · IndexedDB · scanner integration
Payments
Stripe (Connect-style) · Razorpay · idempotent webhook handlers
Email
Resend / Postmark · SPF / DKIM / DMARC · per-event sender reputation

If Eventbrite no longer fits

Bring the tier logic and the door-staff workflow. We'll size the platform.

Contact