From 'Vibe Coding' Experiment to Daily Tool: Building Folio
At the end of June, I decided I wanted to give AI coding a real go. Not just fix a bug here or add a button there, I wanted to try building a product from start to finish using only AI coding. I wanted to give AI the chance to show me what it’s capable of before deciding where I stand on its usefulness.
I’d been searching for a project idea for a couple of months when, toward the end of June, I noticed that a documentation app I’d used in the past, Dash, had a small “paywall”: a five-second timer before each search. Nothing to complain about, honestly, it’s clearly labeled as a free trial. But it got me thinking: that looks like an interesting project to build. That’s how Folio was born.
I’d worked with AI before, so I already had a plan of attack in mind: tackle it bit by bit, one feature at a time, broken into small chunks, “mouthfuls,” as I like to call them. First, ask the AI to turn a detailed description into a plan, and to ask me any clarifying questions it needs. Then I review the plan to make sure everything is understood as intended, and add anything that comes to mind last minute. Finally, let it cook.
Since I had an existing app as inspiration, there are naturally a lot of similarities, the starting goal was, after all, to build something like it. But then I thought: what if I could also quickly search Stack Overflow for an answer? I’ve been programming for well over ten years now, so I know when a question is simple enough to be a quick SO post.
Then came another thought: why not add the ability to search with AI? Not for complicated questions that need back and forth, but for the kind that, in my experience, have one-line answers, like “how do I resume a suspended nvim session?” (Answer: fg.)
Using AI to build this project felt low-risk, since the criticality is low enough that a bit of messy or unoptimized code isn’t a real issue. Long-term, extending the project will mean the AI-generated code needs to be reviewed thoroughly.
Working off a basic Claude Pro subscription meant the process was slow, sometimes two days per feature. But that gave me plenty of time to think through the next feature carefully: the exact steps I’d hand to the AI, and so on.
I also had to figure out documentation: where do I even find usable documentation to work with? So I built a small helper tool that downloads documentation from DevDocs, transforms it into a docset (similar to the format Dash uses), and uploads it to Cloudflare for the app to fetch.
Under the hood, Folio is built with Go and Wails v3 for the desktop shell, with a Svelte frontend for the UI, a stack that turned out to be a great fit for a fast, native-feeling search tool.
It’s by no means mature or production-ready, more of an alpha, honestly, but I think it’s a great example of what AI is capable of right now.
It’s safe to say that AI impressed me. It turned out to be much better than what I anticipated. Don’t get me wrong, it still has a long way to go. There were plenty of times where it made mistakes, broke previous features, or even got stuck running in circles over the same error. But what impressed me more than anything is that I could tell and see the difference every month with each new model and update. I feel like the technology got better, even in the few months it took to create this first version of Folio.
My next steps are to go through the code myself, piece by piece, and see exactly what it’s done: a thorough cleanup and some optimizations. Good Linux support is also high up on my list. I have open-sourced the whole project, so feel free to check it out, fork it, and even help out with the development by suggesting fixes and opening PRs.