A few years back, I moved from a fairly generic Wordpress-based blog to a statically-generated system based on secondcrack. It was a fairly simple system, that I immediately hacked up to add different post types, lists, and other taxonomy-like things. And I pretty much stole the look and feel of the primary site secondcrack was built for.
It worked out pretty well, overall, but I did notice at times that it was a little too bare-bones. Especially difficult was navigating past a really long post at the top of the page, to get to something shorter and totally different buried beneath it.
Fast forward to about a month ago, when a nice dinner conversation with Brian Katz helped me to realize how out-of-date this blog was, how much I actually missed blogging, and how much the underlying engine and design was holding me back. I went home determined to improve the system at all levels, and very quickly decided that rather than continuing to hack someone else’s PHP code, I’d see what else was out there.
Enter Hugo. I looked briefly at several static engines (I really don’t have any interest in a heavy, “dynamically generated” site), but Hugo really caught my eye. Especially of interest was the fact that it supported multiple, user-defined taxonomies – so I can have categories, sections, lists, or whatever else I want to build to better sort and access all the silly things I write here. It looked like I could use the engine with no hacking whatsoever, and get all the new features I wanted. This was a huge plus, and so I started rebuilding…
It wasn’t long before I decided that, yes, this is definitely the way I need to go. Then it just became a question of building all the CSS and layouts and everything that I needed. A few marathon evenings later, and I’d arrived at pretty much the new design you see here today.
This new system, as I’ve configured it, supports:
Multiple content sections – so I can separate Infosec stuff from fun home projects from miscellaneous rants
Different content types – so I can (eventually) build different templates for (for example) link posts as compared to “normal” posts as compared to strictly reference pages, etc.
Three sets of taxonomies – basic tags (to help group similar posts together), lists (to group pages of a specific sort of focus, like all the presentations I’ve given) and multiple series (in case I might want to do a group of linked articles).
Responsive design – so that the page is easily read on a phone-sized interface.
I also moved the site off the Linode host that’s been its home for the last few years, to an Amazon S3 bucket. I’d hoped to build out a “git -> trigger -> S3 -> lambda -> output” chain, so I could simply push new content to a repository and have it magically regenerate, but I couldn’t get any of them to work just right. But the alternative I’m using, building locally and using the AWS command line sync command, is pretty fast and easy anyway. Another side benefit of hosting through S3: world-wide CDN edge caching and free TLS certs.
There’s still a lot I need to do. The CSS (and underlying layout) is still a bit of a mess, and the design itself needs a little tweaking. I want to try and reduce the tag display for each section to only include the count of posts within that section (currently, for example, the “cryptography” tag will lists the total count of related posts across all sections, not just within, say, Infosec or Puzzles). And I need to come up with some kind of a way to browse “archives” – even just lists of all posts in a given section.
Plus I need to build out some scripts and tools to make drafting, publishing, and updating the site easier.
But in general, I’ve been really pleased with how it’s turning out. Hugo has definitely given me tremendous flexibility as far as how I can configure the content on the site (as far as arrangement and indexing), and I’ve only just begun to scratch the surface.