projects experiments

Why I Built event67, a Conference App That Only Bills for People Who Show Up

The story behind event67: a branded conference companion for iOS, Android and the web, an organizer console, and a pricing meter that counts attendees who actually open the app.

·8 min read
Share:

It is 7:40 on the first morning of a two day summit. The organizer is standing at the registration desk with a coffee going cold, watching the arrivals counter tick upward against the guest list. A keynote speaker moved rooms overnight. Three hundred people already have the change on their schedules, because it was pushed from the console at 11 the night before and every phone in the hotel updated before anyone woke up.

By 9:15 the keynote is running. Questions arrive with upvotes, so the moderator on stage can see which one the room actually wants answered. A poll goes out mid talk and the results land on the projector in seconds. Somewhere in row twelve, two strangers scan each other's QR codes and become a connection that will outlast the conference.

Nobody downloaded an app called event67. They downloaded the summit's own app, in its colors, with its logo on the icon.

That morning is the product. Everything else is how we got there.

It Started at a Mentorship Table

Regular readers will recognize the lineage. Earlier this year I wrote about rethinking mentorship events, and the argument was that the composition of a table is the product of an event, not the logistics around it. Meet Your Mentor put a mix of thinking styles at every table and rotated them on a timer. Fair Hands Up gave every voice in a Rotman classroom a fair turn. Both were small and deliberately narrow.

They also taught me something I had not expected. The room responds to shared context. A screen showing the round timer and the table map changed how people behaved more than any instruction from the front. Give a crowd one honest source of truth and the crowd runs itself.

event67 is that idea scaled from a table of six to a ballroom of a thousand.

The Problem I Kept Seeing

Having built event tooling from the ground up, I started paying attention to how the established conference apps are sold. The pattern was hard to unsee. Organizers sign for a seat count months in advance, attendees download a generic app that looks nothing like the event they registered for, and roughly half of the guest list never opens it.

The pricing model is the tell. When a vendor charges per registered attendee, the vendor has been paid whether or not the app is any good. Diagnose before prescribing, as I like to say. The diagnosis here is that the incentive points at the contract, not at the attendee.

I wanted to build the opposite. A conference companion good enough that people open it, and a meter honest enough that the organizer only pays when they do.

What event67 Is

event67 is a branded conference companion app for iOS, Android and the web, paired with an organizer console, billed per attendee who actually turns up.

The attendee side holds everything a person needs during the event. A live schedule grouped day by day, with tracks, rooms and speaker bios. My Picks, so starred sessions rise to the top of your own agenda. Workshop RSVPs with capacity enforced on the server and automatic waitlist promotion. An attendee directory you can search by name or company. Networking by QR scan. Live questions, polls and reactions during sessions. A shared photo album with a full screen viewer. Sponsor pages ordered by tier. Push notifications that deep link to the exact announcement or thread.

On iOS it goes further. The event badge sits in Apple Wallet. A Live Activity keeps your current session on the Lock Screen. A Home Screen widget puts the badge one tap from the door. Siri shortcuts answer "what is my next session" and "am I checked in" out loud, without opening the app.

The organizer side is a console that runs all of it. Events, sessions, speakers and sponsors. Bulk invites imported from CSV with delivery tracked per recipient. Door check in by QR scan, with a live arrivals count. Approvals for photos and questions before they reach the room. Announcements published now or scheduled for later. Engagement analytics that update while the event is running. Team chat, email campaigns, forms, tracked links, and an end of event report that archives every question, poll and photo.

Your Conference, Polished

That is the positioning line, and it is a promise about focus rather than breadth.

Every event carries its own identity. The organizer's logo, colors and typography flow through every screen, and the app ships to the App Store and Google Play under the organizer's own name. Every color pair in the theme is checked against WCAG AA and the result is shown before the organizer saves, so a beautiful brand never becomes an unreadable one.

Polished also means saying no. event67 does not sell tickets, print badges, stream video, run a call for papers, track continuing education credits or gamify attendance with leaderboards. It does not do AI matchmaking either, and that one was a choice I felt strongly about. I have said before that AI is a lens rather than a magic wand. Pairing two strangers by algorithm sounds clever in a demo and feels hollow in a hallway. A QR scan between two people who chose to talk is the better product.

That entire list of exclusions is published on the website, it is the same list our marketing copy is checked against, and nothing on it is coming soon.

A Meter That Counts People, Not Promises

Here is the whole pricing model in one sentence. Activated means the person claimed their invite and opened the app. Not when you import them, not when the invite is delivered, and not if they register and stay home.

The first 50 activated attendees at every event are free. After that, each activated attendee costs five US dollars, and the price stops moving at one thousand attendees. The most an organizer can ever pay for one event is $4,750, and every attendee beyond a thousand costs nothing. Invites are unlimited and never the meter.

Two decisions sit underneath that sentence. Every price on the public site is generated from the same pricing code the product bills from, so the website cannot drift from the meter. And local prices in Canadian dollars, euros, pounds and Australian dollars are the prices we actually bill in those currencies, not a conversion of the US price.

Built Like an Enterprise System, Because It Is One

I spend my working life on aviation systems that must hold up through irregular operations, when weather grounds a fleet and every channel lights up at once. A conference is the same shape of problem in miniature. Two days of peak load, one chance to get it right, and a room full of people who will notice immediately if it does not.

So event67 is built the way I build for an airline. The platform is one monorepo. The API is Fastify and TypeScript on Google Cloud Run, with PostgreSQL on Neon behind Kysely and versioned migrations that run before any new image goes live. Firebase carries authentication, Firestore, Storage, push notifications and hosting. The attendee app is Flutter for iOS and Android, with a React web event site for people who prefer a browser. The organizer console is React, the public site is Astro, Stripe handles billing, and OpenTelemetry threads a trace through every request.

It is multitenant from the first commit, with four staff levels from platform staff down to per event moderators. Architecture decisions live in dated records inside the repository. There is a versioned partner API with a generated OpenAPI spec, and a test that fails the build if the spec changes without a changelog entry. Integrators learn about changes from a document, never from a surprise.

Cloud native from day one, not migrated there later. Transformation rather than migration is a principle I have argued for in enterprise work, and this was a chance to apply it with no legacy to carry.

What I Learned

Honesty compounds. A feature page that says what the product will not do loses a few demos and wins the ones that matter, because nobody spends an afternoon discovering the gap themselves.

The meter shapes the product. When you are only paid for attendees who open the app, every design review asks the same question: will this make someone open the app tomorrow? That question has killed more roadmap items than any budget. Ship, measure, evolve, with the measurement wired into the invoice.

Small teams ship faster when the person who builds the feature is also the person who answers support at three in the afternoon on day two. It is hard to overstate a capability to a stranger when you know you will be on the call.

Where It Stands

event67 is live. The attendee app is published on both stores under an organizer's own brand, the console is serving real events, and the pricing page shows the same numbers the billing code produces. The full case study sits alongside Meet Your Mentor and Fair Hands Up in my projects, which feels right, because it is the same conviction at a larger scale: design the room, and the conversations take care of themselves.

If you are organizing a gathering of thirty people or three thousand, you can start free at event67.com and pay only when your attendees show up.

Your conference, polished.

event67conference appevent designevent technologynetworkingattendee engagementproduct designentrepreneurshipRotmancloud architectureFlutterFirebaseGoogle Cloudusage based pricingToronto
Share: