event ticketing / production case study

Ontick moved off Eventbrite onto ticketing they own.

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
The system

the platform, and the control room behind it.

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 instalments, done right

“Spread payment” schedules with the ticket held back until full settlement, idempotency-keyed charges, and webhook reconciliation so the ledger and Stripe always agree.

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

The 20-seconds-to-3 fix

A single well-placed commit took a key page from a twenty-second load to three — the kind of win that only comes from knowing the codebase five years deep.

Architecture

A production stack built for the work.

  • 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
Start a project

got an eventbrite-style margin problem?

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