Events and ticketing · Ticketing platforms
Event ticketing platform development and event management software that does not oversell
We build ticketing and event management platforms for organisers, venues and experience companies: checkout that holds up on sale day, seat maps, QR check-in, refunds and transfers, organiser payouts and tax handled per jurisdiction. Our main proof is the Paint Nite platform rebuild.

Short answer
Event ticketing platform development covers event listings, checkout with inventory holds, seat maps, QR check-in, refunds and transfers, organiser payouts and tax by jurisdiction. Innovation Insight rebuilt the booking and checkout platform for Paint Nite, which runs ticketed events across the US and Canada. Our calculator puts an Eventbrite-style MVP at $34k to $63k over 11 to 20 weeks; a full platform with reserved seating and multi-country payments sits in our $50k to $150k+ band.
Reviewed by Zain Khalid Malik, CTO & Co-founder · Updated
What we build
Ticketing looks like e-commerce with dates attached. It is harder: stock is fixed and perishable, demand arrives all at once when tickets go on sale, the same seat cannot be sold twice, and the money belongs to someone else until the event happens. We build platforms where those rules are enforced by the system rather than by staff fixing oversold events the night before.
| Platform type | Who it serves | Distinctive needs |
|---|---|---|
| Self-serve ticketing marketplace | Many independent organisers | Organiser onboarding and KYC, payouts, fee setting, discovery and search |
| Experience and class company | One brand running many recurring events in many cities | Venue and host management, recurring schedules, capacity per venue, multi-country tax |
| Venue or promoter box office | One venue or promoter | Reserved seat maps, holds for promoters and artists, on-sale queues, scanning at doors |
| Conference and event management | Corporate and association events | Registration forms, agenda, badges, sponsor packages, group and invoice payment |
Features by user type
| Attendee | Organiser or host | Door staff | Admin |
|---|---|---|---|
| Search and browse events by place, date and category | Event creation with ticket types, prices, capacity and sale windows | Scanner app that works offline | Organiser approval, verification and payout settings |
| Seat selection on a map or general admission | Seat maps, holds and allocations for guests and promoters | Duplicate and invalid ticket alerts | Platform fees and fee display settings per market |
| Total price with mandatory fees shown from the first price | Promo codes, early-bird tiers and group pricing | Manual lookup by name or order | Refund policies, chargebacks and disputes |
| Mobile tickets with QR codes, wallet passes | Sales, check-in and revenue dashboards in real time | Live entry counts per gate | Tax configuration by jurisdiction |
| Transfer a ticket to a friend, request a refund | Attendee messaging, cancellations and date changes | Shift login with limited permissions | Fraud review, bot controls and on-sale queue settings |
| Order history, receipts and calendar invites | Payout statements and tax reports | Sync of scans when connection returns | Audit log of refunds, payouts and manual changes |
Inventory holds and oversell prevention
The core rule: a ticket is either available, held for one buyer for a short time, or sold, and moving between those states is atomic. Common designs:
- Holds with expiry: selecting tickets creates a hold for a few minutes, enforced in the database with a conditional update on remaining capacity (or a row lock per seat), never by reading the count in application code and writing it back.
- Payment after hold: the payment is only attempted while the hold is valid, with an idempotency key per checkout attempt, so a double tap or a retried request never charges twice.
- Expiry sweeps: expired holds return to stock by a scheduled job and by a check at read time, so a crashed worker does not leave seats stuck.
- Reserved seating: each seat is its own inventory row with section, row, number, price level and accessibility flags; general admission is a counter per ticket type.
On-sale queues and traffic spikes
A popular on-sale sends more visitors in a minute than a normal week. A virtual waiting room such as Cloudflare Waiting Room admits visitors at a rate the checkout can handle and shows everyone else their place. Behind it, event pages are cached at the edge, inventory reads come from a fast store, and only holds and payments touch the primary database. We load-test the full purchase path at several times the expected peak before any big on-sale, and add bot controls (rate limits, challenge pages, purchase limits per account and card) because resale bots target exactly these moments.
QR check-in, refunds and transfers
- QR tickets: each code is a signed token that the scanner app verifies offline, with the scan list downloaded before doors open and synced back when the connection returns. Duplicate scans on two devices are reconciled and flagged.
- Rotating codes: for high-demand events the QR code refreshes in the app every few seconds, which makes screenshots useless for resale.
- Transfers: the ticket is reissued to the new holder's account and the old code is invalidated, with limits and an audit trail set by the organiser.
- Refunds: policy per event (full, partial, credit, none), automatic refunds when an event is cancelled, and fee handling that matches what the attendee was told at checkout.
Fee display: the FTC rule for live-event tickets
The FTC's Rule on Unfair or Deceptive Fees (16 CFR Part 464) has applied since 12 May 2025 to any business that offers, displays or advertises live-event tickets in the US, including resellers and third-party platforms. According to the FTC's FAQ (checked October 2026):
- Any advertised price must come with the total price, including all mandatory fees the business knows and can calculate, shown more prominently than other pricing information.
- Taxes, government charges and shipping can be left out of the upfront total but must be disclosed before the customer is asked to pay.
- Optional add-ons such as VIP upgrades can be excluded from the total, but their nature, purpose and amount must be disclosed before payment.
- The final amount, with taxes, shipping and add-ons, must be shown before payment and be at least as prominent as the total price.
We build this into the pricing service: every price shown anywhere (listing, search result, seat map, email) is computed by one function that returns the total with mandatory fees, so no page can show a lower number by accident. Some US states have their own ticket pricing laws; we confirm the list with your counsel.
Organiser payouts and tax by jurisdiction
On a marketplace the money belongs to the organiser, minus your fee, but the event has not happened yet. Stripe Connect handles organiser onboarding and KYC; the decisions are when to pay out (after the event, or before with a reserve), how much to hold back for refunds and chargebacks, and who carries the risk when an event is cancelled. For tax, admissions are taxed differently by country, state and sometimes city, and a business selling across borders needs a tax path per country. Stripe Tax or a similar service calculates the rates; the platform still has to know where each event takes place and where the seller has nexus.
Technology we use
| Layer | Typical choice | Why |
|---|---|---|
| Attendee site and organiser tools | Next.js | Server-rendered event pages for search engines, fast at the edge on on-sale day |
| Backend | NestJS services on PostgreSQL behind a GraphQL or REST API | The stack we used on Paint Nite; typed modules for inventory, orders, payments and payouts |
| Messaging | RabbitMQ or SQS for order side effects | Emails, tickets, analytics and syncs retried independently of the payment |
| Search | OpenSearch with versioned indexes behind aliases | Event discovery with filters, and schema changes without downtime |
| Payments and tax | Stripe with Connect for organiser payouts, Stripe Tax or similar | Multi-country accounts, payouts and tax rates per jurisdiction |
| Mobile | React Native or Flutter for attendee and scanner apps | Wallet passes, offline scanning and push notifications |
How a project runs
- Discovery (one to two weeks, $3k to $8k): platform type, ticket formats, seating, markets and tax, payout policy, fee display and the systems you are replacing.
- Checkout and inventory first: holds, payments, order writes and compensation, with load tests before any other feature is finished.
- Organiser tools, check-in and refunds in two-week sprints, with demos to your operations team.
- For rebuilds: sync services so the new and old systems run side by side, then migrate one slice (a market, an event type) at a time.
- Launch with a rehearsed on-sale, then support on a retainer of $1.5k to $8k per month.
What a ticketing platform costs
| Scope | Our cost | Timeline | US agency, same scope |
|---|---|---|---|
| Ticketing MVP: listings, general admission checkout, QR tickets, organiser payouts, admin | $34k to $63k | 11 to 20 weeks | $122k to $329k |
| Full platform: reserved seating, on-sale queues, transfers, multi-country tax and payments, apps | $71k to $130k | 13 to 25 weeks | $253k to $684k |
Our published band for a full product is $50k to $150k+; a rebuild of an existing platform alongside the legacy system sits at the upper end because of the sync and migration work. Open the ticketing preset in the calculator to change the scope, or read the Eventbrite cost breakdown and our ticketing platform architecture post.
Case study: the Paint Nite platform rebuild
Paint Nite runs ticketed live events and experiences across the US and Canada. Five of our engineers, working alongside a client-side technical lead, designed the database architecture from November 2025 and built the new platform from March to June 2026: a NestJS and Next.js replacement for booking, checkout and operations.
- Eight independent NestJS services behind a single GraphQL gateway, communicating only through a RabbitMQ message queue, with three front-end apps.
- Checkout rebuilt as a six-stage pipeline: quote, tax, tender, persist, emit, effects. The order is written in one atomic transaction, payments are idempotent, side effects are queued and retryable, and failures trigger explicit compensation.
- Separate Stripe accounts, keys and webhook secrets for the US and Canada, with a Canadian tax path and per-state nexus rules.
- Versioned OpenSearch indexes behind aliases, with dual-write during rebuilds and resumable reindex jobs, so search schema changes that used to need production downtime now ship with none.
- Dedicated sync services that keep the new platform and the legacy one aligned, so features migrate in slices instead of in one risky cut-over.
- 754 automated test files run on every pull request; 168 GraphQL operations and 188 internal service handlers delivered, with 53 tracked migrations.
If you are replacing an old ticketing system rather than starting fresh, our legacy modernization page explains the slice-by-slice approach. Related marketplace work is in Seek My Service, and the events hub is at events and ticketing.
Sources and further reading
Next step
Tell us what you're building and get a written estimate.
A senior engineer replies within one business day. NDA on request.
Products we've shipped, and what happened next.
Case studies written from the technical documentation of each project: the stack, the scale and the outcome.
Questions we get asked a lot.
How much does event ticketing platform development cost?
An Eventbrite-style MVP with listings, checkout, QR tickets and organiser payouts costs $34k to $63k with our team over 11 to 20 weeks. A full platform with reserved seating, on-sale queues and multi-country payments costs $71k to $130k, within our $50k to $150k+ band.
How do you stop a ticketing platform from overselling?
Tickets are held for a few minutes with an atomic update on capacity or a lock per seat, payment is only attempted while the hold is valid, and the order is written in one transaction with explicit compensation if anything fails after payment.
Does the FTC fee rule apply to my ticketing site?
If you offer, display or advertise live-event tickets in the US, yes. Since 12 May 2025 you must show the total price with mandatory fees upfront, disclose taxes and shipping before payment, and show the final amount before asking for payment. Confirm the details for your business with counsel.
Can QR check-in work without internet at the venue?
Yes. Tickets are signed tokens the scanner app can verify offline, using a scan list downloaded before doors open; scans sync when the connection returns and duplicates are flagged.
Can you rebuild our ticketing platform without a big-bang migration?
Yes. On Paint Nite, sync services kept the new platform and the legacy system aligned so features moved across in slices, with no downtime for search schema changes.
Do you build event management software as well as ticketing?
Yes: registration forms, agendas, badges, sponsor packages, venue and host management, and organiser dashboards, either as part of a ticketing platform or as a separate tool.


