This month I'm building an app, and I don't know how to code. Join me.
Vibe coding my own personal language tutor
I dropped German in high school as soon as they’d let me. In the Netherlands, German is mandatory to learn for a couple of years. So are English and French. After the compulsory years, I chose French over German because I had no intention of ever having anything to do with that country (I think the humourless teacher soured me on it). Fast forward 20 years, and I’m moving to Berlin, and 8 years later, I’m still here. Oops.
I’ve managed okay so far. I understand practically everything, and if necessary, I can make myself understood. After all, Dutch and German are about 75% the same, so you can get by quite well with Dutch if you fake a German accent. However, I use the language embarrassingly little and don’t have any friendships in which I use it as the primary language for conversation—the time had come for a change.
I currently have a 250-day streak on Duolingo and am enrolled in a 5-month German course, which includes 4 hours of class per day. These are somewhat awkward because many of the grammatical concepts in German are identical to those in Dutch, and the vocabulary is 80% the same. Compared to my counterparts from Afghanistan, the Caucasus, Ukraine, South Asia, the Balkans, and Latin America, I’m there to address just a few specific pain points. And get tons and tons of practice.
Unfortunately, since the class is quite large, my specific pain points don’t receive as much attention as I’d like them to. Duolingo is also all over the place for all kinds of different learners with different levels, so only 10% of my time spent on there actually provides a challenge. It’s time to create my own private tutor to help me improve my major weaknesses.
The big question is…
Can I build my own language-learning app without knowing how to code?
Yes. Probably. I mean, maybe? Let’s give it a good shot and make it my challenge for the month of June. You’re invited to join in and build an app of your own. Stay tuned for instructions.
I have a slight edge. I am somewhat familiar with programming, and I can get a rough picture of what’s going on by looking at code. I can’t write from scratch. I would likely struggle a lot with debugging. As a product manager, I’ve worked closely with developers and designers for most of my career. I know how to build apps with them, but can I do it on my own?
Growing up, I created simple programs using Visual Basic, ranging from games to puzzles to apps that would trick friends and family. I made interactive storybuilders with PHP and JavaScript. I even made some stuff with Flash. Then I took a long break—except for editing WordPress themes for my blogs—and eventually attempted to build a small Google Chrome extension using ChatGPT as a guide.
The extension didn’t work as I had intended, because I wasn’t aware of the complexity of the process of building and rendering websites in your browser. I learnt a LOT in the process, going back and forth with my coding companion and reaching out to programmer friends when I felt really stuck. It didn’t really matter that the extension didn’t consistently work as intended; it was meant as a joke among web3 friends. A perfect example of “small culture”—the phenomenon whereby more powerful creator tools enable us to produce increasingly specific media with greater complexity—I wrote about last week.
In building an app together with AI, I had stumbled upon a nascent trend: vibe coding.
Hold up—what is vibe coding?
I would not be surprised if the phrase ends up being nominated for the Oxford dictionary’s word of the year, following ‘brain rot’. Though ‘AI slop’ is a more likely contender. The phrase ‘vibe coding’ was coined by Andrej Karpathy, one of the OpenAI founders, in February:
“There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good.”
Since then, it has basically come to mean collaborating with AI to build your own apps. So, for the month of June, that’s what I’m going to be exploring.
What I’m going to be building
Apps have trended towards personalisation, a trend that will continue. I see a lot of potential for custom, personalised apps for education, as AI makes it incredibly easy to learn about the user and then customise the experience. Therefore, I think Duolingo’s AI-pivot makes sense, the delivery of which notwithstanding.
Let’s break down my own plan.
Problem to solve
The app should help me train specifically on my weak points in German, such as the inflexion of pronouns and adjectives.
Who is it for
I want to build this for myself. At least the initial version.
Use cases
I want to be able to practice on my laptop when I have a half-hour to spare. The amount of time can be flexible, so I should be able to practice for 2 minutes, 60 minutes, or anywhere in between. I don’t expect longer or shorter sessions. I envision myself using this app practically every day.
I’ve considered being able to practice on the go, but it’s not a must-have. It’s easier to see if I can get something running on my desktop, so I’ll skip mobile for now.
Ideas
I had an idea for a Google Chrome extension that would let you extract text from German-language websites and omit the endings of relevant words, requiring me to fill out all the cases. That would be cool, because I read the news in German every day anyway. However, based on my experiences from the last Chrome extension I built, I anticipate numerous challenges with debugging, interpreting the text, etc., so I’ll go with something simpler instead.
Simplified: an app that generates sentences with certain pronouns and word endings removed—I then have to fill in the endings and check if I did it correctly.
From what I understand, this will have multiple components:
The actual content
A database in which to host the content
Some mechanism that can generate sentences and verify whether my answers are correct
A user interface where I can input my answers and request new random sentences
Ideas for stretch goals:
Make it so it runs on my mobile phone
Set it up online, so other people can access it too
Make it possible to swap in other languages
Create a voice mode, so I don’t have to type all the words and can practice speaking
Extend the range of exercises
Gamification elements, to make it more fun to practice
Next steps
The first thing I’d normally do is to see if anyone has already built something like this, but in this case, I don’t care, as I want to be able to customise it later on, plus I like the challenge.
Identifying the proper AI tooling: I’m not entirely sure about the capabilities of different LLMs (Claude, ChatGPT, Gemini, etc.) in helping me with this, so I’ll need to figure that out first.
Finding structure: I’ll lay out the above plan to the LLM and see if it has suggestions, identifies any holes, and how it would structure the steps.
Pre-build testing: First, I want to test whether I can generate content and establish a basic method for rendering sentences, so I can assess the quality. If that part doesn’t work, the rest doesn’t matter.
It’s possible it will all fail in the end, but I’ll have learned a great deal along the way.
How to join the challenge
I’m forming a little study group on Signal, so if you’re also interested in vibe coding, you can join below.
Identify a problem to solve.
Identify your audience. Ideally, it’s you, so you build the app for yourself. Otherwise, define your audience carefully and consider how you will test your app with them.
Imagine some use cases of how you would like to use an app to solve that problem.
Then create some more holistic ideas of what the app would be like to use.
You can collaborate with AI to brainstorm some of these steps, as not all of these might be easy if you don’t have experience with software development. And honestly, keep it simple. Try to do one specific thing. If that works, expand. But your primary goal is to get yourself to the other side. Build a pedestrian bridge. If it works, expand to cars.
“If you’re forced to abandon your bridge halfway through, it better be a 2-lane bridge with traffic, rather than a 4-lane bridge that doesn’t make it to the other side.”
And last, but not least, come join the vibe coding Signal group and share your idea.
Let’s build and learn together.
(- ‿- ) For your ears
I’ve been exploring Lucrecia Dalt’s music recently. I love how well-textured it is, which gives it an organic, yet slightly glitchy, electronic feel. Her new album will come out in September, and you can already explore two tracks from it on Bandcamp.
(◕‿◕✿) For your eyes
I’ve been following the pixel-heavy work of computer scientist Guandanarian for years now. Worlds collided when he ended up doing tour visuals for Porter Robinson’s Goodbye To A World, a song I hold dearly and have written about before. I highly recommend taking a scroll through his website or Instagram.




