Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Codacy Badge Build status Coverage Status

Indigo logo

Indigo is AfricanLII's document management system for managing, capturing and publishing legislation in the Akoma Ntoso format.

It is a Django python web application using:

Read the full documentation at

Local development

Refer to

Adding translation strings

Each indigo package has its own translations in the locale directory. Translations for strings are added on CrowdIn.

If you have added or changed strings that need translating, you must tell Django to update the .po files so that translations can be supplied through CrowdIn.

for app in indigo indigo_api indigo_za; do pushd $app; django-admin makemessages -a; popd; done

And then commit the changes. CrowdIn will pick up any changed strings and make them available for translation. Once they are translated, it will open a pull request to merge the changes into master.

Once merged into master, you must tell Django to compile the .po files to .mo files:

django-admin compilemessages --settings indigo.settings

And then commit the changes.

npm module dependencies

Indigo is migrating to modules written in ES6 using Vue. This code needs to be compiled into a single JS file using webpack.

npm install
npx webpack

During development, using npx webpack -w to watch for changes and recompile automatically.


To run the tests use:

python test

Production deployment

Read the documentation for details on deploying Indigo.

Releasing a New Version

  1. Run the tests!
  2. Update VERSION appropriately
  3. Update docs/changelog.rst
  4. Commit changes
  5. Tag: git tag vX.X.X and push to github git push; git push --tags

License and Copyright

The project is licensed under a GNU GPL 3 license.

Indigo is Copyright 2015-2020 AfricanLII.