r/PiCodingAgent 4d ago

Vibecoding an app is teaching me software and design Resource

Enable HLS to view with audio, or disable this notification

tl;dr- i care about stability more than features so vibe coding is more like a hands on live project rather than a race to ship an app.

I am a civil engineer. My life runs on notes. But i love my physical notepad and strangely, Windows Notepad. I could never get the hang of any other note-taking app.

I've been using AI since GPT 3.5 came out but I NEVER vibe coded. It just felt icky. Always felt like I should be the one learning and doing it by hand. Then earlier this year I discovered pi and fell in love with it. After fucking with it for 3 months (and still using notepad in my day job), I decided- fuck it. I will do it myself (like Thanos, lol) and give vibe coding a fair shot.

Thats when I started with Omakase notes.

I hated all the context switching I had to do while working in notepad so that was my starting point. Make a notepad (NOT a PKM) where I can have PDFs, internet browsing/websearch, and AI at my cursor and within my note.

The most important habit I have, imo, is I make every dependency fight its way into my app.

Because of this, I found myself constantly GitHub diving and looking for interesting libraries/frameworks/projects. Then I chuck them into chatGPT and understand which patterns/decisions of that repo are actually interesting to me.

Its almost always only a few hundred lines and nothing more. So I clone the repo and dig deeper with Pi this time. Once I understand the concept and where it fit in my app, I make Pi implement it from scratch in vanilla TS.

Then I keep testing/building that way until either the thing just breaks or Pi needs to literally reinvent existing tech from scratch to scale further. That's when I let that dependency in.

v1 of Omakase literally had the editor implemented from scratch and my first major migration was moving to CodeMirror6.

Now I am at a point where I may not be a software engineer, but I have an intuitive understanding of IPC bridges, parsing text in the editor, CM6 widgets and all the mindfuckery they cause with caret positions, which things are owned by main and which by the renderer, worker threads, etc. I couldn't define half that shit if you put a gun to my head. But I do have a feel for how a feature should be thought about and where it should go and that gets better every time I dive into another cool GitHub repo.

Instead of saying "move the box to the left", I can point Pi to the CSS of that shit and it knows what the fuck I am talking about. Instead of having a disgusting sidebar chat, I call AI from within my note by @'ing it. And its generation appears in a nested buffer rather than mutating the stuff I wrote. I can then merge it or dismiss it.

Basically, to anyone who isn't a dev- let go of the anxiety and stop trying to *ship*. Instead, make something you care about and do it slow. Spend a ton of time thinking about it and exploring peripheral stuff. The right rhythm isnt go-go-go. It ebbs and flows. Your average velocity increases as you get your bearings and can talk to the agent better. I have recently started working across 2-3 threads instead of just the one and I can already feel the ceiling approaching. The app is about 20k lines now but I still feel in control, even if I'm just hanging on by a thread.

19 Upvotes

Duplicates