A web application for threading together 'factlets' into narratives organized by theme, time and space.

Installation and Setup

Install microfacts using virtualenv and pip:

# by creating a virtualenv environment first you ensure access to the
# global site-packages (pip automatically does --no-site-packages)
virtualenv pyenv-microfacts

# grab the 'pip' requirements files

# Now install it
# For a stripped down version (e.g. without auth) use
# pip-requirements-core.txt
pip -E pyenv-microfacts install -r pip-requirements.txt

NB Local checkouts: if you already have a local checkout of microfacts (or other repos) you probably want to use them. To this install these after running pip-requirements (this will then overwrite installs from pip-requirements.txt):

pip -E pyenv-microfacts install -e {your-local-path}

You will also need to install the additional (non-python) dependencies for Shapely listed on: <>.

Make a config file as follows:

paster make-config microfacts config.ini

Tweak the config file as appropriate and then setup the application:

paster setup-app config.ini

Symlink the who.ini file from microfacts (base directory) into the directory where your config.ini is located, e.g.:

ln -s pyenv-microfacts/src/microfacts/who.ini ./

Then you are ready to start the web application:

paster serve config.ini


You should copy the example environment files and customize them to your liking:

cp test.ini.example test.ini
cp development.ini.example development.ini
vim development.ini

You can then run a server like this:

paster server development.ini --reload &

The tests can be run with:

nosetests microfacts/tests


  • Rufus Pollock
  • Nick Stenning
  • John Bywater

Also especial thanks to the following projects without whom this would not have been possible: