Skip to main content
← The work
Oculus · 2026

Origin Light Tour · Ticketing and door control

End-to-end event ticketing: bilingual storefront, back office, door-scanning app, mobile-money and card payments, QR-coded PDF tickets.

Origin Light Tour — artistes en scène
The problem

Each edition of the Origin Light Tour ran on disconnected tools: form-based sales, manual collection, guest lists in spreadsheets, paper checks at the door. Nothing linked a payment to a ticket, or a ticket to its holder at the door, which makes double entry undetectable and headcount unreliable.

Our approach

A Turborepo monorepo with an AdonisJS 6 API exposing three distinct surfaces over one Postgres model: public storefront, admin back office, agent application. Checkout is passwordless: the customer authenticates with a one-time code sent by email. Payment goes through Moneroo, covering mobile money and card, with a server-side transaction-monitoring service. The ticket is generated as a PDF with a QR code, then scanned at the door from a browser, which records which agent validated which ticket. The Next.js 15 storefront is bilingual and the locale is carried on the transaction, so emails and the ticket come out in the buyer’s language.

Two business rules shaped the model. First, a ticket type can cap purchases per customer, to curb scalping on tight categories. Second, a free ticket follows exactly the same path as a paid one, with no parallel code branch: same transaction, same PDF generation, same door scan, only the amount differs.

Agent access control is explicit: a team member is attached to the events they are cleared for, not to the whole catalogue. An agent hired for one night cannot scan the next one.

  • Origin Light Tour — groupe d'artistes
  • Origin Light Tour — artiste sur scène
  • Origin Light Tour — concert solo
  • Origin Light Tour — performance
Origin Light Tour — artistes en scène
Origin Light Tour — concert solo
Outcomes
Application surfaces
3
Data models
11
Domain services
9
Locales
FR + EN
Technologies
  • Tailwind CSS
  • Vite
  • S3
  • AdonisJS
  • GSAP
  • Postgres
  • React
  • Next.js
  • TypeScript
Contact

Let's talk.