How vibe coding allowed my students to reshape my study app, making it theirs and not another teacher-forced tool.
I built my students a flawless spaced-repetition app. At least that was my perspective. Over nine hundred and fifty cards, every one written by me, each one tuned to what actually comes up in the exam. They thanked me. Then they ignored it.
That flop taught me more about student agency than any tool I've ever built, but only because of what one kid did next.
I'd been trying to make this happen for years.
I came to spaced repetition as a learner. I have been in Switzerland for thirteen years now and it is safe to say I am a far more conscientious teacher than I am a student. I have been through a few iTalki teachers, either they gave me the boot or I made up an excuse. I thought learning French was impossible until I met my current teacher who has us building useful daily conversations and then memorising them using Anki, the open-source spaced-repetition tool that medical students swear by. For the first time, things were sticking (providing I do my cards). Early acquisition, for me, is mostly repetition: a little every day, the same handful of words until they stop being foreign. That isn't a secret, it's Ebbinghaus's forgetting curve. Without reinforcement we lose most of what we learn within days.
So I tried to bring it to my biology classes. I gave it lesson time. I encouraged them with candy, I modeled, I nagged, I quoted former students who said, "we wish we had done our ANKI". And the same thing would happen every year. My strongest students built beautiful decks, and the kids struggling, the ones who'd actually benefit, never got past the barrier to entry. Building your own deck is real work before you've learned a single thing. The students who needed it most bounced off it. The students who used it were going to be fine anyway.
And the cost of that gap is bigger than it looks. In IB Biology you cannot have a conversation about cell respiration if "decarboxylation," "phosphorylation," and "redox reaction" are still foggy and you have to pause to explain them each time. The vocabulary is the price of entry to the actual thinking. I don't pretend rote recall is noble, but it's the hoop, and until they jump through it, we can't spend class time where it matters: application, and me hunting down their misconceptions.
So I built it myself.
I sat down with Claude and said, more or less, here's the idea, can we make it? We had a rough working version before my coffee went cold. I called it Cramly. The real work was the content: I curated over nine hundred and fifty cards by hand, the exact terms I know come up, the definitions and facts I think are worth memorising. The pedagogy was simple. Offload the recall to the app so that class time, the scarce and expensive bit, goes to the application and picking apart misconceptions.
It worked. Technically. I had a clean, fast, custom tool that did exactly what I'd designed it to do. I was impressed, my students were less so.
And it flopped.
My students said the right things ("this is great, thanks") and then behaved exactly as they do with every new piece of edtech you hand them: a polite nod, and nothing else. One or two used it. To everyone else it was another login, another interface, another thing on the plate. They felt no attachment to it, and why would they? I'd built it for them, which quietly told them it was mine. My intrinsic motivation wasn't infectious, it wasn't enough to make them care.
Then a kid asked me to change it.
One of my quieter students (a real user and not one of the usual high-flyers) came to me with a problem. Once he'd learned a card, the spaced-repetition algorithm did its job and hid it until it was due again. Sensible, normally. But with a test coming up he wanted to override that: to pull up every card on next week's topics and run through them all in one go. "Can you add a button," he asked, "that just lets me browse them, and another that lets me bulk review?"
So I opened Claude Code and updated it then and there. As if a ripple passed through the room, requests for changes and notifications of bugs started coming in waves from students.
That's when it became theirs.
Watching a feature he'd asked for appear in the thing he used did something none of my enthusiasm had managed. He'd shaped the tool. It had bent to him. And the other students noticed. The requests started, small ones mostly, and every one I addressed turned another skeptic into a co-author and user. And yes, the grades moved. Students sitting around a 3 or 4 climbed into the 6 to 7 range, the top of the IB curve.
This is the part the research has a name for. Self-determination theory (Deci and Ryan's work on intrinsic motivation) says we engage when three needs are met: autonomy, competence, and relatedness. I'd spent all my effort trying to hand them competence. What flipped the switch was autonomy: the discovery that the tool was theirs to change. It was a magical moment, a student who turns up genuinely motivated, who feels like a driver of their own learning rather than a passenger on my bus. The marks were a side effect of that. They usually are.
I'd spent all my effort trying to hand them competence. What flipped the switch was autonomy.
It wasn't a one-off.
Once I'd seen it, I started looking for it everywhere. Take Kahoot. Everyone loves Kahoot, except the same three kids win every round, and everyone else quietly checks out somewhere around question four. Same shape as the Anki problem: the tool engages the students who were already engaged. So I built my own version, Splycr, and I built it with my classes. I asked them straight: what mechanics do you actually like? What feels unfair? What would make this worth playing even if you knew you weren't going to win? How can I level the playing field?
The student I keep thinking about is the average one. Turns up every day, does the work, never gets recognised, the sidekick who never tops a leaderboard. For once, I wanted to give this student the satisfaction of winning whilst having a hand in designing it.
Teachers don't have to settle for second best any more.
That's the real headline. For years the deal with edtech was simple: take the tool that nearly fits, and bend your class around it. Square peg, round hole. Educators can now step up and create the tools they always wished existed. We have spent decades using substandard tools, one size fits all. Learners are a diverse bunch, and now a teacher can take a tool and shape it to individuals in their class. We know the problems our learners face, and now we have the ability to remove friction and create exceptional learning tools. But more than that, we are able to involve our learners in the process and unlock their intrinsic motivation through autonomy.
Vibe coding, to borrow Andrej Karpathy's phrase for it, changes the terms. A teacher can take an idea they've been carrying for years and build it. More to the point, they can build it with the people it's for. Because here's what fifteen years in the classroom keeps teaching me: what I'm certain will work for my students often isn't what works. They have a far better sense of how they learn than I used to give them credit for, and when they're allowed to take ownership of their learning, you get the engagement that every other intervention was chasing.
The agency was never in the app. It was in the invitation to change it. I spent years failing to get my strugglers to build their own decks. Then I built the tool for them, handed them the power to rebuild it, and the kid who'd never have made a deck redesigned the whole thing. The barrier I couldn't drag them over before, they walked straight through. Because this time the app was theirs.