ebaus

Cycling race operations

RaceDojo

A cycling-native operating system for promoters to manage registration data, participants, scoring, results, and race-day work in one place.

RaceDojo settings workspace with race operations, scoring, events, sponsors, and organization controls

One workspace for the settings, event data, scoring, and operational systems behind a race organization.

50+

races per year in the operator workflow shaping the product

As of July 2026

1

connected race-day system

The context

Close enough to understand the actual job.

Problem
Race operations are still stitched together from registration exports, spreadsheets, timing files, and repeated manual cleanup. The gaps get expensive when an operator runs dozens of events.
Users
Cycling race promoters, timers, officials, and event staff
My role
I am defining and building the product end to end, informed by Texas Cycling Stats and direct collaboration with a promoter who runs more than 50 races each year.

Product decisions

What I chose to make true.

  • Start with the operational handoffs where registration, participant data, scoring, and publishing break apart.
  • Model organizations and events as a multi-tenant system from the beginning.
  • Build the API and data model before promising a broad public platform.
  • Keep race-day workflows direct enough to use under real event pressure.

What shipped

The useful part, not the pitch.

  • Built the underlying organization, event, participant, scoring, and publishing systems.
  • Turned lessons from maintaining public race data into a product for the people creating that data.
  • Established a product foundation for hands-on testing with an experienced operator.

Technical depth

Built across the stack.

  • Next.js
  • TypeScript
  • FastAPI
  • PostgreSQL
  • Multi-tenant architecture
  • Race scoring
  • Data imports

Limited engagements

Need this level of care on your own product?

Tell me what is not working, who feels it, and what a useful outcome would change. I read every note myself.

Email Evan