Screenshots The RSS feed for Screenshots.

  • πŸ“˜ Devlog

    Other Project Updates

    A few updates of some other projects I worked on recently.

    Webtools saw some love as I needed some tooling made to make the icon easy to include in the Well Read Flutter project itself. Android expects the logo of a specific size, so I "commissioned" an Android Icon Resizer, which will take one or more PNG files, resize them to what Android expects, and prepare them in a ZIP that could be extracted at the route of the res/mipmap directory. It will also produce a small preview of the icon, rendering it in a circle so you can see how it looks on the device. It's background savvy, layering the icon over the PNG with "background" in the filename.

    Continue reading β†’

  • πŸ“˜ Devlog

    gRPC Client - A Vibe-coded Client for Testing REST/gRPC Endpoints

    My current craving of vibe-coding various tools I need to do my job continues, with an attempt to build a REST/gRPC test client.

    This is motivated by my distaste with all the other clients I've tried. There've been a few, and I've been unhappy with each one. For one thing, they seem more heavyweight than my needs. I don't know if this is just how they're implemented, or it's because the realm of HTTP request testing is complicated (It's probably a bit of both).

    Continue reading β†’

  • πŸ“˜ Devlog

    Weiro - Categories, Pages, and Upload Editing

    Some more work on Weiro. Much of it is pretty mundane, mainly to get it to feature parity with other CMS's out there. Yes, I know the existence of those other CMS's make the entire project pointless. Doubly so when you consider that much of what I'm going to talk about was largely done by coding agents. It made me wonder whether it was worth writing this update at all. Well, it's drafted up already so I may as well finish it off. At least one thing will get finished.

    Continue reading β†’

  • πŸ“˜ Devlog

    Well Read - One Week Later

    It's been a week since I learnt about Inkwell's API and got an agent to start work on an RSS reader. Since then, Well Read has been in a state of flux, as I ask for agents to make changes to the interaction and layout. I think I've got it in a pretty good state now, certainly in a state that works well for me.

    The earliest screenshots of Well Read, taken on 11 March 2026

    The Today and Recent tabs still retain their original behaviour, although the idea of using 6:00 pm of the previous evening as the cutoff for "todays' posts" was a good one. Being where I'm located in the world, many people I follow publish posts while I'm asleep. I recently added a tab for bookmarks which uses Micro.blog's bookmarking feature. Any post can be added as a bookmark, and since there's no real way to get to a post once it drops out of the Recent tab (well, apart from opening it up in Inkwell proper), I have in mind this feature to act as a place to stash posts for later. So I tried making bookmarks as easy to add as possible. Sliding aside the item in the feed list will reveal a bookmark action, as will the overflow menu in the feed viewer.

    Continue reading β†’

  • On my commute. I wanted “Mark all as Read” added to Well Read. Cracked open the coding agent to make the change, push it to Forgejo to build the release, which I side loaded onto my phone. By the time I arrived at my station, it was there. Pretty nice!

    Auto-generated description: A mobile email app interface displays messages from Daring Fireball and Robert Birming, alongside a menu with options to mark all as read, refresh, and sign out.
  • πŸ“˜ Devlog

    Well Read - An Inkwell Client for Android

    When Manton mentioned that Inkwell has an API, I… um… may have vibe-coded an Android client.

    Two screenshots of Well Read, showing a post list with a Today and Recent tab; and a post in the post reader

    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.

    Continue reading β†’

  • πŸ“˜ Devlog

    Weiro - 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.

    Continue reading β†’

  • πŸ“˜ Devlog

    CSVTool - 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.

    Continue reading β†’

  • PostgreSQL Docker and "No space left on device"

    Dealing with PostgreSQL Docker complaining about “No space left on device” Continue reading β†’

  • Ooh, this is a nice new feature of Pocket Casts: the web player now includes chapter markers in the scrubber. You can mouse over them to get the chapter name, and click them to jump to the chapter.

    Auto-generated description: A music player interface shows the song Long Weekend by Hemispheric Views being played at 0:34 out of 5:11.
  • How is it that people making screenshot mark-up apps still don’t understand that the blend mode for highlights should be multiply, not mix with alpha. A real highlighter would keep the text black, and won’t produce obvious overcoating. This just looks like I’m smearing yellow paint everywhere.

  • πŸ“˜ Devlog

    Micro apps - Some Score Cards

    In the spirit of maintaining a document of what I’ve been working on, and being somewhat inspired by Matt Birchler’s posts about his micro apps, I’d thought I’d document on some of the small apps I’ve worked on recently.

    The fact of the matter is that I’ve been building quite a few of these apps over the course of the summer, primarily in response to a specific need I have at the time. I haven’t written about them before, mainly because there didn’t feel like there was much to say. Some were vibe coded, and saying that I “made” them didn’t feel correct. Others were made by hand, but they were super simple and there was no real challenge in making them at all. In either case, being able to say “I made it” is difficult as the amount of effort spent in making it is quite low, and that doesn’t make for interesting blog posts. Would a post saying that “I went to work today” be worth reading if that’s what I do every weekday?

    Continue reading β†’

  • More work on assets for my niece’s game. This time I tried something organic: a tree. Not the most difficult organic thing, I agree. Need to build up to the hard things.

    Auto-generated description: A digital illustration displays the progressive creation of a tree design using vector graphics tools, starting with basic shapes and evolving into a detailed tree with fruits or blossoms.
  • Was not expecting to spend yesterday morning working on Dequoter, my Boop clone. Opened it up to do some light work and when I looked up, a couple of hours have passed. Added a few more processors to deal with lines, such as splitting and joining on commas. Added a status bar for processes that return information rather than filter text, such as returning a line count.

    Also integrated UCL, because of course I did. Added two commands: a UCL: Evaluate which executes the input as a UCL script and displays the response in the status bar, and a UCL: Replace which replaces the UCL script with it’s output. This makes it possible to generate text from scripts, like a bunch of lines to test out the line count processor:

    map (seq 20) { |n| "Line $n" } | strs:join "\n"
    
    Auto-generated description: A computer window titled Dequoter displays a list numbered from 0 to 19.

    It’ll also make for a useful scratchpad for testing out some UCL commands.

  • Have finished a working version of my game for my niece. It’s only the free typing mode for now, which is essentially a basic text editor, with some colour options mapped to keys F1 through to F8. I’ve deployed a browser-based version of it if you’re curious.

    Auto-generated description: A digital screen displays the text HELLO WORLD! in colourful letters against a backdrop of silhouetted trees and buildings under a cloudy sky.
  • πŸ“˜ Devlog

    Game For Niece β€” More Art and Cropping Ebitengine Images

    Drew some more artwork and started integrating it into the game. Replaced the previous bus image I got from an image search with one I created myself using Affinity Designer:

    Auto-generated description: A cartoon-style bus is depicted in an illustration with the word BUS in green text above it.

    It’s orange, just like the busses round here, although this one has a plainer livery.

    I’ve not integrated the car just yet: I’m hoping to finish off the animations for the bus first. But I’m so glad I embraced Affinity Designer for this. I’m surprise I haven’t considered it sooner. The whole image is designed as a whole, then I export each component β€” body, door, wheels β€” as a separate PNG and recompose it in the code, giving me the means of animating each component. I’d imagine this is a pretty typical workflow: and I’m surprise I haven’t considered this sooner too.

    Continue reading β†’

  • Well, would you look at that. Turns out I can draw… somewhat.

    Auto-generated description: A step-by-step illustration shows the transformation of a simple car sketch into a detailed, coloured car design using digital editing software.
  • Rendering Outlined Text in Ebitengine

    A method for rendering outlined text using the Ebitengine and the shapes package by creating a separate image for the text and applying an outline to it. Continue reading β†’

  • Just placed the exit on Level 3-2 on my Godot game. The level still needs prettying up but the critical path is now done. I’ll think this will be the last level I build. There’s still so much work to do: polishing, backdrops, menus, etc. But no more content. Kind of want to put a pin in this one.

    Auto-generated description: A 2D platformer game level with block structures, steps, and floating platforms.
  • So this is what Christmas in winter feels like. πŸ₯Ά

    Auto-generated description: A weather forecast for Phillip Island shows possible showers with windy conditions and temperatures ranging from 14 to 18 degrees.
  • Trying out MB Manager by @timapple. Not bad. I like how snappy everything is. I also like the option for a serif font. Quite a unique way of reading Micro.blog.

    Auto-generated description: A social media app's timeline view displays two user comments and a status update about a podcast app update.
  • Some Caution on Using ROWIDs for Primary Keys in Sqlite 3

    Relying on ROWIDs in SQLite can lead to reused IDs, causing issues with foreign key cascading deletes, which can be mitigated by using the autoincrement feature despite its overhead. Continue reading β†’

  • πŸ› οΈ Doom Text Generator

    Looks like fun. Giving it a whirl:

    Text in Doom-like pixelated font. Message: Am I asking for too much to want obsidian to add multi-cursor support? (Press Y/N)

    Via: Martin HΓ€hnel

  • Trying Out Pagefind in Micro.blog

    Setting up Pagefind in Micro.blog and some early thoughts using it. Continue reading β†’

  • πŸ“˜ Devlog

    Godot Project - Level 3-2 And Bobbing Water

    After some distractions, progress on a Godot game level is underway, focusing on design elements like a generator sprite and a dynamic water mechanic. Continue reading β†’