Caro, a New Static Site Generator

2023-01-02

TL;DR: The generator for this site is now open source. You can access the source code here.

The reasons for this are two-fold. The first: why not? The second: I owe an immense debt to open source and it’s only fair that I repay that debt as best I can.

The first version of this site was built using Gatsby, an open source project.

The next version of this site was built using SSG5, an open source project.

The prior version of this site was built using Pandoc, an open source project.

Yet for the time I was using these open tools the actual underlying code for this site was closed off. Look, don’t touch.

But over the past few months I’ve been trying to get more involved with open source. I’ve been actively making improvements and refinements to the projects that I use on a daily basis; gradually coming to terms with what ‘open’ really means for software. Open to improvement. Open to scrutiny. Open to collaboration. I cannot understate how energising the feeling of encountering a problem in some program you use, writing a fix for it, and then seeing that change distributed to hundreds if not thousands of potential users is.

So in the interest of giving back to what the open source community has given me, this post serves as an announcement for Caro, my static site generator.

The included README goes into more detail on getting up and running. As an overview however, Caro is a Perl-based static blog generator backed by smu intended for text-only sites. Caro is customisable, easy to extend, and fast.

Caro tries to strike a middle-ground between being easily customisable and extensible without becoming overly complex or requiring dozens of external dependencies. In fact, users are encourage to fork the project and add their own features and tweaks as needed.

Out of the box, Caro handles generating HTML from Markdown, inlining and compressing CSS, generating chronological blog post listings, and generating an RSS feed. Where possible, Caro tries to include sensible defaults to help you get up and running quickly.

If you’re frustrated by slow build times, hesitant about build systems with hundreds of dependencies, or are just looking for something new, Caro might be for you!