Aleksi Aaltonen

Blog · Work · Publications · More

Technologies Powering

My website is a humble system that consist only a few pages stitched together using services and components from many, completely different parties. There is nothing surprising to this, which is probably one of the most surprising thing about the contemporary digital ecosystem (see, for instance, Yoo, Henfridsson and Lyytinen, 2010; Varian, 2010). The following rundown is a testament to the power of cheap, loosely coupled digital components that have fairly standard interfaces that even a trained social scientist like me can understand.

My philosophy for choosing the building blocks was to use components that...

  1. provide the needed functionality with minimum customization,
  2. carry as little bloat as possible, and
  3. are reasonably mature.

The reason for (1) is that the more I have to customize the more I will reveal that I am neither a visual designer nor a programmer. (2) runs from my experience that less features means less badly implemented features and easier fixes when something goes wrong. Finally, mature components are less likely to break something when they are being updated (3).

The list of 11 technologies

<img src="/images/gandi-logo-136x42.png" alt="Gandi" width="68" height="21" class="remove-bottom">
I have been using Gandi to manage domain names for years. They also offer a hosting service with Python scripting, git source control, etc. that fit my setup perfectly.

<img src="/images/git-logo-136x56.png" alt="Git" width="68" height="28" class="remove-bottom">
I had to learn to use git source control system to keep things in order. It was much less painful than I expected – thanks to this tutorial.


Retrieving the latest tweet in real-time for each front page request is not a good idea. anacron is a periodic command scheduler that triggers a script to query Twitter API once per hour.


I pull the latest tweet from my Twitter account using tweepy package from Python Package Index (PyPI).

<img src="/images/bottle-logo-136x48.png" alt="Bottle" width="68" height="24" class="remove-bottom">
Bottle is a fast, lightweight WSGI framework for Python. It is quick to set up, allows keeping things tidy, and can be extended as the website grows.


Skeleton is a minimalistic, responsive HTML/CSS framework that looks good out of the box, is easy to customize, and works well on different devices and browsers.

<img src="/images/markdown-symbol-136x84.png" alt="Markdown" width="68" height="42" class="remove-bottom">
Markdown is a simple syntax for including formatting commands in plain text files without compromising their readability. I use markdown2 package from Python Package Index (PyPI).

microdata metadata

Microdata formatted inline metadata help search engines to identify key entities within the content and display them properly.

Neue Helvetica Ultra Light, Neue Helvetica Light and Neue Helvetica Light Italic hosted by are a sort of lazy man’s choice to make a website look professional. The downside? They cost more than the website hosting itself.

<img src="/images/disqus-logo-136x34.png" alt="Disqus" width="68" height="17" class="remove-bottom">
Disqus is a powerful discussion system that is easy to integrate. It comes with some branding that cannot be removed, but given that the system is free I find this acceptable. Try it and leave a comment below!

Google Analytics

Google Analytics tells me how many times you visited my website.

What's missing?

There is no SQL (relational database) that would be against my second criteria (avoid installing unnecessary features) – text files and a few, simple caching scripts are a much more lean solution than a full-blown relational database.


Be civil and don't wander too far off topic.