Skip to main content

First post with Nikola

I guess that most people come from dynamic content management systems based on:

  • send data from browser to server
  • process the received data, then it stores the info into a database (or files)
  • the server generate dynamically an answer that is sent to the browser as HTML
    • the answer is usually built reading info from a database or files.

This process is managed by a software installed on server, this is our content management system.

Now I've changed the paradigm to "static web site generator", specifically I'm going to use Nikola, although this time, I'm not going to install on a remote server.

In a next post I'll tell you how I've automated the publication process using Github [1] and Travis [2].


My first content management system, yes it still exists. It based on PHP+MySQL, multi-lang, user management, user groups, theming, plugins, etc.

My Own Content Management System

It wasn't a full [CMS], because actually it was a blogging system. I can publish posts dynamically, it was made with PHP and MySQL. It was useful to:

  • Publish posts (with several problems).
  • I realized that a developer needs a designer.
  • I don't like the PHP syntax.
  • I began to understand the importance of [DRY].


A full [CMS], I liked it until things began to "break" (Maybe I broke some of them). But Drupal has everything you expect from a [CMS] and more.


I don't know if it is better or worse than Drupal, there are many discussions on the Internet, but I can tell Wordpress is more usable and easier to update than Drupal.


It is my second attempt to create my own [CMS]. I had an idea in my mind about how to make the core design (the data model), I still believe in that design. I had also discovered Django, I liked this framework developed in Python, who can resist creating their own [CMS]? CMSdj is in Bitbucket and is working, it has its internal search engine, theming, comment system, voting system,HTML5_ + CSS3 views, but:

  • I didn't have enough time to develop it, two hours per week at most.
  • I still needed a designer.

So, I declared the project CMSdj dead out of boredom, although it was supporting my old blog, when I went to write something, I saw my unfinished project, I didn't like it, so I decided to close it and begin a new one.


I wanted a static website generator because they are trendy. I tried Jekyll because it's the most famous, but I prefer one written in Python. So, after a quick search I had three finalists: Nikola, Mynt and Pelican. I chose Nikola because I discarded the others: * Pelican throws some multi-lang problems with the categories. I didn't want to spend time researching about how to fix them. * I love the simplicity of Mynt, but you have to create your own themes.

[1] Github hosts the generated site, the static files (html, css, images, js).
[2] Travis is a continuous integration software (like Jenkins). I use it to automate the site deployment: download the files when they change from Github, re-generate and re-publish the static files.
[DRY] Don't Repeat Yourself, ´DRY in wiki´_
[CMS] (1, 2, 3, 4, 5) Content Management System


Comments powered by Disqus