Development notes, release, and insights on BSSG - Bash Static Site Generator

BSSG Update: Introducing Per-Tag RSS Feeds

Published on: 15-04-2025 12:18:19 • 2 min read

Hello again BSSG enthusiasts!

I've just pushed another useful enhancement directly to the main branch in the BSSG git repository, aimed at improving how your readers can follow specific topics on your site: Per-Tag RSS Feeds.

Subscribe to What Matters Most

Until now, BSSG generated a single RSS feed containing all posts from your site. While essential, this "all-or-nothing" approach might not be ideal for readers only interested in specific topics you cover.

With this new feature, you can now configure BSSG to automatically generate a separate, dedicated RSS feed for each tag you use across your posts.

Why is this helpful?

  • Targeted Subscriptions: Readers can subscribe only to the tags they care about (e.g., just release announcements or only tutorial posts), receiving updates specifically relevant to their interests.
  • Reduced Feed Noise: For readers following multiple blogs, this helps reduce the clutter in their feed reader by filtering content at the source.
  • Enhanced Discovery: BSSG automatically adds the necessary <link rel="alternate" type="application/rss+xml"> tags to the corresponding tag index pages. This allows modern feed readers and browsers to auto-discover these tag-specific feeds when visitors browse your site.

How to Enable It

This feature is enabled by default. To turn it off, simply add the following variable to your site's configuration file (usually config.sh.local):

# config.sh.local
ENABLE_TAG_RSS="false"

When enabled and you next run ./bssg.sh build, BSSG will:

  • Identify all unique tags used in your published posts.

  • For each tag (using its URL-friendly slug, e.g., my-cool-tag), generate a corresponding RSS feed.

  • Place these feeds within your output directory at the path: ${OUTPUT_DIR}/tags/<tag_slug>/rss.xml (e.g., output/tags/my-cool-tag/rss.xml).

  • Automatically add the auto-discovery tags to the HTML head of the relevant tag index pages (e.g., output/tags/my-cool-tag/index.html).

Your main site-wide RSS feed (e.g., output/rss.xml) will continue to be generated as usual, regardless of this setting.

Availability

This feature is available right now in the main branch of the BSSG git repository. You can pull the latest changes to start using it immediately. It will, of course, be included in the next official tagged release.

Give it a Spin!

I believe this adds significant value for your readers by offering more granular control over how they consume your content. Update your BSSG copy from main, enable the setting in your config, rebuild your site, and let your readers know about the new subscription options!

As always, feedback and bug reports are welcome via the issue tracker.

Happy (topic-specific) blogging!

Stefano