Repository navigation
Releases: ninepointlabs/folderblog
Release list
folderblog 0.2.7
A small update on top of 0.2.6.
New
- Your blogs keep up with updates by themselves. After you install a new version, restart the service (
systemctl --user restart folderblog). The first time it starts, it adds any sample files your blogs don't have yet, such as thetemplates/folder from 0.2.6, and refreshes the generated part ofAGENTS.md. It logs what it changed. It never turns a feature on and never changes your design,blog.tomlor your posts. A sample file you delete stays deleted. (#20)
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.7-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.7-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.7-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.7-x86_64-linux.tar.gz and put folderblog on your PATH |
| autonomix-cli | autonomix-cli add https://github.com/ninepointlabs/folderblog |
New to folderblog? Start with the guide, or run folderblog guide. Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.2.6
Podcasts, on top of 0.2.5.
New
- Podcasts. Put episodes in
podcast/, one folder per episode, each with its MP3 (or MP4 for video). folderblog makes the show page, the episode pages and/podcast/feed.xml. The feed is ready for Apple Podcasts and Podcasting 2.0: a permanent guid, transcripts, chapters, people, and optional Lightning tips. Turn it on withfolderblog podcast on. Episodes stay out of your main blog feed unless you setin_main_feed. (#15) - Episode hosting on Cloudflare R2. Your audio is uploaded when the site deploys, and the site isn't published until the upload succeeds, so the feed never points at a missing file.
folderblog podcast setupwalks you through it and works with an r2.dev address or your own domain (a custom domain is recommended). Keys are kept outside the blog folder. (#16) - An MCP server for AI agents.
folderblog mcplets an agent draft, check and publish episodes. It only publishes after you say yes.folderblog podcast publish --episode SLUGdoes the same from the terminal. The watcher and a publish take turns, so they never build or deploy at the same time. (#17) - Templates to copy. New blogs get a
templates/folder with a sample post and a sample podcast episode. Each lists every front matter field with a short note. To add it to a blog you already have, runfolderblog templates. (#18)
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.6-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.6-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.6-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.6-x86_64-linux.tar.gz and put folderblog on your PATH |
| autonomix-cli | autonomix-cli add https://github.com/ninepointlabs/folderblog |
New to folderblog? Start with the guide, or run folderblog guide. Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.2.5
A small analytics fix on top of 0.2.4.
Fixed
- 404 pages now count as GoatCounter events, not page views. The event is named after the missing URL (
404 host/pathby default), so broken links show up separately from real visits. (#12)
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.5-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.5-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.5-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.5-x86_64-linux.tar.gz and put folderblog on your PATH |
| autonomix-cli | autonomix-cli add https://github.com/ninepointlabs/folderblog |
New to folderblog? Start with the guide, or run folderblog guide. Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.2.4
A bug fix on top of 0.2.3.
Fixed
draft: truein front matter now hides the post from the live site, as the README and guide say. Before, such posts and pages were still built and listed (only the feed left them out). They now behave like files indrafts/: visible infolderblog previewandbuild --drafts, never in real builds or deploys. (#9)
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.4-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.4-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.4-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.4-x86_64-linux.tar.gz and put folderblog on your PATH |
| autonomix-cli | autonomix-cli add https://github.com/ninepointlabs/folderblog |
New to folderblog? Start with the guide, or run folderblog guide. Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.2.3
Better search results and link previews, plus optional visitor counts, on top of 0.2.2.
Added
- Share images. Set
image:in a post's front matter (a path in the blog or a full URL) and it becomes the post'sog:imageandtwitter:image, as an absolute URL, with width and height when the file is in the blog. Posts without one fall back tostatic/og-default.png, or to the new optionalimagekey inblog.toml.folderblog checkwarns when the image doesn't exist. Note: older versions reject unknown keys inblog.toml, so upgrade before addingimageor[analytics]there. (#5) - BlogPosting JSON-LD on post pages in the default theme. (#5)
- robots.txt by default (allow all, plus a
Sitemap:line), unless the blog has its ownstatic/robots.txtor the theme provides one. (#5) - Default theme meta tags. Every page now has a meta description, canonical link,
og:title/og:description/og:type/og:url/og:site_nameandtwitter:card, and the home page has a singleh1(the site title). (#5) folderblog checkwarns whenblog.tomlhas nodescription.- Optional GoatCounter analytics. Add
[analytics]withgoatcounter = "https://you.goatcounter.com"toblog.tomland every rendered page gets the GoatCounter script; works with any theme, no template edits. Off by default, and never added byprevieworbuild --drafts.folderblog checkflags an invalid URL. (#6)
Blogs with their own copy of the theme in theme/ keep their templates; copy the new default theme's _layouts/base.html and post.html to pick up the tags. Run folderblog agents-md --write in each blog folder to refresh its AGENTS.md.
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.3-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.3-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.3-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.3-x86_64-linux.tar.gz and put folderblog on your PATH |
| autonomix-cli | autonomix-cli add https://github.com/ninepointlabs/folderblog |
New to folderblog? Start with the guide, or run folderblog guide. Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.2.2
Adds an optional safety setting for blog folders you keep in git, on top of 0.2.1.
Added
deploy_branchinblog.toml(for exampledeploy_branch = "main"). When set, folderblog only deploys while the blog folder is a git checkout of that branch. On another branch, a detached HEAD, or in the middle of a merge, rebase or cherry-pick, the deploy is held (it shows asheld: ...infolderblog status) and retries on its own once the folder is back on the branch. Without the setting nothing changes. Note: older versions reject unknown keys inblog.toml, so upgrade before adding it. (#2)
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.2-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.2-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.2-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.2-x86_64-linux.tar.gz and put folderblog on your PATH |
| autonomix-cli | autonomix-cli add https://github.com/ninepointlabs/folderblog |
New to folderblog? Start with the guide, or run folderblog guide. Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.2.1
A small fix on top of 0.2.0 (the photo gallery and the step-by-step guide).
Fixed
- A post whose first line is
#Title, with no space after the#, now uses that line as its title. Before, it showed as an ordinary paragraph and the title came from the file name. A#hashtaglater in a post is left alone.
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.1-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.1-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.1-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.1-x86_64-linux.tar.gz and put folderblog on your PATH |
New to folderblog? Start with the guide, or run folderblog guide. Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.2.0
Photo gallery
Turn it on with folderblog gallery on, then drop pictures into the blog's gallery/ folder.
- Folders inside
gallery/become albums; an optionalindex.mdgives an album its title, date, tags and cover - Tag and caption a photo with a Markdown file beside it (
sunset.mdnext tosunset.jpg); every tag gets its own page - Photo pages with captions, camera settings and previous/next links; a full-screen viewer with arrow keys and swipe
- Only resized copies are published, never your originals, so the GPS location stored in phone photos stays private. Resizing is cached, so rebuilds stay fast
- The gallery uses your theme's own layout, fonts and colours;
theme/_gallery/is yours to restyle, andAGENTS.mddocuments every field - JPEG, PNG, WebP and GIF. HEIC and RAW files are skipped with a warning
A guide for everyone
- A new step-by-step guide explains every feature and every command in plain words: docs/GUIDE.md
- Built in:
folderblog guideshows it in the terminal, andman folderblogshows it as a manual page (the packages install it) --helpnow describes every option
Upgrading from 0.1.0
Install the new package below. Existing blogs keep working unchanged; run folderblog gallery on in a blog to add a gallery, and folderblog agents-md --write to refresh its AGENTS.md.
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.2.0-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.2.0-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.2.0-1.x86_64.rpm |
| Anything else | unpack folderblog-0.2.0-x86_64-linux.tar.gz and put folderblog on your PATH |
Verify downloads with sha256sum -c SHA256SUMS.
folderblog 0.1.0
First release of folderblog: a folder is a blog. Save a Markdown file into ~/Blogs/<blog>/posts/ and it's live on GitHub Pages (or anywhere) seconds later.
Highlights
- Background service that watches
~/Blogs, where every folder is an independent blog - GitHub Pages with no manual steps:
folderblog new myblogcreates the repo and switches on Pages on first publish; custom domains and HTTPS included - Logs in through your own GitHub App (device flow); the login renews itself, and you're notified if it expires
- No front matter needed: title, date and URL are worked out from the file
- Safe publishing: fresh builds swap in only on success, so a broken template never takes the site down
- Jinja themes with an
AGENTS.mdcontract, so coding agents can design anything preview(live reload),check(file:line errors, feed validation, broken links),data, fixture content for theme testing
Install (x86_64 Linux)
| System | Command |
|---|---|
| Arch / Omarchy | sudo pacman -U folderblog-bin-0.1.0-1-x86_64.pkg.tar.zst |
| Debian / Ubuntu | sudo apt install ./folderblog_0.1.0-1_amd64.deb |
| Fedora / RHEL / openSUSE | sudo dnf install ./folderblog-0.1.0-1.x86_64.rpm |
| Anything else | unpack folderblog-0.1.0-x86_64-linux.tar.gz and put folderblog on your PATH |
The binary is fully static, so it runs on older distros too (tested on Ubuntu 22.04, Debian 12, Fedora, Arch). Then follow Preparing GitHub, a one-time, 5-minute setup.
Verify downloads with sha256sum -c SHA256SUMS.