Bespoke Personal Software
Anthology
So… I wrote an RSS Reader. Why not? Everyone else seems to be doing it lately. I actually did it for the same reasons that I see other’s had written theirs. There wasn’t an RSS Reader out there that fit me perfectly. In my case I wanted something like Tapestry with its plugin connectors. What I didn’t want was the almost infinite timeline. I wanted a traditional 3 column RSS Reader like the OG of the group NetNewsWire. So I wrote Anthology.

You Can’t Have It
I think Anthology is pretty cool. It is a SwiftUI and SwiftData app that uses almost no AppKit or UIKit code. It runs great on macOS and iOS. The user interface is very similar to NetNewsWire but it uses Tapestry’s Open Source plugin connectors to provide access to RSS feeds, Mastodon, Reddit, and more. It has iCloud syncing.
I think it is a pretty strong contender or at least has a lot of potential. I have no plans on distributing it though. Not for sale and not Open Source. Frankly, I don’t want to deal with the hassle. Besides, the field is saturated. The last thing this world needs is another RSS Reader.
Built in Four Weeks
Nobody was more shocked than me about how fast Anthology came together. It started out as a proof of concept. I put together the basic UI to learn modern SwiftUI and SwiftData. I also wanted to see if the new WebPage API was up to the task. It took 4 or 5 days (I can’t remember) to get the basic UI together. Then I took a break from it to put Zavala 4.0 out.
Once Zavala was in Beta testing, I picked the project up again. I began using Claude Code to assist in getting it done. Once Apple integrated agentic programming into Xcode, I switched to that using Claude Agent. Man, what a force multiplier AI programming is. I hadn’t really given it much credence before and I was really shocked at how productive it made me.
I fleshed out the rest of the UI and persistence in no time. I didn’t vibe code it, but I sure used a lot of prompts. I quickly learned not to trust Claude to not litter my codebase with junk. I seem to have to remind Claude to clean up failed rabbit holes it likes to go down sometimes. I deleted Claude’s code and rewrote it. Sometimes I made Claude rewrite it. I did this for a couple of weeks. It felt a lot like working with a team of decent programmers who were good at taking direction.
Claude seemed to work best if it had an example to refer to. I used SwiftData CloudKit integration for syncing. It surprised me how well it worked to be honest. It still wasn’t good enough. It created duplicate articles and constantly got confused about if an article had been read or not. So I wrote a custom CloudKit integration for one entity and had Claude repeat the process for the rest. All in all iCloud syncing took about 5 days to get to 100%.
In the end, I would guess that Claude wrote about 80% of the code under my supervision. It’s not sloppy code either. I have no problem reading it. In fact it is better than a lot of human written code that I’ve reviewed and that used to be my job.
Is this the Future?
Will more people be writing complex pieces of software for just their personal use? Has AI lowered the effort and skill needed to create something really cool that much? I’m beginning to think so. Frankly, I had fun building Anthology. I enjoyed working with the AI. I could see myself doing something like this again. I think this is just the beginning of bespoke, personal software.


















To publish this outline, I run a Shortcut that uploads images and HTML to my

It is important here to point out some terminology differences. A “note” in Zavala is associated with a row. It provides additional detail for the topic. When publishing docs or blog posts from Zavala a topic is a group heading and a note is paragraph text.
























We settled in and hung out there for a couple of days, only going into Cottonwood to sign up again for Planet Fitness, buy food, and use the internet at the closest Starbuckis. It was surprisingly rainy for being in the desert and mud got everywhere. Eventually we learned to live with it.






































































































































































