Well Read - An Inkwell Client for Android
When Manton mentioned that Inkwell has an API, I… um… may have vibe-coded an Android client.
It's called "Well Read", which is not a great name but better than "Inkwell Client" which was the working title. Much like Inkwell, it follows the river approach to RSS. There's a Today tab and Recent tab, each showing a portion of the entries in reverse chronological order. Today shows all the posts from today, plus the last 6 hours of yesterday. The motivation here is that this will be the tab you'll be spending your time, with posts aging out to recent over time. There's no Fading tab: all posts older than about half a week fall out of the app. And I'm not sure if I'm going to add one. There's only a few feeds that I want to catch up on if I miss their post, and since I'm using NetNewsWire and Inkwell, I'm pretty sure I'll catch them later.
At the moment this is pretty bare bones. There's no bookmarks (yet), you can't add feeds, there's no search, and only a few actions you can perform on a post: copy the link, mark it as unread, and open it in the external browser. The webview itself is a little janky too, which is not great, and I need to do something about that as it does impact the reading experience.
But so far it's been pretty good. Feels the time when all I have is a phone to read stuff, like during lunch or while commuting.
11 Mar 2026Weiro - Update 6th March 2026
A small update on Weiro. I've been working on it over the past week, trying to get it in a state that is pleasant to use. I'm been trying to get something halfway usable before doubt scuppers my motivation and this project appears on the growing list of aborted attempts at making a CMS. There've been one or two close calls, but it hasn't caused me to stop yet.
A large part of that was a feature I knew I wanted but was daunting to implement: uploads. The thought of writing the logic to manage large files, make sure EXIF data is stripped, and serve and manage them always seems like a pain. It's the reason why I've abandoned CMS projects in the past. And I want something that support uploads: I've tried CMSes that didn't have them and I never stayed long.
But this time, I rolled up my sleeves, cracked open Claude, and told it to… no, I'm kidding. Much of the feature was hand rolled, although Claude helped with some of the plumbing of getting uploaded files. But it's done: uploads are now supported. Which means screenshots:
Along with this are some updates to the published site. This I'm hand-rolling too, rather than relying on an existing SSG. Probably a mistake in the long run, but it does keep things flexible. There's nothing flashy about the HTML version of the site right now. I'm using Kev Quirk's awesome Simple.css, that I use as a base style for most things nowadays. But I have added an RSS and JSON feed. Two, in fact. One is a standard RSS feed for the site, and another is designed from crossposting to Micro.blog. The main difference between the two is that the crossposted version will have "Devlog" prepended to each of the post titles, as they'll be imported as full posts in a blog that has other content.
This is all hard-coded at the moment but I'm hoping to extend this to support other sorts of feeds, allowing the author to modify, include, and exclude posts based on their desires. The motivation here is to make it easier to integrate with services that cross-post, while recognising that not all of these "views" of a post would be the same. Cross-post to a service that supports at-mentions and maybe you'd like to ensure their handle is properly written out. But display it on the site, and maybe you'd prefer that the handle is a link to their homepage. These should all derived from the post source, and expanded in the various feeds based on who's consuming it.
Anyway, that's the idea. We'll see if any of this comes about.
09 Mar 2026CSVTool - A Vibe-coded CSV Editor
One of the fun aspects of these new code agents is seeing what they're capable of producing just form the prompt, so called "vibe-coding." There are some that are definitely all in on the concept: I'm thinking of Steve Yeggie and his Gas Town work. As for myself, I still prefer to be a bit more hands on. But it's still amusing to see what these agents are capable of just from the prompt.
I got inspired by Dave Winder's post about how he asked Claude Code to make a spreadsheet app for him. I use a TUI app I made for myself called Ted that I use to edit CSV files, but seeing how good Claude was in making the spreadsheet, I thought I'd ask Claude to make me a GUI version. This is what it came up with:
The results were pretty decent, at least on the surface. I haven't put it quite through it's paces for editing large CSV files, but what it managed to do out of the box was pretty impressive. Not that it's groundbreaking in any technical sense: think spreadsheet without the ability to define expressions. Most of the supportable commands are available via a command palette, invokable using Cmd+P. There are a few copy-and-paste options for getting table data out into usable formats, something I find quite frustrating with the spreadsheets I use. You can paste table data as CSV, a Markdown table, and Jira markup. There's the usual load, save, and commands to insert rows; all pretty standard.
It isn't perfect though. Despite two attempts to instruct it to make the header row fixed such that it won't scroll off the top, Claude was unable to achieve this. The techniques of making such a header are pretty hacky: the one I'm aware of is making a second table with just the header, placing it above the first, setting the position to absolute, then adding some JavaScript to keep the column widths in sync. Granted, this worked a good 18 years ago, and for tables that didn't scroll horizontally. Maybe there's a better way of doing this nowadays? Oh and speaking of the columns, despite providing affordances for resizing the columns, Claude didn't implement the code to actually resize them. This makes me wonder if HTML tables are probably not the best approach for such a control. I guess I probably should've told Claude that.
In any case, I'm not sure I'll put this to any real use. One thing I like about Ted is that it's modal, like Vim. Being able to move around using the keyboard (I, J, K, and L are mapped to up, left, down, and right, respectively) is something I'd miss. So I think Ted will still be useful for me. I may revisit this in the future though, and see if Claude could make a GUI version of Ted. That could be interesting.
I'll finish up by talking about some of the other features I asked to be added. Some of them were pretty ill conceived, as they came while I had a flurry of needs for CSV data. I ended up using to tool more frequently than I expected.
Sorting: Sort the table (the actual model, not just the view) either alphanumeric ascending, or alphanumeric descending based on the values of the current cell. There was also a "Sort Advanced" that prompted the user to enter the columns to sort in priority order (although not the direction, it's always alphanumeric ascending).
Match Cell: Select cells that had a value matching the current cell. This was an attempt of selecting rows to delete, but it never really worked well.
Set Where: Prompts the user for a source column, a set of match values, and a target value. Whenever the source column has one of the match values, it will set the current column to the target value. This acts like a poor man's inner join, and was made as I needed to interleave values I had from a shell command in the table I was working on.
07 Mar 2026
Oof! Everyone's building blogging CMS's now, apparently.
Since starting work on this project, I saw one other announce their own CMS that was vibe-coded with Claude. No shame in that: making something that works for you is part of the joy of participating in the Indie-web. I did take a brief look at it, and dismissed it because it was written in PHP. Yes, I am a snooty developer that looks down on those using PHP (it's just so annoying to deploy; although credit to this person, they did prepare a Docker container).
Weiro is not vibe coded. Much of it is written by hand. Not all of it, mind you: I am using agents to help with the more mundane stuff. But the models, DB schema, and much of the UI is hand-rolled. And I'm conflicted as to whether that's the right balance. Progress is slower: these vibe-coders are whipping up CMS's in the same time it takes me to add a single feature to it. And there are probably better things I could be doing other than adding one more CMS into the world (although when my mind whispers that doubt, it usually suggests watching TV or doomscrolling as an alternative, so there are certainly worse things I could be doing).
I haven't stopped working on it yet, so here's a brief update. I've got a version of it up and running in Coolify. It currently supports posts at the moment: both draft and published via Netlify. Much of the work was just making the writing experience feel natural, given that working on posts is probably the core feature of any CMS. So there's a very large window for the post body (maybe a little too large), and there's a Cmd+S keyboard shortcut for saving updates. I would like to add an auto-save feature, but I'm not entirely sure how best to do that server side, so I may settle for something that's browser only, just to save work for when the browser crashes or has no network connection. I'm also working on uploads, so there shouldn't be too much time before I can start sharing screenshots.
02 Mar 2026Hello
This is the inaugural post of Devlog, where I'm planning to write on what I'm working on. This post was created using Weiro, a new blogging CMS I've been working on. This post is little more than a test to see if the deployed version of Weiro is working. I'll post more about Weiro in later posts. For now, I just want to make sure this is being published correctly.
28 Feb 2026