Telling myself a story
The "helpers" are fast, but they're blind. I spent the day paying back a debt accumulated through the speed of vibe coding. Lo and behold, you eventually have to pay back debt with interest.
Here's what happened: I've got a Markdown output that my intended users pay for. The user pays €1, goes through a production process, and then receives a markdown resumé on the other end. Naturally, this output has some value. The user receives a tailored resumé and can start applying for jobs. However, if I want them to create several versions, I need to greatly reduce the friction of using my service. So, I found an open repo that can be used to style MD files. It's a simple styling. It's been used before. But for me it went boom, and the whole site broke.
Seems like I've built a house of cards that fell when I touched a single pillar. So I had to go back to the drawing board (literally), grab a piece of paper from the printer, a pen from my Dungeons & Dragons bag, and simply start writing what I want the logic to look like. Luckily, coding assistants in a project with no real users yet can quickly restructure a database for you.
After reworking the base logic of how my database stores the resumé, today's milestone is "The Theme Engine".
I've replaced long Markdown strings with structured objects, allowing the theme engine to treat data as a set of reusable atoms. This allows me to generate high-quality resumés for my users based on the theme they choose. want. Five themes are live: two free, three paid.
Yesterday, I launched the ability to pay for my product. Today, I faced the first couple of questions about how to upsell them. The initial resumé generation is a one-time fee; it is a low-barrier, but not a no-barrier, and I want to keep it. But my roadmap includes several services that require monthly recurring fees. The stylized themes are one of those things. We still need to determine how my product can provide value beyond just a prompt wrapper. If I can dream, and I can, I see it as a true job seeker's assistant. What that means, time will tell.
As for the current attempts to convert customers: I'm not an educated UX designer by any means, but I've worked in digital product growth for almost my entire career, so this is something I feel confident about: Ask for money when the user is happiest. So, I put the paywall where they receive their 'free tier' product, and then again at the final export, because if you want to get paid, you don't leave the back door unlocked. And I sure hope I get paid someday.
The most interesting part of the day
The main usage of my tool is a gap-identifying interview. When given an interview in which the user skipped every single question ... The AI refuses to generate. It turns quite sassy, telling users," Including claims based on these non-answers would mean inventing experience, which this system is explicitly prohibited from doing." While this does mirror my own tonality at work, it is correct behavior. It is also quite rude in its bluntness.
So, while I found it extremely humorous, I instead chose to add a full stop, no generation of the expected output at all, and the user sees: The interview questions are there for a reason. And because they paid for something that did not work through no fault of theirs, they get the credit back automatically.
I am, quietly, proud of this. I want this to be a paid software that is upfront about its limits and tells users when they are using it incorrectly. Experience has taught me that honesty is a fantastic UX principle, and stripped away the appeal of shortcuts. It costs almost nothing to be direct with the user, and it might be the only way to ensure this project has a foundation worth standing on.
Daily worries Which brings me to the longer thought of the day, the one that actually mattered.
I spent lunch browsing the competition. It was sobering, not because the competition is particularly good, but because you can find a dozen versions of my career tool on the first page of Google, but most feel like abandoned experiments. They are functional but hollow, built because it was easy, not because it was necessary or even interesting for the builders.
The barrier to entry has vanished, which means "just shipping" is now a commodity. But most of what is being shipped is weak, brittle, born from a prompt and left to rot the moment it hits a real-world edge case.
Sustainability in this era isn't about the initial "build," but the willingness to stay with the problem as the user hits the third, fourth, and fifth hurdle. The craft has shifted: it's now about the manual, unglamorous labor of stabilizing a flow of solutions.
Daily lessons What I'm partaking in is essentially factory farming. We're all creating products en masse, with diminishing attention to problem-solving and an increase in solution-providing. This means that we're blazing down the highway towards a future where the internet is becoming overcrowded with unfinished items that won't be maintained. I worry that the end station is Dead Internet.
The other side of the commodity coin is that the tools' speed actually enables a new kind of persistence. Since the "build" is fast, we can afford to follow the user through the fallout. We provide value by staying in the loop after the initial excitement evaporates. It's a game of hyperfixation: staying at the board to catch the next domino, and the one after that, long after everyone else has stopped opening the file.
I've started projects that ended in a silent exit. This log is my attempt to build a different habit. It isn't for documenting success, as I don't really have anything to show; rather, it's a tool for venting and vying with my own tendency to walk away. By naming what I build and why, I hope to truly anchor it in my mind and make it harder to abandon.
Today: seven things shipped, three bugs fixed, one existential reckoning. Not bad for a quiet day.