Introducing Ssite: An Engine for Handwritten Static Sites

on

Update: : I have posted a retrospective of 5 years using ssite with more details on how I'm using it and why. Previously this page announced a tool called Locoloco. That name was not respectful of those with mental illness. I have changed the name to ssite, which also better reflects its purpose.

Say hello to ssite, the little blog engine that doesn't do much. This past weekend I built a blog engine to keep my site organized. It differs from existing engines in that it does much less. It generates an index without templating or modifying the articles at all.

You can check out the code on GitHub.

What's the point?

For various reasons, I have decided to keep my blog as simple, static HTML. There are many existing tools for this, such as the popular Octopress, Jekyll, and Hyde. In these solutions, one writes articles in plain text, Markdown, or a template language of some sort. I would like to keep my blog articles as plain HTML rather than generating them. Therefore, ssite generates an index of the articles and nothing else.

The reason for doing things this way is two-fold. First, it fits my workflow better. I keep my blog synced to multiple computers on multiple different platforms. It was a pain to keep the same versions of the dependencies on Linux, Mac, and Windows.

The most important reason I choose to keep the blog updated this way is stability. I have observed that sites from the 1990s which were written in plain HTML still work well today, even if it may look a little dated, but sites that depend on dynamic generation (including some of my early projects) are now defunct. By keeping things simple, I hope to make it more likely that links to sites that I built will continue to work long after I'm gone.

Getting started.

Update: : These instructions no longer work with the latest version of ssite. Check out the GitHub repository for the most recent instructions.

Using ssite is pretty easy.
blogindex.py $BLOGDIR
It should "just work" if you use the same date-based directory scheme of YYYY/MM/DD/post-title/index.html that I do.