DEV Community

Cover image for Hi, I'm Jonas — building a sports SaaS solo, in the open
Jonas
Jonas

Posted on

Hi, I'm Jonas — building a sports SaaS solo, in the open

Hi 👋 I'm Jonas.

CS bachelor, Entrepreneurship master. By day I'm at nono. On the side I'm building SportsFlow solo — and I'm going to write about every hard part of it out in the open. This is the intro.

What I'm building

SportsFlow replaces the thing every amateur handball coach still uses: a clipboard and a pen.

The idea is simple. Live-track every shot, assist and save during the game on a phone or tablet, and get real season analytics out the other end — shooting percentages, heatmaps, goalkeeper saves, momentum, lineup impact. Handball first, then volleyball, basketball, ice hockey.

I sat on enough benches to know the problem is real: the data is right there in the game, and it evaporates the second the whistle blows. Nobody should need a spreadsheet and a good memory to coach with numbers.

Why I write about both code and product

I build at the seam between engineering and product — that's the CS + Entrepreneurship combo. So I won't only post architecture. I'll also post the decisions about what's worth building at all: where I drew scope lines, what I deliberately didn't build, how billing shapes the data model.

The recurring theme in everything here is one idea:

Make the correct thing structural.

Idempotency in the schema, not the network. Tenancy in the procedure, not the query. Types from one zod definition, not two. Discipline the system enforces, not discipline you have to remember — because when you're solo, the stuff you have to remember eventually fails.

What you'll get if you follow along

Biweekly build-in-public deep-dives, including the honest costs and not just the wins:

  • Offline-first capture — sports halls have zero WiFi, so the whole tracking pipeline works offline and reconciles later without double-counting goals.
  • One analytics codebase, three runtimes — the same shooting-percentage code runs in the web app, the native app, and offline during live tracking, so the numbers can never disagree.
  • Shipping four apps solo from one monorepo — web, native, marketing, and docs, and the conventions that make that sane for one person.

The stack

If that's your filter: TypeScript (zod-first), TanStack Start, tRPC, Drizzle, better-auth, Turborepo, Expo.

Come say hi

If you're building in live sports, offline-first systems, or multi-tenant SaaS — or you're a solo dev shipping more than one person reasonably should — follow along, and please come argue with me in the comments. The build-in-public part only works if it's a conversation.

First deep-dive drops soon.

Top comments (0)