The site is powered with Ghost and is self-hosted on Linode:

Ghost: The #1 open source headless Node.js CMS
The world’s most popular modern open source publishing platform. A headless Node.js CMS used by Apple, Sky News, Tinder and thousands more. MIT licensed, with 30k+ stars on Github.
Linode | The Independent Open Cloud for Developers
Our mission is to accelerate innovation by making cloud computing simple, affordable, and accessible to all.

Tips and Tricks


I'm using the Attila theme. It's actively developed, free, and offers quite a few configuration options. I've tried a few others and always end up back here.

Ghost Theme. Contribute to zutrinken/attila development by creating an account on GitHub.

Adding a Table of Contents

This is one of my favorites. It makes use of the H1 and H2 tags in your page to create a table of contents at the top of the post.

Add a dynamic Table of Contents to a Ghost blog
Dyanmic table of contents for a Ghost blog using Javascript.

Add an HTML block to the bottom of your post and use this:

<script src="" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script>
    var contentsTitle = "Table of Contents"; // Set your title here, to avoid making a heading for it later
	var ToC = "<h2>"+contentsTitle+"</h2>";
    ToC += "<nav role='navigation' class='table-of-contents'><ul>";
    var first = false;
	$("h2,h3").each(function() {
		var el = $(this);
        if (first === false) {
        	first = true;
            $('<span id="dynamictoc"></span>').insertBefore(el);
        var title = el.text();
		var link = "#" + el.attr("id");
        if ("h2")) {
			ToC += "<li><a href='" + link + "'>" + title + "</a></li>";
        } else if ("h3")) {
        	ToC += "<li style='margin-left:2em'><a href='" + link + "'>" + title + "</a></li>";
	ToC += "</ul></nav>";
TOC Code.