Good documentation is difficult to keep up-to-date. If you find a typo or an error in the documentation please let us know — ideally, by submitting a patch with your correction.

Find a task

The documentation on the website is not freely editable. The way we document things has serious security implications. People should be able to trust the Tails website as much as they trust Tails itself. Furthermore, every change in the documentation possibly breaks the translations that were made of the previous version.

But there are still many ways you can start contributing:

  • We maintain a list of documentation tasks. You can start writing a draft in the corresponding ticket and then ask us for review.

  • Small fixes and enhancements to the current documentation are greatly welcome. This can be done by sending Git patches to or by publishing a Git branch (for example to a fork on GitLab). In general, documentation changes should be based on the master branch.

We recommend you to build an offline version of the documentation to test your contributions before sharing them with us.

Guidelines and style


Find documentation pages impacted by changes in Tails

The bin/doc-impacted-by tool takes two "states" (see its --help) of Tails, and checks the changes between these states against a database of relationship between documentation pages and the source files and packages impacting them.

The relationships between documentation and source files are stored in doc-source-relationships.yml in the Git root. It's YAML, and the format is something like this:

  • The pages field is mandatory (after all, we want to find the documentation pages that might need to be updated). The remaining fields list source files and packages impacting these pages.

  • All fields are interchangeable between the single and plural forms (e.g. page is the same as pages). Similarly, the values can be either strings, or a lists of strings.

  • All string values can use globs and pathspec magic features like {foo,bar}.

To use these tools, please first install the dependencies:

apt install ruby ruby-deep-merge ruby-git ruby-test-unit

Image compression

  • Images on our website are compressed and cleaned using the script. To run this script you need the optipng, advancecomp, and mat packages.

QR codes

  • To encode and decode QR codes, you can use the and scripts. To run these scripts you need to install the qrencode and zbar-tools packages.

    For example (run from Tails' source root):


    Creates a QR code in tails_boum_org.png. And:

    wiki/src/contribute/how/documentation/ tails_boum_org.png



Related pages

Talk to us

You can subscribe to, our development mailing list.