Switchback Labs
Prototype

Trailmark Events

The whole race on one platform: runner sign-up, event management, merch, packet pickup, race day and the runner app

A working prototype anyone can try. The organizations in it are made up.

Try the prototype prototype.trailmark.run · made-up data, no sign-up

The story

Everything race day needs, on one platform.

Putting on a trail race today means a registration site, a spreadsheet roster, a card reader at the merch table, clipboards at packet pickup, a group text for the aid stations and a separate page for results. Every one of them has its own login, and none of them talk to each other.

Trailmark Events is the idea that it can all be one platform: an all-in-one race-day solution, from the day entries open to the last runner in. Runners sign up and pay once. The organizer runs the event, the merch table and packet pickup from the same roster. On race day the same data drives the safety desk, the results and the app the runner, their crew and the people at home are watching.

Trailmark is one idea in two halves, two sides of the same coin. Trailmark race day is the runner-facing half, live today, and the one I'm focused on. Events is how it all ties together, from the founders and organizers who run the race to the coaches and the athletes out on course. For now they live in separate repositories.

It's a working prototype, and you can click through it: every screen below runs on made-up data, with no account to make.

The vision

From sign-up to the finish line.

The same platform, stop by stop through one race. Each one has a screen in the prototype you can open and use.

  1. Runners

    Sign-up and lotteries

    Runners find a race, read the course and aid stations, and register in one checkout: waiver, shirt size, a donation, their crew and pacer, and a saved card. Oversubscribed races run a fair, reproducible lottery that flows straight into registration.

    Try it in the prototype : Sign-up and lotteries
  2. Organizers

    Event management

    Set up an event's year, its distances, prices and cutoffs, and duplicate it to next year in one step. Keep the roster with refunds and coupons inline, staff the aid stations with volunteers, and send announcements with a delivery log.

    Try it in the prototype : Event management
  3. Organizers

    Merch and point of sale

    A shop with inventory, and an iPad point of sale for the merch table at the venue, ringing up against the same runners and the same checkout as registration.

    Try it in the prototype : Merch and point of sale
  4. Race weekend

    Packet pickup

    Volunteers check runners in from the roster, or runners check themselves in at an iPad kiosk by scanning a QR code or typing their bib on a big keypad.

    Try it in the prototype : Packet pickup
  5. Race day

    Race operations and results

    Aid stations log arrivals as runners come through, feeding a live race-day board and a safety desk that tracks incidents, drops and overdue runners. When it's over, the same splits become results, leaderboards and course records.

    Try it in the prototype : Race operations and results
  6. Runners, crews, spectators

    The runner app

    One app for race day. Runners see their plan and splits, crews see when to be where and post updates even with no signal, and spectators follow along from a link, get a push when their runner comes through and send cheers. Trailmark race day is its first version, live today.

    Try it in the prototype : The runner app

The hard parts

What it's built to handle.

  1. Many organizers, nothing shared by accident

    It's multi-tenant from the ground up. Every organizer's data carries its organization, and custom lint rules refuse a query that doesn't scope by it, so isolation is checked before the code ever runs.

  2. One account, every hat

    A runner, a volunteer, a race director and a platform owner are all the same kind of account, so one person can race one event, volunteer at another and run a third, and volunteer credits pay for an entry or a shirt.

  3. Live by default

    Pages update as things change, with no reload. Each live connection is checked against the viewer's permissions when it opens, so an update never reaches the wrong organizer.

  4. Four languages

    The prototype's screens switch between English, Spanish, French and German.

  5. One checkout for everything

    Race entries, lottery entries, merch and add-ons are all products in the same orders, so refunds, coupons and credits work the same way everywhere.

  6. Decisions written down

    Eighteen architecture decision records say why it's built the way it is, so anyone picking it up, me included, doesn't have to guess.

Where it stands

A prototype, and I'll say so.

It runs, on demo data, and it's not something to sign up for yet. The organizations in it, Switchback Running and its Switchback 100, are made up, and so is everyone on their rosters.

Some stops are further along than others. Sign-up, event management, packet pickup and the race-day desk are the first phase. The shop and point of sale, and the native runner app for iPhone and Android, are later phases, shown in the prototype as screens you can try.

Open the prototype at prototype.trailmark.run and take the guided tour through one race season, or switch who you're viewing as, from race director to runner.

Screenshots Demo data

How it looks.

  • The organizer's roster for a demo 100-mile event: a status chart and a table of entrants with bib, hometown, status, crew and pacer flags, and refund and coupon actions
    The organizer's roster
  • The race-day safety desk: open incidents, overdue runners, DNFs and runners on course, an incident map, and an overdue sweep with call and text buttons
    The race-day safety desk
  • The self-serve packet-pickup kiosk for an iPad: a welcome message, a QR scan area and a large bib-number keypad
    Self-serve packet pickup on an iPad
  • Event-year setup for a demo race: dates, entry mode, branding and a "Duplicate to next year" button
    Setting up an event's year

More apps

More things I've built.

Live trailmark.run

Trailmark race day

The race-day half of Trailmark: a free page for each Javelina Jundred runner, for family, friends and crew.

Active

MOM3NT

Runs a gym's eight-week performance challenge, with live leaderboards, coach tablets and a wall TV.