Tim Apple

Tim Apple

@ninepointlabs.com

Tinkerer building small, useful software for Linux and for people who like to write. Rune, Bahá'í Reader, Linkguard and more. Bahá'í, Warcraft fan, East Texas. https://ninepointlabs.com · https://blog.ninepointlabs.com

33 followers69 following470 posts

Omostrich 0.3.3: "Always allow" now covers one Nostr event kind instead of everything, and DM prompts show who's on the other end. 0.3.2 strips hidden metadata from cached profile pictures. https://blog.ninepointlabs.com/2026/10/omostrich-0-3-3/

blog.ninepointlabs.comOmostrich 0.3.3: tighter signing grants and safer profile picturesTwo releases landed this morning. Version 0.3.2 finishes the profile picture hardening that 0.3.1 started, and version 0.3.3 makes your signing permissions narrower and your approval prompts clearer, especially around direct messages.

New Laotou chapter. Tranquillien turns out to be full of Twilight's Blade cultists, including three people the town trusted. He tears down the pamphlets, carries frightened elves out of burning houses, then heads for Windrunner Village. myazerothlife.com/2026/10/laotou-traitors-of-tranquillien

myazerothlife.comThe Traitors of TranquillienThe pamphlets were the first thing to burn. They always are. Laotou walked into Tranquillien at dusk to find the Twilight's Blade nailing its gospel to every post and doorframe in town.

A tip for fm-cli, my terminal client for Fastmail: it keeps your mail and message bodies in a local SQLite cache, so you can read and write drafts with no connection at all. Back online, fm-cli sync pushes the queued changes up. Nice on a train or bad hotel Wi-Fi. fm-cli.ninepointlabs.com

fm-cli.ninepointlabs.comfm-cli: Fastmail from the terminalA small Go client for Fastmail's JMAP API: a full-screen terminal mail app, scriptable commands that print JSON, and a live watch over Fastmail's push connection.

folderblog 0.2.10 adds optional podcast download stats with OP3, the free, open-source stats service. Add one analytics_prefix line to blog.toml and your episodes are counted, with no account to create. It's off by default, so existing feeds don't change.

blog.ninepointlabs.comfolderblog 0.2.10: podcast download stats with OP3folderblog 0.2.10 adds one thing podcasters have been asking about: download numbers. If you publish a show with folderblog, you can now count how often your episodes are downloaded with OP3, the free, open-source podcast stats service.

omaforge 0.2.7 is ready for World of Warcraft: Forever. It recognizes the Forever release client before you've ever launched it, so you can set up your addons on Linux ahead of the Nov 4 launch. Leftover beta folders now show as Forever Beta.

blog.ninepointlabs.comomaforge 0.2.7: ready for World of Warcraft: Foreveromaforge is the World of Warcraft addon manager for Linux and Omarchy. Version 0.2.7 gets it ready for World of Warcraft: Forever, which launches on November 4.

New Burrly chapter on My Azeroth Life. Lady Liadrin sends him to the Gates of Zul'Aman to try diplomacy with Zul'jan, a Void beast interrupts, and it turns out Zul'jan isn't even the one in charge. His sister is. myazerothlife.com/2026/10/burrly-atal-aman

myazerothlife.comThrough the Gates of Zul’Aman · My Azeroth LifeThe Gates of Zul’Aman have kept elves out for longer than most kingdoms have kept anything. That evening they opened for a Kul Tiran who smelled of tar and salt.

folderblog 0.2.8 fixes podcast setup on real Cloudflare R2. The upload worked, but R2 compressed its reply and dropped the file size, so the check after it failed. Sorted now, and the show page has a Subscribe box with the feed address ready to paste. blog.ninepointlabs.com/2026/10/folderblog-0-2-8

blog.ninepointlabs.comfolderblog 0.2.8: Podcast setup that works on real R2, and a Subscribe boxfolderblog 0.2.8 is a small fix release on top of yesterday’s 0.2.7, the one that turned a blog folder into a podcast.

folderblog's podcast feature has a real show on it now, My Azeroth Life. Episodes stay as drafts on my computer until I've listened. I never typed a file size or duration either. folderblog reads those from the MP3. folderblog.ninepointlabs.com/blog/2026/my-azeroth-life-podcast

folderblog.ninepointlabs.comA real podcast on folderblog: My Azeroth LifeA real podcast made with folderblog: My Azeroth Life turns World of Warcraft play sessions into blog posts and narrated episodes, all from one blog folder.

WoW Forever beta report card: 30 characters played, 99th percentile. 107 levels across all of them, which works out to about three and a half levels each. Commitment issues? Never heard of her. 128 boars also did not survive me. See you Nov 4.

Episode two of My Azeroth Life is up. In a Boralus tavern with a storm rolling in, the Chronicler tells the story of Burrly, a Kul Tiran warrior who walks straight into every fight, all the way down the Darkway. About 25 minutes, with chapters. myazerothlife.com/podcast/the-chronicle-of-burrly

