Sfeerbeeld van het team van vijf roeiers van ERV Beatrix
The projectHet project

Five women, one rowing app Vijf vrouwen, één roei-app

Team memberTeamlid

Five members of ERV Beatrix in Eindhoven, building our own rowing instruction app. None of us has a coding background. We do have a clear need, a lot of curiosity, and a coding agent willing to do the heavy lifting. Vijf leden van ERV Beatrix in Eindhoven bouwen samen onze eigen roei-instructie app. Geen van ons heeft een codeer-achtergrond. Wel een duidelijke behoefte, veel nieuwsgierigheid, en een coding agent die het zware werk doet.

Why this app Waarom deze app

At ERV Beatrix, rowing instruction lives in PDFs, Excel sheets, printed competency lists, WhatsApp groups, and in the heads of the instructors. Hard to maintain. And for everyone involved, something snags: Bij ERV Beatrix leeft de roei-instructie in pdf's, Excel-lijsten, afgedrukte competentielijsten, WhatsApp-groepen en in de hoofden van instructeurs. Moeilijk te onderhouden. En voor iedereen knelt er wat:

We want one place: a planner, the lessons, the information, the competencies, and a personal notebook. Accessible on the phone at the boathouse, not only on a laptop at home. Wij willen één plek: de planning, de lessen, de informatie, de competenties en een persoonlijk notitieblok. Op de telefoon bij de botenloods, niet alleen op de laptop thuis.

The team Het team

Each of us picks up a piece of the app. The same codebase, different focus, same coding agent to help us. Ieder van ons pakt een deel van de app. Dezelfde codebase, een eigen focus, dezelfde coding agent als hulp.

👩‍💻
Project leadProjectleider
Wanda

Architecture, coordination, and the lessons themselves: structure and content.Architectuur, coördinatie en de lessen zelf: opbouw en inhoud.

🚣
CompetenciesCompetenties
Nel

The competency list: what a rower learns, how progression is tracked.De competentielijst: wat een roeier leert en hoe voortgang wordt vastgelegd.

🚣
PlanningPlanning
Mariëlle

The schedule: who rows when, with whom, and in which boat.Het rooster: wie roeit wanneer, met wie, in welke boot.

🚣
Information & storytellingInformatie & storytelling
Karin

The information pages and the voice: how the app talks to its members.De informatiepagina's en de toon: hoe de app leden aanspreekt.

🚣
Skiff instructionSkiff-instructie
Marie-José

The skiff module: admission, lesson content, and the path from beginner to solo rower.De skiff-module: toelating, lesinhoud en het pad van beginner naar solo roeien.

How we work Hoe we werken

We use vibe coding. You describe, in plain language, what you want the app to do. A coding agent (Claude Code) translates that into working code. We check, adjust, and move on. We gebruiken vibe coding. Je beschrijft in gewone taal wat je wilt dat de app doet. Een coding agent (Claude Code) vertaalt dat in werkende code. Wij controleren, sturen bij, gaan door.

The stack is the same as in the masterclass: a complete set of tools, each with a clear role. De stack is dezelfde als in de masterclass: een complete set aan tools, elk met een heldere rol.

Claude Code
Our coding partner. Writes, edits and runs the code based on what we ask.Onze coding-partner. Schrijft, past aan en draait de code op basis van wat wij vragen.
GitHub
Our shared recipe book. Every change is saved, nothing is ever lost.Ons gedeelde receptenboek. Elke wijziging wordt bewaard, er gaat nooit iets verloren.
Vercel
Our host. Puts the app on a real URL, updated automatically with every save.Onze host. Zet de app op een echte URL, automatisch bijgewerkt bij elke opslag.
Supabase
Our database. Members, schedules, competencies, notes — all the things the app remembers.Onze database. Leden, planningen, competenties, notities: alles wat de app moet onthouden.

Learning by doing Leren door te doen

For most of us this is a first encounter with Git branches, merges, environment variables, deploys. We learn in the open: someone gets stuck, we look at it together, we unblock each other. Mistakes are part of the process, not something to hide. Voor de meesten van ons is dit een eerste kennismaking met Git-branches, merges, environment-variables en deploys. We leren in het openbaar: iemand loopt vast, we kijken samen, we helpen elkaar weer verder. Fouten maken hoort erbij, daar verstoppen we ons niet voor.

The coding agent does the typing. We do the thinking: what should this do, for whom, and how does it fit with the rest? De coding agent doet het typen. Wij doen het denkwerk: wat moet dit doen, voor wie, en hoe past het bij de rest?

Five steps before we wrote code Vijf stappen voor we gingen coderen

We mapped out the app before touching real code. Five steps that gave us a shared picture and a clean brief for the coding agent. We hebben de app eerst in beeld gebracht voor we echt begonnen te bouwen. Vijf stappen die ons een gedeeld beeld gaven en een schone briefing voor de coding agent.

Step 01Stap 01
User storiesUser stories

What the app should do, written from the perspective of rowers, instructors and the committee. Wat de app moet kunnen, geschreven vanuit het perspectief van roeiers, instructeurs en de commissie.

Step 02Stap 02
Data modelDatamodel

Which data we store, and how the pieces connect. Welke gegevens we opslaan, en hoe ze samenhangen.

Step 03Stap 03
PrototypePrototype

A clickable version of every screen, switchable between rower, instructor and committee member, so we could feel what the app should be before building it. Een klikbare versie van alle schermen, schakelbaar tussen roeier, instructeur en commissielid, zodat we konden voelen hoe de app moest worden voor we hem bouwden.

Step 04Stap 04
Design refinementDesign-optimalisatie

Walking through the prototype together: where it wasn't intuitive yet, where it snagged, what to sharpen. Samen door het prototype lopen: waar het nog niet intuïtief was, waar het wrong, wat scherper kon.

Step 05Stap 05
Detailed brief for the coding agentUitgebreide instructies voor de coding agent

A CLAUDE.md with the ground rules: safety, bilingual content, how we branch and merge. Claude Code reads it automatically at the start of every session. Een CLAUDE.md met de spelregels: veiligheid, tweetalige inhoud, hoe we met branches en merges werken. Claude Code leest die automatisch bij elke sessie.

The bug catches on De koorts slaat over

Our vibecoding bug has caught on with Jeroen, the maker of roei.app. He has started building a diagnostic tool that can plug into both his app and ours. Onze vibecoding-koorts is ondertussen ook aangeslagen bij Jeroen, de maker van roei.app. Hij is gestart met een diagnose-tool die zowel in zijn app als in de onze geïntegreerd kan worden.

What we're after Waar we naartoe werken

An app that members actually use. And five people who know how to build something they couldn't fully picture in advance. That second part matters as much as the first: once you've done it once, you can do it again, for anything. Een app die door leden echt wordt gebruikt. En vijf mensen die weten hoe je iets bouwt dat je vooraf niet volledig kunt tekenen. Dat tweede telt net zo zwaar als het eerste: als je het één keer hebt gedaan, kun je het opnieuw doen, voor iets anders.

Follow Wanda Kruijt, and keep an eye on the ERV Beatrix website for updates on rowing instruction. Volg Wanda Kruijt en kijk regelmatig op de website van ERV Beatrix voor updates over de roei-instructie.