My Recent Experience with "Vibe Coding"
Built a newsletter translation tool; I think everyone should try this stuff.
Welcome to Young Money! If you’re new here, you can join the tens of thousands of subscribers receiving my essays each week by adding your email below.
For a brief moment in 2020, 23-year-old Jack wanted to take advantage of his work-from-home-induced free-time by upskilling in a few spaces that he thought would be valuable.
The first of such spaces was “coding.”
This wasn’t the first time I thought about learning to code. 19-year-old me had briefly considered picking up computer science as a second major in college, until I realized that I would have infinitely more fun struggling through speaking Spanish with Latinas than struggling through speaking python with my computer, so I opted for a Spanish double major instead.
(I don’t know if you’ve visited Sevilla, Spain, before, but I promise that studying abroad in Andalusia is a much better use of one’s time than studying domestically in a computer lab).
That being said, I still felt like the whole coding thing would be useful to know. So, in May 2020, with nothing better to do, I downloaded an introduction to python course on Udemy. Three hours later, I would have preferred a live python slowly choking the life out of me than continuing that course. “Learning to code,” it turns out, sucks.
Why?
Because I didn’t care about “learning to code.” I just wanted the ability to build useful tools for fun as I saw fit. But to build those tools, I had to first “learn the basics.” And learning the basics of coding sucks.
Beginner coding courses are abstract. They teach you logic and loops and simple commands, and it’s a mind-numbingly boring experience. Your computer terminal’s UX is straight out of 1988, and before you can build anything fun or novel, you have to memorize a series of conditional statements and other programming “training wheels” that happen to be the polar opposite of “fun.” So, I made it through three hours of that course and never touched it again. And I was totally fine never “learning to code” after that experience.
Then ChatGPT happened.
The funny thing about these AI tools is that, while, yes, you can certainly use them as a sycophantic thought partner that reassures you that your most schizophrenic impulses are totally rational (the broader societal impact of this will certainly be fun to watch), AI tools also happen to be quite good at 1) producing moderately detailed code, and 2) telling you exactly where and how to implement that code, if you ask nicely.
I’m not ignorant enough to think that CoDiNg Is DeAd; in fact, I think expert software engineers have more leverage now than ever before. But for your average person of average intellect, who, like me, wants to build fun, simple software tools, you no longer have to “learn to code” to do that. In fact, you just need three things:
The ability to ask good questions.
The ability to follow directions.
The ability to iterate on those questions as you approach roadblocks.
Asking good questions seems obvious, but it’s not. If your goal is, “learning to code,” you’ll never learn anything, because that’s too abstract. That’s like saying, “learn to play football.” I played football in college, which means, compared to the general population of the world, I’m probably in the 99.9 percentile of football knowledge. I couldn’t tell you “how to play football.” There’s a near-infinite number of ways that one can “play football.” You have to get more specific.
“How do you play defense?”
“How do you play defensive end?”
“How do you rush the passer from defensive end on a third down?”
“How do you react to the offensive lineman as you’re rushing the passer on third down?”
If you give me a more specific question, I can work toward an answer.
Instead of asking, “How do I code?” you need to ask how to achieve a specific outcome, and work backward to figure out what code you need to make that outcome a reality. Pre-ChatGPT, you still would have had to learn the basics to have the necessary skillset to build toward that solution, but now, AI can give you all of the code you need, as well as the steps needed to implement it.
You just need to provide your AI overlord with an outcome to build toward.
I mentioned earlier that I studied Spanish. Now that I’m done with my book and actually have breathing room for hobbies, I’ve started practicing Spanish again. It’s a hubris thing: too many of my Latino friends speak English, so I should probably know their language too. Plus, when they get married, I can riff with their parents in their native tongue. That’s fun.
I had previously subscribed to a lot of Latin American newsletters, thinking that a multi-modal approach to practicing Spanish (speaking online with Andrea from Colombia, reading newsletters, listening to podcasts) would better immerse me in the language. The issue was that I couldn’t care less about the Colombian economy. I do, however, care a lot about the US economy, as well as a lot of other wide-ranging topics discussed in the English-based newsletters I’m subscribed to. Imagine if I could have those newsletters and blogs translated to Spanish with the push of a button? Well, that would be quite useful.
And there was my inspiration for a coding side project.
So, I went to Claude (I think it’s nicer than ChatGPT), and told it: “I bought the domain ‘translatemynewsletters.com,’ and I want the ability to forward any newsletter, blog, or other email to an email address at that domain, and have it re-send me a text-only translation of that blog.”
A few seconds later, I was given a list of instructions to make this wish a reality. I needed to setup an account on ImprovMX for email forwarding, Github for writing and hosting the code itself, and Vercel for actually deploying the code online. Believe it or not, I already had a Github account. But I’d never used Vercel in my life, and I had never heard of ImprovMX.
So I set up all three.
Then, Claude gave me a step-by-step walkthrough on how to add the appropriate files to my Github codebase, how to generate and save API keys from Anthropic (I wanted to use Claude’s LLMs as my translation tool) and Google, how to add those API keys to my Vercel account so they wouldn’t be exposed in the code base itself, and how to link ImprovMX’s email forwarding to my Vercel site where my translation tool “lived.”
Claude generated every piece of code I needed upon request, and when there were errors with the code, I could paste the error messages, and Claude would provide me with a series of possible solutions. While the whole process sounds easy, it was, at the time, quite tedious. A few issues that I ran into:
My DNS settings wouldn’t work correctly, so I had to keep jumping between Google and ImprovMX and SquareSpace to diagnose the problem. I also had no idea what most of the technical jargon I encountered, including “DNS,” even meant. So I had to ask Claude about all of those terms.
I repeatedly ran into errors where Claude didn’t have access to my newsletters email. Some of those errors were rooted in faulty code, others stemmed from user error on my end like forgetting to remove a space from a password.
Emails that I wrote myself could be translated, but the “forwarded” emails to the new forwarding address I had set up continued to glitch.
I had to redeploy my code on Vercel every time I updated it on Github, and there were no less than 25 instances in which an update caused my translation site to stop functioning properly, at which point I would have to diagnose the error message, adjust the codebase (again), and redeploy.
A few screenshots from my conversation with Claude during this project:
“Vibe coding,” it turns out, was less “writing code,” and more following a series of instructions, and then asking more questions when those instructions led to a roadblock, and repeating that process over and over.
But eventually, it worked. For ~$0.03, I can now forward any email to a translation email alias I set up, and it sends back that email in Spanish. See below for Matt Levine’s ‘Money Stuff.’ Or, I guess, ‘Cosas de Dinero.”
This thing sucked to build, but, now that it works, I’m pretty proud of it. And, more importantly, it’s useful, and I learned a lot in the process.
I think most “non-technical” people like myself find the idea of “coding” or “programming” to be intimidating. I certainly found it intimidating. Having failed to learn how to code when I was in college, I had told myself that it simply wasn’t for me, I wouldn’t get around to it, and it would just be a skillset that I would always lack. But “coding” is really just telling your computer to generate a specific output, and the barrier to at least experimenting with all of this stuff now is simply a couple of hours of free-time, a bit of curiosity, and the ability to ask a few good questions and follow directions.
And you learn so much more by doing the thing than simply reading about the thing.
I now have at least a novice understanding of how Vercel works, how web hooks work, how API calls work, and where the “prompt” that actually translates my emails to Spanish fits in my code base. It would only take me ~5 minutes to build this same tool to translate newsletters to French. Or Mandarin. Or Hebrew. Or Italian. The reason is that, by virtue of “doing the work,” I have a more thorough understanding of the logic underpinning the work.
And an underrated benefit of an exercise like this: it instilled confidence. Building any sort of “software,” even something as simple as a newsletter translation tool, makes “technical” things so much less intimidating.
One of the lies that we tell ourselves, especially as we grow further and further removed from college, is that we’re a particular type of person that does a particular type of thing, and, more importantly, who doesn’t do other particular types of things.
“I’m not a marketer.”
“I’m not a writer.”
“I’m not a coder.”
“I’m not a finance guy.”
I think we tell ourselves these statements out of a sense of self-preservation. Trying to learn something new is awkward and embarrassing and incredibly frustrating, so it’s easier to just say, “That’s not for me.”
But the barrier to learn how to do new things, especially things in the digital world, has never been lower, and these AI tools are only going to get better, and better, and better. Stop lying to yourself: you absolutely can, and should, play around with your different interests. I can’t think of a higher leverage use of one’s free-time in 2025. “Knowledge” has never been more freely available.
I’ve long-been a self-proclaimed finance guy / writer, but I don’t want to put myself in a box. We’ve been given this (somewhat) all-knowing skill-acquisition tool with a chat interface, might as well use it to learn how to do a new thing or two, right?
- Jack
I appreciate reader feedback, so if you enjoyed today’s piece, let me know with a like or comment at the bottom of this page!
I can relate to this. I passed my coding course,because of gpt and deepseek. I probably didn’t put the best effort forth, but it’s certainly not something that you can become a pro in, with a 4-week course. For me, it’s a subject that you have to completely re-wire your brain into enjoying. Educating yourself in various subjects are important and adds a few notches to your skills section of the resume. I’m also realizing there should also be one subject that you spend a better half of your time on, to become a pro at it, especially if you’re not in a creator or business field. Great read, though! Made me think about how i shouldn’t be falling asleep for most of the day, now that the python course is over.
Great read. Felt realistic as well. Makes me want to put some consistent hours into upskilling through the instruction of AI like I know I should be