I’ve been creating websites for sometime now. However, I’ve never taken the time to create a website for myself. As a developer, I needed a very lightweight method to create content which didn’t take up much time. Although I create numerous sites which CMS systems (e.g Wordpress, Silverstripe), I personally find the process of using them very lengthly. I tend to create content quickly using markdown files. In the end, I opted to build this blog using a static site generator - Jigsaw.

##What is Jigsaw? Jigsaw is a static site generator created by Tighten Co which bases it’s template structure on Laravel Blade. It allows for the use markdown language, blade templates and/or other templating languages to create static sites which are compiled to create a full html website. Furthermore, it has pretty urls baked in to remove the .html extension from the URL.

Blade templates work similar to your standard template in a CMS, which provides comfort in the writing process. Once compiled, I simply push my blog changes up to a git repo which hooks to serve onto my server.

##Installing Jigsaw Jigsaw requires you to use the command line terminal. You will need to get familiar with the command line terminal to use jigsaw (and other important command line apps).

###Via single requirement… You can create a new jigsaw project once by running the following command (ignoring the $)

$ mkdir new-jigsaw-folder && cd new-jigsaw-folder
$ composer require tightenco/jigsaw
$ ./vendor/bin/jigsaw init

Then you will be able to compile your site using

$ ./vendor/bin/jigsaw build

###Or, install jigsaw globally Alternatively, If you would like to install jigsaw globally via composer, run the following command

$ composer require global tightenco/jigsaw

which then will allow you to run the following whenever you like (make sure ~/.composer/vendor/bin is in your $PATH)

$ jigsaw init

and build using

$ jigsaw build

##Folder Structure


All content for the website is kept within the source folder (templates, css, images).

Jigsaw comes with files need for gulp straight out the gate, so running npm install or yarn will install the node_modules required. To compile the site, you simply need to run:

jigsaw build

This will compile the file to a .build_local by default (which can be changed if required). My method is to publish to public once completed, and point my domain to view the pubic folder on my server. This means pushing my git repo with draft content won’t show on the live site.

I won’t go into too much detail with the rest of the process as the docs of Jigsaw are very helpful.

Hopefully you find this useful. Thanks for reading and welcome to the blog!