Code for
Latest commit 7e547ab Dec 16, 2016


Source is a website dedicated to "advocating for, shining a spotlight on, and helping to generate community around the code that's being written in journalism." It's built with Django, using Mozilla's Playdoh web app template.



You need Python 2.6 or 2.7, Mozilla's funfactory, MySQL, git, virtualenv, and a Unix-like OS.


First, make sure you've got funfactory installed, because the Playdoh app template will need it.

pip install funfactory


  1. Fork and/or clone this Source repository from GitHub
  2. Set up a virtual environment for your new project
  3. Activate your virtualenv and cd into the project directory
  4. Fetch the submodule dependancies

git submodule update --init --recursive

And make sure you have all the development requirements

pip install -r requirements/dev.txt


The app has a base settings file that can be found at source/settings/, you can override any of the values there inside a file.

cp source/settings/ source/settings/

Please ensure that you create your own SECRET_KEY and HMAC_KEY

You can point your database config to sqlite for quick testing, or if you'd rather use MySQL, you'll need to create a new database. Adjust the DATABASES dict in source/settings/ accordingly, and then

python syncdb

The primary content apps are managed by django-south, so next run

python migrate articles python migrate code python migrate people

This repository includes a few fixtures with test articles, people, organizations and code records for you to play with. If you'd like to add them, next run

python loaddata test_data python loaddata taggit_test_data

And then it's time to fire it up!

python runserver

Now you should be able view your dev server at http://localhost:8000/