Up until this one, all the other posts have were written before I had a live site. That's because I was umm'ing and arr'ing on what platform and more, specifically what type of platform I'd build it in. I finally settled on a static blogging platform called Pelican. Pelican is a static site generator written in Python. Static site generator's are becoming popular amongst tech bloggers for the advantages they give to those looking to write a small personal page.

Online Content Management Systems

The major alternative to static generators like Pelican are the big database driven Content Management Systems (or CMS) of which the most well known is Wordpress. These are fantastic if you want to create sites with hundreds of posts from multiple users. However, they become less useful when running a small personal blog. Online CMS's work by using a database held on a server to generate the site every time you visit it. This has the advantage of; making content easy to create, allowing multiple users to create that content and allowing scalability in the functionality and pure size of the site itself.

Systems like Wordpress, Blogger and Joomla allow users with no knowledge of web languages to make professional looking sites quickly and easily. The downside to this relates to the databases they are built on and where the sites are created. Generally online CMS's are more vulnerable to database exploits and security flaws, having the site being generated by the database simply creates another point of failure to the website. They are also slower to load when you visit them than static HTML pages. And boring.

Static Content Management Systems

The last point is probably the main reason I went with a static site generator. I wanted to learn something new and frankly systems like Wordpress made it too easy. Pelican is a static site generator. It lives on my computer and generates the pages here using clever code and then pushes them to the internet for you to read or ignore. A static site generator takes files usually written in a form of simplified HTML such as Markdown or reStructuredText. It then uses those with lots of clever scripts to create a site which is, in a sense 'static'. That is it is held as files on a server and there is no database to generate the pages. A bad analogy would be the difference between a poster and a screen. The images and text on the poster were added to it when the poster was designed by a person and then printed by a printing press. A screen also holds an image but that image has to be created, generated and then sent by cables (or over the air) to the screen before the person looking at it can see it.

The advantages of this are the pages load lighting fast, have better security (for something connected to the internet) and satisfaction. I like how it works, it's very elegant and pleases the part of me that likes getting things to work that take a bit of tinkering. This is probably the main disadvantage with the current crop of programmer focussed static site generators, they are difficult to build. But it is perversely the exact reason I'm using one.

So it took me months to build a page that could have taken me hours, and that's why it's good. Hmmm.

In the next post or two I'm going to go over exactly how I set up Pelican to build my site. The initial setup, config files, server settings and how you actually write content for it once you've done all that work.


comments powered by Disqus