diff --git a/README.md b/README.md
index afb92e21f69edde62b375589199a891d488bfcc5..756b4c7e73e2beaabaaf6b2b4001cdb205c92e9b 100644
--- a/README.md
+++ b/README.md
@@ -56,4 +56,4 @@ $ src/squeekboard
 Developing
 ----------
 
-See `HACKING.md`
+See [`docs/hacking.md`](docs/hacking.md) for this copy, or the [official documentation](https://developer.puri.sm/projects/squeekboard/) for the current release.
diff --git a/HACKING.md b/doc/hacking.md
similarity index 94%
rename from HACKING.md
rename to doc/hacking.md
index 4b4e2f452d7d444718141fe54cfd256f086ce19b..7b016f6328aee3ec377aaf2ed299085b6ba7e899 100644
--- a/HACKING.md
+++ b/doc/hacking.md
@@ -38,7 +38,7 @@ You may notice that they are ordered roughly from "user-focused" to "maintainer-
 Sending patches
 ---------------
 
-By submitting a change to this project, you agree to license it under the [GPL license version 3](./COPYING), or any later version. You also certify that your contribution fulfills the [Developer's Certificate of Origin 1.1](./dco.txt).
+By submitting a change to this project, you agree to license it under the [GPL license version 3](https://source.puri.sm/Librem5/squeekboard/blob/master/COPYING), or any later version. You also certify that your contribution fulfills the [Developer's Certificate of Origin 1.1](https://source.puri.sm/Librem5/squeekboard/blob/master/dco.txt).
 
 Development environment
 -----------------------
@@ -56,8 +56,7 @@ sudo apt-get -y install build-essential
 sudo apt-get -y build-dep .
 ```
 
-For an explicit list of dependencies check the `Build-Depends` entry in the
-[`debian/control`](./debian/control) file.
+For an explicit list of dependencies check the `Build-Depends` entry in the [`debian/control`](https://source.puri.sm/Librem5/squeekboard/blob/master/debian/control) file.
 
 Testing
 -------
diff --git a/doc/index.md b/doc/index.md
index 065d7a0cb8dd2ebc2d67fff2b9cbde5d178b176d..0c73eecf59961dd1db85114d3d617cb6c237622d 100644
--- a/doc/index.md
+++ b/doc/index.md
@@ -5,17 +5,23 @@ Contents
 --------
 
 * [Tutorial](tutorial.md)
+* [Contributing](hacking.md)
 
 Introduction
 ------------
 
-Squeekboard is the on-screen keyboard for the Librem 5 phone. For more information, look at the [README](https://source.puri.sm/Librem5/squeekboard/blob/master/README.md).
+Squeekboard is the on-screen keyboard for the Librem 5 phone. For information about building, look at the [README](https://source.puri.sm/Librem5/squeekboard/blob/master/README.md).
 
 Layouts
 -------
 
-Squeekboard allows user-provided keyboard layouts. They can be created without recompiling the keyboard code. The [tutorial](/tutorial.md) explains the process in detail.
+Squeekboard allows user-provided keyboard layouts. They can be created without recompiling the keyboard code. The [tutorial](tutorial.md) explains the process in detail.
 
 Layouts are created using a text-based format, based on YAML.
 
 TODO: Provide a description of the format.
+
+Contributions
+-------------
+
+Anyone is free to modify *squeekboard*. See the [contributing document](hacking.md).
diff --git a/doc/tutorial.md b/doc/tutorial.md
index 716b8ddaeb965e2ffd9f52cb82503711e930e15a..d97c6173f979585b1a01c8b6560fb3d155a85876 100644
--- a/doc/tutorial.md
+++ b/doc/tutorial.md
@@ -31,7 +31,7 @@ So at least I will try to start writing a short how-to here and edit this post a
 **Running squeekboard**
 
 * Follow these instructions to run squeekboard: [https://source.puri.sm/Librem5/squeekboard/blob/master/README.md#running ](https://source.puri.sm/Librem5/squeekboard/blob/master/README.md#running)
-* Additionally take a look at https://source.puri.sm/Librem5/squeekboard/blob/master/HACKING.md#testing
+* Additionally take a look at the contribution document for [testing info](HACKING.md#testing)
 * You can either test it locally on your Linux system or use the [QEMU Librem 5 image ](https://developer.puri.sm/Librem5/Development_Environment/Boards/emulators.html)
 * To test squeekboard locally, you need phoc. Either compile that from the sources as well or use the CI repository ci.puri.sm for Debian based systems:
   `deb [arch=amd64] http://ci.puri.sm/ scratch librem5`