Taking Ontick from Eventbrite to its own ticketing platform

Off a commission marketplace onto their own Laravel ticketing platform — multi-organizer, Stripe instalments, and two native apps.

£2M+processed since launch
20s→3sa key page, in one commit
0%third-party commission
5 yrsbuilt & run since 2021

Ticketing the team can own and operate

Eventbrite takes a cut of every ticket and keeps the customer relationship. Ontick wanted neither. We built them a ticketing platform they own outright — multi-organizer from the first commit, no per-ticket commission, and a back office their team runs the whole operation from. Five years on we still build and run it: the web platform, two native apps, and the payments engineering that keeps a sold-out festival from becoming a support queue.

From ticket release to festival check-in

A ticketing site is the easy 20%. The rest is the organizer back office and a payments engine that behaves when thousands of people check out in the same ten minutes.

01

An owned Laravel platform

Multi-organizer by default, per-tier inventory and sale windows, and a super-admin over the top — with zero per-ticket commission going to anyone else.

02

The organizer control room

A rich admin: event customization, an upsell builder, post-purchase promotions, attendee announcements and broadcasts, in-app banners, video embeds and offline/complimentary bookings.

03

Stripe instalment payments

“Spread payment” schedules with the ticket held back until full settlement, idempotency-keyed charges, and webhook reconciliation to keep the ledger aligned with Stripe events.

04

Payments hardened on real incidents

Killed a redirect-vs-webhook race with database row locks on order completion; bypassed Stripe's £0 rejection so complimentary and carer tickets check out; isolated webhooks by metadata.

05

Multi-day & festival ticketing

Usable-date validation for multi-day and camping events, day/weekend/carer ticket types, urgent-booking flags, and payouts that can route to a different Stripe account per event.

06

Page-load optimisation

A single well-placed commit took a key page from a twenty-second load to three after identifying the bottleneck in the existing codebase.

One app for the audience, one for the gate

The pocket and the gate. Both are React Native, both ship over-the-air, and both are built for the reality of a live event rather than a demo.

01

Customer app — live on the App Store

Book, pay and carry tickets on the phone, with push for reminders and recovery. Live on iOS, with Android in review.

02

Guest checkout & Apple Pay

Buy a ticket without an account, and pay with Apple Pay through Stripe — including the multi-merchant setup so different events settle to their own accounts.

03

Offline-first check-in

A dedicated scanning app on a serverless check-in API — open camera, scan, green tick, next — that keeps working when the gate has no signal.

04

Ticket scanning in busy venues

When the feedback was “a thousand people, low light, crowded,” we redesigned the ticket for reliable scanning based on that feedback.

05

Live door analytics

Scans in the last 15, 30 and 60 minutes, an entry graph across the day, and a ticket-type breakdown of who's in versus sold — so organizers read the gate in real time.

06

Multi-day validation

Tickets scan only on their valid dates — camping, day and weekend passes each behave correctly across a multi-day festival, verified against every scenario.

What the work enabled

  1. £2M+ processed, with the platform commission that drove the brief now at zero.

  2. Multi-organizer architecture live — new organizers and events onboarded without engineering.

  3. A payments engine hardened on real incidents: database locks killed a webhook/redirect race, £0 and complimentary tickets check out cleanly, and events pay out to their own Stripe accounts.

  4. Two apps in production — the customer app live on the App Store, and an offline-first check-in app scanning at the gate.

  5. Live check-in analytics on the door — scans per 15/30/60 minutes, an entry graph and a ticket-type breakdown, in real time.

  6. Guest checkout and Apple Pay, to simplify buying a ticket — and a one-line change that took a key page from twenty seconds to three.

How the platform fits together

  • Laravel
  • MySQL
  • Stripe
  • React Native
  • Expo
  • DigitalOcean
Web platform
Laravel (Blade) — booking, organizer + super-admin, REST API
Database
MySQL on DigitalOcean managed DB — multi-organizer schema, instalment ledger
Payments
Stripe — instalments, idempotent charges, webhook reconciliation, Apple Pay, multi-account payouts
Concurrency
Row locks (lockForUpdate) + metadata-isolated webhooks
Mobile
React Native (Expo, EAS, over-the-air updates) — customer + check-in apps
Check-in
Serverless scan API, offline-first, multi-day date validation
Analytics
Live door stats — rolling windows, entry graph, ticket breakdown
Clutch★★★★★5.0 / 5.0

Across 18 independently published client reviews

They have a deeper technical knowledge than any web designer I've met to date.

01 / 04

Ready to take control of your ticketing?

Book a 30-minute call with the team that will scope and lead your project.