Today I “soft released” a static web site architecture named Hera. Hera evolved over the past couple of months out of some experimentation with Jekyll, Haml and Sass. Jekyll, created by Tom Preston-Werner, is a static blogging platform that is quickly catching momentum in the development community. After dealing with several hacking attacks and injections on my WordPress blog I was ready to try something new, and Jekyll fit the bill.
Going back to a static based website seems to be against everything I have built in my 15 years of development. I have always pushed for dynamic content, pulled from a database and manageable with an admin panel or CMS. Once I started digging into Jekyll I began to love the simplicity and granularity of it, watching it generate the structure. At the same time I had also began playing with Haml and Sass. Haml is a markup “beautifier” which will take a template created with more elegantly written syntax and convert that template to HTML. Sass is a similar counterpart to haml, but on the CSS side. Working together Haml and Sass will empower you to write simpler, more powerful templates to base create your website. Sadly, out of the box, Jekyll doesn’t have Haml and Sass built in. This is ok as Jekyll is a stand alone tool just like Haml and Sass, and not meant to be an end all tool.
Over the next few weeks I played with Jekyll, created Haml and Sass templates, tied that into Jammit to minimize my production css and js scripts, and deployed the whole package with an rsync script via ssh. Pretty geeky no? So my first phase was to create a rake based script to tie it all together…using Jekyll to build a site whose templates are auto-generated by using Guard and Guard-Rake to compile the Haml and Sass templates. This worked great so I decided to open source the structure and sent a private GitHub repo link to Garth Braithwaite. He thought it was cool and started handing me ideas on how to improve it. Initially we named the project “Hyde” but after some research it was apparent that name was very popular with similar architectures based on Jekyll. So I began to look for a new name.
This is where it gets really geeky, so hold on for a bit. I first went for “Hydra” thinking I was working with a multi-headed framework, but it is a popular name as well. I then starting searching for things related to the hydra and came upon “Hera”. Hera is the Greek Queen of the Gods who raised the Hydra to kill Heracles. I searched for a while and there was basically no use of the name anywhere, especially on rubygems.org. I snagged it and so “Hera” the static website architecture was born. I developed Hera as a Ruby Gem to ease install, automatically install the dependent libraries needed with Bundler and offer a few quick commands to simplify the manual commands I have been using to build a static website. Hera is completely open source and ready for contributions in any form.
So I present Hera, an elegant and easy to use static web site architecture. Implementing Jekyll, Haml, Sass, & Jammit to bring a static website to life fast. Hera was developed to reduce setup time, promote clean code, and instantly set up the typical dependencies when working with popular web frameworks. The next phases will include more template options, pulled in by using, for example, “hera —init —simple”, “hera —init —blog” or “hera —init —appsite”, etc. I plan on offering a quick prototyping structure to let developers create templates and request to add them to the hera gem.
Please check it out, fork it, contribute, critique, request features and most of all pass it on. Learn more about Hera.