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

Announcing BSSG 0.32.0: Asset Pre-Compression, New Themes, and Performance Boosts

Published on: by Stefano Marinelli

Updated on: • 3 min read

I am thrilled to announce the release of BSSG version 0.32.0! This release is centered on delivering a significant performance boost, expanding our theme library with fantastic community contributions, and continuing to refine the developer experience. With optional asset pre-compression and two beautiful new themes, BSSG is now faster and more versatile than ever.

This update is all about speed and community. It's making your sites load faster for visitors and celebrating the creative contributions from our users.

Key Highlights in 0.32.0

1. Asset Pre-Compression for Maximum Performance

The flagship feature of this release is asset pre-compression. When enabled, BSSG will automatically create gzipped versions of your text-based assets during the build process.

Lightning-Fast Load Times:

  • Gzip Compression: Automatically compresses .html, .css, .xml, and .js files.
  • Reduced Bandwidth: Smaller file sizes mean quicker downloads and lower data usage for your visitors.
  • Seamless Integration: Modern web servers like Nginx and Apache can automatically serve these compressed files to compatible browsers, resulting in a significant speed boost with no change in user experience.

Simple Configuration:

# Control pre-compression behavior in config.sh.local
PRECOMPRESS_ASSETS=true    # Enable/disable the feature (default: false)

2. New Themes from the Community

This release proudly introduces two new themes, including a wonderful contribution from the community.

"Thoughtful" Theme:

  • A warm, accessible, and performant theme designed for personal reflection blogs and thoughtful, long-form writing. It creates a calm, focused reading environment.

"Cyber-Dark" Theme by Nigel Swan:

  • A stunning cyberpunk-inspired theme with a unique neon shadow style.
  • Expertly crafted by community member Nigel Swan (lowkey.party). A huge thank you to Nigel for this fantastic addition!

3. Dependency and Font Cleanup

Google Fonts Leftovers Removed:

  • To enhance privacy and align with the goal of self-hosting all assets, remnants of Google Fonts have been completely removed from the codebase. This ensures your site makes no external requests for fonts, giving you full control over your assets and user privacy.

Technical Implementation Details

Pre-Compression Workflow

The new pre-compression system is integrated directly into the build pipeline for maximum efficiency:

  1. Asset Identification: After the main site build is complete, the script identifies all text-based assets (.html, .css, .xml, .js).
  2. Gzip Execution: Each identified asset is compressed using gzip, creating a corresponding .gz file (e.g., style.css becomes style.css.gz).
  3. Server-Side Handling: To take advantage of this, your web server needs to be configured to serve the .gz file when a browser requests the original. For example, with Nginx, you would enable the gzip_static directive.

This approach ensures that the computationally expensive task of compression is done once at build time, not on-the-fly for every visitor request.

Important Update Notes

Backward Compatibility:

  • Asset pre-compression is disabled by default to ensure zero breaking changes. You must opt-in via configuration.
  • All existing sites will continue to build and function exactly as before without any changes.

Performance Impact:

  • Enabling pre-compression may slightly increase build times, but this one-time cost results in a dramatic improvement in site loading speed for your end-users.
  • The new themes are highly performant and built with modern standards.

Theme Integration:

  • The new "thoughtful" and "Cyber-Dark" themes can be used immediately by setting the THEME variable in your configuration.

Get the Update!

Ready to speed up your site and try out some new looks?

Upgrading is as easy as ever:

  1. Pull the latest changes from the repository.
  2. To enable the new performance feature, add PRECOMPRESS_ASSETS=true to your config.sh.local.
  3. Configure your web server to serve pre-compressed assets.
  4. To try a new theme, update the THEME variable in your config (e.g., THEME="thoughtful" or THEME="cyber-dark").

Looking Forward

BSSG 0.32.0 reinforces my commitment to two core principles: outstanding performance and a strong, creative community. The asset pre-compression feature provides a powerful tool for site optimization, while new themes from contributors like Nigel Swan make the entire ecosystem richer.

I will continue to focus on features that make BSSG sites faster, more accessible, and easier to manage, all while celebrating and encouraging community involvement.

As usual, you can download this release using the following link: https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.32.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