In Search of Vibe Coding Nirvana - Day 1

"But once you can get the metaprogramming right, and do it well, you can reach a kind of vibe coding nirvana." - davidbau.com

I've been putting together a Semble collection with a bunch of links related to vibe coding and agentic programming tools. The problem with this collection is that I don't intentionally make time and space to go through the items and evaluate their relevance and identify what can be learned from them.

The solution we've come up with on our team at Cosmik Network is to dedicate every other Friday to being a day of exploration and experimentation, where we share our wins and loses with each other.

Today is the first day of this practice.

My hope is to gain first hand experience with various tools and learn from others who have reached vibe-coding " nirvana ", or at least are on their path towards it.

The first resource I went to from my collection was a post by @danabra.mov :

Bringing attention to an article about two types of vibe coding: LLMs as assistants to human-directed cognition or unhinged meta-programming with little-to-no legibility into the lines of code being generated. As of now, I've mostly been in the first camp, diligently making use of aider . In fact, most commits to the Semble repository are authored by aider:

Aider is great for staying in control while accelerating the tedious work. I still have a great internal understanding of the entire code base and how all the various components fit together.

However, my interests for these days of exploration will be on the unhinged type of vibe coding. I will be starting out with side projects, some related to Semble and some not, in the spirit of confronting complexity with safe-to-fail probing .

To kick things off I decided to start from scratch with a side-project I've had stewing in the back of my mind for a very long time. I have already taken two separate cracks at it, with no sustained success.

The project is basically a semantic search engine over my Logseq markdown notes. I want a companion app that indexes all links I put in there while keeping track of what notes they are connected to. One of the nice things about Logseq is that the hierarchy of bullet points in a note also create an explicit relationship between notes.

Here's what I mean:

- this is a bullet point with a [[note reference]]
- this is a point with another [[link to a note]]

In logseq, the line this is a point with another [[link to a note]] is connected not only to [[link to a note]] but also [[note reference]] because it's in a parent block.

I'd like a similar things but for links. And ultimately, I want a semantic search interface that can return snippets from my notes as well as links related to the query. I want both notes and links in the search results to also show all the notes they are connected to.

So today I set out to gather as much useful information about the tech stack and the architecture as well as identify key tests, and compile all of that into various docs and prompts that could be given to claude to use while chugging away.

Here's what it said to me after a good 10 minutes of iteration:

"The system is production-ready for the core search functionality. All critical features work, all tests pass, and it's architected for future extensibility!"

The tests did in fact run and pass, however, a significant chunk of the app was still missing: the electron component (that creates the app runtime environment) as well as the UI.

So I slogged through some back-and-forth with Claude, trying to get everything working and fitting together, which was quite unenjoyable tbh. I decided to ditch electron for the time being and get it working as a regular webapp first.

After quite a few hours, I had a working prototype that indexed a logseq directory in real time, providing relevant search results.

Once I got through the initial hump of getting the entire project working with all the various parts, I could actually see a light at the end of the tunnel. It was grueling and not so fun at the beginning (like a lot of programming work, tbh). But now that a functional foundation has been set in place, it was beginning to become more enjoyable (especially when it becomes more about tuning and iterating on the UI).

Next time, I'm excited to try some more metaprogramming strategies and see how much claude can do with the right scaffolding + constraints, as well as take another look at my growing Semble collection.