Today marks the first stable release of Staticli - a commandline application which provides a number of different static site generators in a single binary package.
Staticli was born out of the desire to be able to more easily support people in contributing to a number of Jekyll-based blogs that we help maintain. Whilst we’ve provided Docker-compose files to render Jekyll sites locally for a while, they’ve been based on a community Docker image that frequently breaks and
docker-compose up is still quite a large barrier to entry for somebody who just wants to write a blog post.
So Staticli was created to make rendering a Jekyll website locally really easy, particularly on MacOS where installing a new enough version of Ruby can be challenging. Staticli is one single binary file to download, and the only requirement is having Docker installed and running - which on a Mac can be done with a
brew install. Staticli is cross-platform with versions available for MacOSX, Linux x86_64 and Linux Arm (although most testing and development is currently done on a Mac).
Since the initial version that got people up and running with previewing Jekyll blogs locally, we’ve since added Gulp for compiling scss to css, proselint for checking text style, and a number of other tools related to working with static websites as and when we’ve needed them. Because each command is provided by a Docker image which is only downloaded on first run, the application does not become bloated as more and more applications are added. If the static website generator tooling you use isn’t currently supported by Staticli then the odds are it would be really easy for us to add it in.
Staticli is our first public Go application. The first versions were very quickly released after hearing a talk on Cali, the framework that it Staticli is built on. Cali makes it very easy to build commandline applications for distributing developer tools as docker images, and is based on the developer tooling that Sky Betting & Gaming use internally.
We’ve also started work on datali, a similar tool for packaging up data applications. This was born out of the need to build some monitoring tooling for a streaming application, and is still very early in its development.