Goodbye Wordpress, Hello Jekyll

I've had a WordPress blog for several years, added posts sparingly in those years and customized the different installations and plugins available for WordPress in order to get it looking just right. I also designed a few custom WP themes for clients and administered blogs and performed necessary updates for them. Everything about WordPress is great. It is perfect for writing, content management, and for organizations of any size that needs a publishing platform that includes publishing workflows, custom widgets, and permissions levels for users. WordPress is the best option available really for an easy to use CMS

I’ve had a WordPress blog for several years, added posts sparingly in those years and customized the different installations and plugins available for WordPress in order to get it looking just right. I also designed a few custom WP themes for clients and administered blogs and performed necessary updates for them. Everything about WordPress is great. It is perfect for writing, content management, and for organizations of any size that needs a publishing platform that includes publishing workflows, custom widgets, and permissions levels for users. WordPress is the best option available really for an easy to use CMS

But what if you want something simpler or what if you want to develop,write, and test code outside of WordPress? I found I wasn’t paying much attention to my blog and ran updates when I needed to or tested a plugin, but that was about it. I wanted something that would allow for writing but didn’t have all of the bells and whistles that WordPress came with that I wasn’t using or didn’t need. I also wanted a platform that let me apply code or frameworks when I wanted to without always relying on a CMS to lay it out for me. I realize this is not for everyone, but with Wordpress I was basically bored.

###Meet Jekyll.
http://jekyllrb.com/

I had heard of Jekyll when looking at the GitHub pages platform as a static blog publishing platform. Jekyll is a simple, static site generator that is capable of running a blog. It uses templates and raw text files in various formats, runs it through a converter (like Markdown) and spits out a complete, ready-to-publish static website. Jekyll uses the Liquid templating language to process templates and most pages are written in markdown, but basic html can be used.

This appealed to me for several reasons. Static sites are generally faster and do not rely on databases for their content. They also do not rely on updates to platforms or plugins, but are still capable of running a blog and static pages that can have custom layouts. There is a security advantage to static sites since they are less likely to be hacked. Jekyll blogs can include permalinks, categories, and pages can have page slugs which are incredibly important for SEO. Another added bonus is depending on what your hosting plans are, Jekyll will be cheaper since you can host with GitHub Pages for free, or pay a few dollars a month and use Amazon’s S3. Since it doesn’t need a database your costs drop significantly.

###Setup and Installation

Installation includes installing the Ruby Gem-Jekyll, opening a terminal window and pointing it at a directory and running the jekyll serve command. One this is done, any changes to your site or blog can be viewed via your localhost - http://localhost:4000/

 $ gem install jekyll
 $ jekyll new site
 $ cd site
 ~site $ jekyll serve

Once installed, at this point you can begin configuring your site and adding your content and blog posts. You can also apply themes to your site and tweak the CSS and formatting, and there is a browseable theme repository at jekyllthemes.org that includes themes built on popular frameworks. There are several themes that use the Bootstrap framework, a few that use Foundation, some designed specifically for blogging, and others that can be used to showcase services or act as a general website, all which can be downloaded and applied to your site. Most themes, as well as the out of the box theme are using Sass, and they can be completely customized or edited to your heart’s content. If choosing a theme I recommend looking at and testing multiple themes for a week or so, including adding posts and pages and customizing the layout before settling on anything. I tried about 10 themes, as well as customizing the default theme before I eventually settled on the Feeling Responsive theme which uses Foundation.

###Hosting

I had looked at running the site on GitHub pages with a custom domain, but opted to instead used Amazon S3 since the site would be small in size and after using the AWS monthly calculators to estimate the cost I realized the costs would be ridiculously small. Using the S3_website tool I can serve the site up and publish to S3 easily, while keeping a local copy on my machine as a backup. If you are using GitHub Pages, you simply have to push your changes to a repository setup to act as the GitHub Pages account. There are a number of guides on publishing and hosting jekyll sites, and the process using S3 that I followed was documented on Daniel Whyte’s blog. Using S3_website, the basic procedure is once you have made an edit, added a blog post, or updated a page, simply run the s3 command to push your changes to the S3 bucket. This updates your website instantly.

I’ve migrated away from all things WordPress at this point as well as the managed hosting companies. Should be interesting, but right now I don’t see any issues and am definitely not looking back.

Resources: