Oliver Fong ·

App Development Workflow and Retrospective

Intro to two new apps I'm making, and thinking back on the moment I wanted to start developing apps, a pivot from previous directions

I’ve been working on two projects in the past week - one of which I started in October and just got back to, and another I dreamd up when I started working on it again, this time using Claude Code. In this latest bout of inspiration, I’ve experimented with some very agentic ways of tinkering and wanted to discuss the various effects they’ve wrought on me and my projects.

So in the past 4 days there’ve been made about 120 commits on both my readingbuddy repo and my dreamd repo. That is substantially more than I’ve made at any other time in my life, and is quite possibly gratuitous, but let’s not beat around the bush - I’m not making most of these commits by hand. Readingbuddy started as a CLI project I was using to get a better grip of asynchronous Rust, using crates like tokio and sqlx. I didn’t use Claude back then, and instead wrote most things by myself, and asked GPT for review when I was stuck or wanted to learn about something. I worked on that for about three to four weeks, and then life got a little busy so I paused for a while. I ended up taking up a job at a cafe as a barista, and honestly that has been a great experience, but it ate up a lot of time that I could’ve been spending in another way, perhaps more directed to tech. I had a promising job offer come up in December, so I spent most of my next two months studying like crazy for that interview process. Despite getting rejected close to the end, it was an transformative experience that brought my enthusiasm for the tech world back in a way. I hammered Leetcode, read two Networks books, one algo book, one generalist programming book end to end, wrote a couple larger python network programs, and practiced explaining the intricacies of BGP and TCP to my mother for hours on end (I believe to her avail at that).

After rejection, and I remember this very clearly, it was that afternoon when started reading the Big Nerd Ranch book on Swift. After that I watched through and followed the CS193p Stanford class on SwiftUI. This marked a clear pivot from the material from the past two months, and even from my entire undergrad experience where I thought I’d go into system - within a week, I was set onto making apps. Although I started with Swift and aimed at making something I could use on my phone, it signalled a broader interest in making my own, useful, packagable, little products. And importantly, I was now designing for a person, whereas before the bulk of the target audience were computers. There was a level of ownership that I wanted over these projects, likely because they gave me a sense of control over my own future in tech. Fast forward, my first app, Autorota, is a comprehensive, useful, and nicely packaged polished product made for people I care about around me. But the review process has been long, much longer than 48 hours, and the anxiety it has brought upon me likely catalyzed these two aformentioned projects.

Readingbuddy is something I wanted to make to address a gap in cohesion between different reading services. My feeling is that due to the massive propriety problem masking the ebook world, and its refusal to acknowledge the behemoth that is online piracy, there has been a real lack of effort to make a place where people who read ebooks can thrive. Calibre is a fantastic program, but it isn’t great at things that actually have to do with the process of reading a book. Goodreads is a nice social platform, but that’s all it is. Amazon is a devilish service when it comes to ebooks - Kindles are and incredible tool but their quality isn’t nearly as good as it could be, ebooks are cheap but gated, and outside of the kindle store there isn’t really any ecosystem for what happens when you’re not actively reading or looking for a book. It’s a bookstore with no chairs, no desks, no coffee shop, no pens, and no paper. Its exterior is that of a 30 acre data warehouse, and at its checkout awaits a cunning, cruel clerk, who uses the dark arts to persuade its victim to tap their card.

Thankfully, it doesn’t have to be like that. To extend our analogy, Readingbuddy gives you a chair under a well-lit desk and arms you with an arsenal of stationary. It also acts as a repository for your thoughts while reading, allowing you to make connections between content more easily, and engage with the material in active modes of reading. It’s the center node of everything ebook, tying together Calibre, Kindle, Koreader, and Goodreads. It is the place where your reading lives.

That’s the idea I had in October anyways, and that’s the one that I’ve been building recently. Dreamd on the other hand is a tool that I wanted to make after using a markdown-centric workflow for weeks. At first I just wanted a nicer markdown viewer than nvim, but after exploring the market I realized that there weren’t any nice free options. I didn’t just want to read in my browser either, but wanted a dedicated and customizable app that could act as my Preview and my KOReader, but for markdown. Inside my workflow, however, I noticed that it’d be useful to integrate Claude directly with the products of my engagement while reading. At first the idea was that highlights and annotations build a stack, then I can copy those as part of a prompt and paste them into Claude. That was great, and worked well, and is the first release. But I enjoyed working on the app a lot, and wanted to take it a bit further by adding persistence to highlights and truly integrating it with Claude by way of an MCP. That was what I was working on today, and it seems to be paying off nicely. Both workflows remain viable, but now Claude has better context and all it takes one key-bind to dialogue with him in-app (her? it? them? Wonder how different people think about that one).

While working on these two apps my workflow regarding Claude usage and agentic coding has evolved considerably, in large part due to dreamd itself being a workflow-oriented app. In fact, Readingbuddy could also be considered an app made to aid in the workflow of active e-readers. So perhaps because of the nature of these programs, my interest in my own workflow creating them has been bolstered. I’ve always loved in tooling as a category, but quite alarmingly, my recent dive into workflow has clearly pronounced this love akin to what I recently learned is called EDC (everyday carry), or more charmingly “gadget fetishism” - it more prodded my coder’s ego than anything of real use. At the very least, however, I did acquire an affinity for using the keyboard and vim motions, the usefulness of which has invariably continued into agentic workflows. Whether it’s been the productivity game changer in other places for myself over the last five years is harder to discern. All I know is that writing class notes or even this blog for that matter in nvim makes me feel badass and that my fingertips are sore.