Announcing Statocles

Static site generators are popular these
days. For small sites, the ability to quickly author content using simple tools
is key. The ability to use lower-cost (even free) hosting, often without any
dynamic capabilities, is good for trying to maintain a budget. For larger
sites, the ability to serve content quickly and cheaply is beneficial, and
since most pages are read far more often than they are written, generating a
full web page to store on the filesystem can improve performance (and lower
costs).

For me, I like the convenience of using Github Pages
to host project-oriented websites. The project itself is already on Github, so
why not keep the website closely tied to it so it doesn't get out-of-date? For
an organization like the Chicago Perl Mongers, Github
can even host custom domains, allowing easy collaboration on websites.

It's through the Chicago.PM website that I was introduced to Octopress, a
blogging engine built on Jekyll. It's through using Octopress that I decided to
write my own static site generator,
Statocles.

Like the most popular static site generators, Statocles uses Markdown to
generate HTML. Simple, readable plain text becomes HTML using
Text::Markdown. A small bit of YAML
on top allows for metadata like tags, keywords, and links. If you want to
change formats, or even store your documents in a database instead of on a
filesystem, you can write a custom store module.

Though currently primarily a blog and simple web site, Statocles is intended to
be an application framework, allowing for custom ways to organize and display
content.

Statocles can deploy itself to Git repositories, including Github, but it can
also copy to another directory to be served by the local web server. If you've
got another way you need to deploy, you can write a custom deploy module.

With this announcement, Statocles is beta-quality. The big API changes I wanted
to make are out of the way, and I'm working towards some useful developer
features before I mark a 1.0 stable release.