folderblog 0.2.9: Fixes from a full QA pass, and podcast addresses that stay put

· 3 min read

folderblog 0.2.9 is a fix release that came out of a full QA pass over this morning’s 0.2.8. That pass followed the published instructions step by step, the way a new user would, and the rough edges it found are fixed here. Most of it is podcast polish, plus a change that keeps your post addresses the same when you clone or copy a blog.

Read this before you update

Three changes are worth knowing about first:

  • The podcast feed’s own title changes. If your show has the same name as your blog, the feed itself is now titled “Your Blog (Podcast)”, not just the link to it. Podcast apps will pick up the new name. To keep the old one, give the show its own name in podcast/index.md or with [podcast] title.
  • There’s a new file to commit: dates.toml. A post without a date of its own gets its address from the day folderblog first saw it. That date used to live only in the ignored .blog/ folder, so a fresh clone could give the post a different address. It’s now kept in dates.toml in the blog folder. After you update, the service writes it from the dates already recorded, so no address changes. If your blog is in git, commit dates.toml.
  • A new [podcast.storage] prefix setting needs 0.2.9 or newer. It pins the folder your episode files use on the audio host, so renaming the blog folder no longer changes every episode’s address. If you leave it out, nothing changes. podcast setup now writes it, and folderblog check suggests the exact line for existing shows. Older versions refuse a blog.toml that has it, so update every machine that builds the blog first.

Podcasts

  • Publishing an episode keeps your notes. folderblog podcast publish --episode (and the MCP publish_episode tool) now changes only the draft: line. Before, it rewrote the whole front matter and dropped the comments from the template.
  • check looks at draft episodes too. Problems like a missing guid show up as warnings, and the suggested guid is the same every time you run it. folderblog podcast now counts episodes left out because of a problem, and a draft no longer needs audio hosting set up.
  • No more doubled page title. The default podcast page no longer reads “Blog · Blog”.
  • S3-compatible storage is documented. With type = "s3" and no key, folderblog now tells you how to give it one (FOLDERBLOG_STORAGE_KEY_ID and FOLDERBLOG_STORAGE_SECRET, or a key file) instead of pointing you at the R2-only podcast setup.

Clearer messages everywhere else

  • Honest retry messages. A held publish only says it’ll be retried when the background service is actually running. Otherwise it tells you what to run.
  • Machines without a systemd user session. folderblog status says so plainly, and a failed install-service removes the unit file it wrote (or puts the old one back) and tells you what to do instead.
  • check names pictures nothing shows. Pictures in posts/ and pages/ that no page uses are still published, and now you’ll know which ones they are. It also notes that a robots.txt under a base_url path isn’t read by search engines.
  • Docs that don’t break. Install links are pinned to the release, building from source uses --tag, and there’s new coverage of template route headers, base_url for other hosts, machines without a systemd user session, the preview address and folderblog data examples.

Grab it

SystemCommand
Arch / Omarchysudo pacman -U folderblog-bin-0.2.9-1-x86_64.pkg.tar.zst
Debian / Ubuntusudo apt install ./folderblog_0.2.9-1_amd64.deb
Fedora / RHEL / openSUSEsudo dnf install ./folderblog-0.2.9-1.x86_64.rpm
autonomix-cliautonomix-cli add https://github.com/ninepointlabs/folderblog

Already installed? Install the new package, then run systemctl --user restart folderblog, and commit the new dates.toml if your blog is in git. The packages and a plain tarball are on the v0.2.9 release, and the source is on GitHub.