myazerothlife.comThe Chronicle of Burrly · My Azeroth LifeIn a Boralus tavern with a storm rolling in, the Chronicler tells the tale of Burrly, a Kul Tiran warrior who walks straight into every fight from Boralus to the Darkway.

My Azeroth Life has its first episode. An old lorewalker pours the tea and reads the first three pages of Laotou's story, from a stranger walking into Dornogal to the Lightbloom. Chapters are marked if you want to jump around. myazerothlife.com/podcast/the-chronicle-of-laotou

myazerothlife.comThe Chronicle of Laotou · My Azeroth LifeAn old lorewalker opens his ledger to a new name: Laotou, a Pandaren monk who walks into Dornogal and straight into a mystery of missing gold.

folderblog can do podcasts now. Each episode is a folder with its show notes and an MP3 or MP4, and it builds the show page, episode pages with a player, and a feed ready for Apple Podcasts and Spotify. The audio lives on Cloudflare R2, not in git. folderblog.ninepointlabs.com/blog/2026/podcasts

folderblog.ninepointlabs.comPodcasts, templates to fill in, and updates that bring the new parts · folderblogfolderblog 0.2.6 and 0.2.7: a podcast is now one more folder in your blog, every blog gets templates to fill in, and updates bring the new parts to the blogs you already have.

A link checker that cries wolf is worse than none. Linkguard sorts every outbound link into ok, moved, dead or blocked, so a page that just refuses bots doesn't get flagged as broken. If you let it fix things, it opens a pull request and never touches your default branch. linkguard.persistwise.com

linkguard.persistwise.comLinkguard: link checker for static sitesA free GitHub Action that checks outbound links in Jekyll, Hugo and folderblog sites and finds Wayback Machine snapshots for dead ones.

fm-cli and Autonomix CLI each have a one-page site now, which is a lot nicer to send someone than a README. Each explains what the tool does and how to install it on your distro, with the latest release linked. https://blog.ninepointlabs.com/2026/10/fm-cli-and-autonomix-cli-websites/

blog.ninepointlabs.comfm-cli and Autonomix CLI get their own websitesTwo of the terminal tools now have proper homes on the web: fm-cli.ninepointlabs.com and autonomix-cli.ninepointlabs.com.

Most link checkers only tell you what already broke. Linkguard has a snapshot mode I keep coming back to: add your own free Internet Archive keys and it saves working links that have no recent copy, so there's a fallback later. First run is slow, but worth it. linkguard.persistwise.com

linkguard.persistwise.comLinkguard: link checker for static sitesA free GitHub Action that checks outbound links in Jekyll, Hugo and folderblog sites and finds Wayback Machine snapshots for dead ones.

New Laotou chapter is up. Hallow's End candy at the Silvermoon inn, a guild invite, and a flower out in Eversong that's growing when it really shouldn't be. Knight-Errant Bloodshatter finally comes off the list too. https://myazerothlife.com/2026/10/laotou-lightbloom/

myazerothlife.comThe Lightbloom and the Knight-ErrantThe candy bucket at the inn in Silvermoon City was the one honest thing in the city that night. Laotou reached in, came out with a fistful of Hallow's End treats...

Seven Nine Point Labs apps now run on any Linux. Repokase, Jubako, Dogear, omaforge, Rune, Bahá'í Reader and Hyprfall each ship an AppImage that adds itself to your app menu with proper icons. Omarchy is still home. https://blog.ninepointlabs.com/2026/10/appimages-for-every-linux/

blog.ninepointlabs.comSeven Nine Point Labs apps now run on any Linux, with AppImagesEvery release now comes with an AppImage that runs on most x86_64 Linux systems and fits properly into your desktop.

Wanted blogging to be as simple as saving a file, so I built folderblog. Drop a Markdown file into a folder, hit save, and a few seconds later it's live on GitHub Pages or any host. No front matter, no build step, no deploy command. Free and open source, for Linux. folderblog.ninepointlabs.com

folderblog.ninepointlabs.comfolderblog: a folder is a blogA folder is a blog. Save a Markdown file and it's live seconds later: no front matter, no build step, no deploy command.

I've been building Jubako, a simple desktop database for Linux. Think the old Microsoft Access, without the hard parts: drop in a CSV or Excel file, connect your tables, find rows, print a tidy report. No SQL, no server, and it's all one ordinary SQLite file. jubako.ninepointlabs.com

jubako.ninepointlabs.comJubako · Microsoft Access, without the hard partsA simple desktop database for Linux. Bring your spreadsheets, connect your tables, print a tidy report. No SQL, no server.

This week fm-cli, my Fastmail client for the terminal, learned to send from whichever address you pick, and calendar setup now works for logins with a dot in them. Both fixes started as patches from Noah Hopping. Best part of sharing a tool. https://blog.ninepointlabs.com/2026/10/fm-cli-0-3-5/

blog.ninepointlabs.comfm-cli 0.3.5: Pick your From, and calendar that finds youTwo small fm-cli releases fix sharp edges you only notice once you use a tool every day, both with help from outside the house.