AI Journal 2: Vibe-Coding for Fun and Profit
2026-06-22
I wrote earlier about how I started used agents for coding a bit later than everyone else who were into AI. I think I'm not the only of in my generation having a bit of a hard time coming to terms with the new reality of not actually writing much code myself. This journal entry is mostly just a dump of my thoughts on angentic coding and vibe-coding based on my experiences so far in 2026.
A Bit of Background
I started with OpenAI Codex back in February, and a few weeks later I moved on to Claude Code (just before Opus 4.7 was released). A home, I adopted pi to customize my own agentic environment for coding, using it mostly with gpt-5.5 and Deepseek V4 Pro (which came out a bit later), occasioanlly trying out other models on OpenRouter. I even bought a Geforce RTX 5060 Ti 16 GB to try local LLMs (and for some gaming) as well. Qwen 3.6 27b works pretty well locally, though with only 16 GB, it's still just a toy (context too small).
At work, I still review all the code I produce, but Claude produces about 95% of it. The last 5% is written by gpt-5.5. I write less than 1%.
At home, I haven't programmed much for the last three years for various reasons, mostly because of lack of time and health-related reasons (back pain).
Vibe Coding
So I wanted to try to vibe-code for real. Not at work -- the stuff I do is too important (and the customer hasn't agreed to it either) -- but I still wanted the experience. So I picked a project: A web-based, mobile-first, front-end for pi. I named it "Pi Pocket". It is now my daily driver. I never use ChatGPT or Claude web apps anymore. Pi Pocket fullfill all my needs. It reached 300 commits the other day. Early on, I did reviews. Now I almost never look at the code.
Development process of Pi Pocket:
- I basically just ask it to extent itself. If I find a bug, I describe it, and it gives me a plan for development. Then I say "go do it".
- I have a skill set up so it knows how to redeploy itself. I works incredible well.
- I can extend Pi Pocket "on the go" just by telling it what I want in a chat on my phone.
Things that work well:
- Giving it small, clearly scoped tasks that are easy to reason about. Like "I want a button that does this" or "this doesn't work when I click right here under these circumstances".
- It is good a reviewing and refactoring, but you have to initate those tasks manually.
- It works well for planning. I often ask it what state the code needs to be in before a new major feature, and it will list things we should improve first. Then I review and pick those I think are important (based partly on my experience as a developer and on gut feeling).
- Manual labor. Want to convert your whole code base from JavaScript to TypeScript? It will do so with no mistakes. I actually did that three weeks into the project.
Things that LLMs don't do well:
- The code that it produces is always at least a little over-engineered. Depends on the model, but they all have this issue to some extent. It takes time and effort to make it write less code for the same task. I estimate the code base it about 10-20% larger than If I had written it myself. But it did it in six weeks. I doubt I could have done it in six months.
- It is fairly good a writing UI code, but styling and layout always looks a bit generic or a bit off -- sometimes both. So I still manually tweak CSS sometimes, since iterating with the agent takes a lot of time with these kinds of tasks.
- It writes documentation well, but as with all LLM writing, it's verbose and follows the same patterns that all LLM writing does. I would never publish a readme by an LLM without a good chunck of editing first. I never understood people who did. LLM readme's are an instant turn off for me when I browse projects on GitHub.
- This one is not specific for agentic coding, but remember, the LLMs will always agree with you on subjective matters. If I want to repriotize, it will always tell me that the new priorization makes more sense than the old one. You should always be the judge instead of relying on the reponses of a sycophantic ai. If you lack knowledge in a certain area, then this is easier said than done.
Pi Pocket Status
Right now, it has plenty of features, and I'm reached a point where it does more or less all I need. In fact, I might delete a few features I don't need after all.
Some current Pi Pocket features:
- Chat with any model using Pi as the backend
- Scheduled Jobs -- yes, schedule a prompt to happen later or on specific times (like crond)
- Integration to a local OpenAI Voice-compatible API (which I also vibe-coded)
- File-sharing with the agent
- Color themes
- Workspaces
- Jobs can run detached from the front-end, and I can attach to them later using any client I have authorized (PWA, desktop)