Announcing BSSG 0.40.0: RAM-First Build Mode, Fediverse Integration, and Semantic HTML Overhaul
I am glad to announce the release of BSSG version 0.40.0!
In the 0.33.0 release notes, I mentioned that I was working on a partial rewrite to run the build pipeline entirely in RAM. I am thrilled to say that this highly anticipated feature is finally here, alongside a massive overhaul of the build pipeline, semantic HTML improvements, and exciting new integrations.
Key Highlights in 0.40.0
The New "RAM-First" Build Mode
As promised, version 0.40.0 introduces a massive performance overhaul. On systems with slow I/O, BSSG could previously suffer from poor performance. The new "RAM-first" build mode aims to deliver significantly faster full rebuilds with much lower disk churn.
New Configuration Option:
# Control build mode in config.sh.local
BUILD_MODE="ram" # Use the new memory-first path
BUILD_MODE="normal" # Revert to previous disk-backed behavior
You can also trigger this on the fly using ./bssg.sh build --build-mode ram. Large builds now report stage timing output, so you can see exactly where time is spent during generation.
Fediverse Creator Metadata & Profile Verification
BSSG now provides robust native integration for Mastodon and the broader Fediverse. You can now attribute posts to Fediverse creators and seamlessly verify your site ownership on your profile using rel="me" links.
# Add to config.sh.local for site-wide verification
FEDIVERSE_CREATOR="@username@mastodon.social"
REL_ME_URL="https://mastodon.social/@username"
# REL_ME_URLS=("https://url1" "https://url2") # For multiple profiles
You can also override attribution per-post via fediverse_creator: in the frontmatter, or map specific authors using AUTHOR_FEDIVERSE_CREATORS.
(Note: If you use a custom <head> template, update it to include the {{fediverse_creator_meta}} and {{rel_me_link}} placeholders. The bundled templates already include them!)
Smarter Rebuilds & CLI Overrides
Incremental rebuild behavior is now much smarter, with better file caching and stricter dependency checks. Asset pre-compression is incremental and parallelized. Additionally, we've improved GNU parallel integration and added shell-worker fallbacks for systems where it isn't available.
Working with BSSG from the CLI is also much more flexible. You can now override configurations directly via flags:
./bssg.sh build --site-title "My Blog" --author-name "Alice" --posts-per-page 10
Semantic HTML, SEO, and 8 New Themes
We’ve standardized list-page article headings from <h3> to <h2> across the homepage, archives, authors, tags, and secondary pages to improve heading hierarchy, accessibility, and semantic consistency. All existing themes have been carefully updated to match this new markup.
We've also fixed og:title and twitter:title tags, which now strictly use the post/page title rather than awkwardly appending the site title.
Finally, we are thrilled to introduce 8 new themes: liquid-glass, freebsd, netbsd, openbsd, field-journal, microfiche, museum-label, and mynotes. Theme preview generation is also vastly faster thanks to a smart clone-and-swap workflow!
Thank you to all contributors for making BSSG more powerful and accessible!
No additional dependencies or server configuration required for this update.
Get the Update!
Because this is a major pipeline and template update, upgrading requires a few extra steps compared to usual:
- Pull the latest changes from the repository.
- Review your
config.sh.localand decide your build mode (BUILD_MODE="ram"or"normal"). - Update your custom
<head>template (if you have one) to include the new Fediverse placeholders. - Run a clean rebuild to ensure the new HTML semantics and pipeline caches apply correctly:
./bssg.sh build --force-rebuild --clean-output true
No content migration is required. Existing posts and pages will continue to work unchanged, and all new metadata features are entirely optional.
Looking Forward
Now that the RAM-first rewrite is out in the wild, the focus for the next updates will be on refining these new performance improvements, expanding the template engine, and gathering community feedback on the new generator boundaries.
As usual, you can download this release using the following link:https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.40.0
A huge thank you goes out to everyone in the community for your continued feedback, bug reports, and contributions. Your input is what drives BSSG forward.
Happy building!
Stefano