Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status


This is the source code to my personal blog and website.

How it's built


A majority of the website's page content is stored in the /data/ directory in HTML or MD files. I started with HTML but soon decided that Markdown would be more future proof as it could easily be ported between websites without much work. It allows also the viewing of the content on GitHub in a pretty way.

The /data/ folder also contains JSON files which describe the pages that there are. For examaple, blog.json looks something like this:

    "path": "/blog",
    "name": "blog",
    "pageTitle": "Blog",
    "pageGroup": "blog",
    "metaDescription": "Read about my latest thoughts and experiences in the world of web development.",
    "controller": "blogs"

This file defines that if the website is visited at /blog/, then a page will be returned using the blogs controller.

I used this approach to avoid the overhead of using a database.


Built using EJS.


Sass is used to style the website. Susy is used as the grid system to give me full control of the website.


Nothing fancy here, just pure.js.


Gulp is used for development. I must warn anyone that the gulpfile got a little out of hand - it's been made pretty by using Blessed to make windows in the terminal window which data is printed to.

Gulp - using Blessed to create a fancy terminal interface

Running npm start (which runs gulp --silent) compiles the SCSS, JS and starts the website. Make sure to run npm install before trying this.



IIS is used to run the live site as I already have a Windows server. This is done by using IISNode and changing the /server/config.js type to iis.

I actually have a whole blog post on how you can setup IIS to run NodeJS websites using NodeJS:


Found a bug on my site? Think there's a feature missing? Found a typo in a blog post? File an issue or send me a pull request!