diff --git a/chatview-i18n-(design-draft).md b/chatview-i18n-(design-draft).md
index 2e1c10e89e7c5addaebddf0a9638a044a833368b..8fa42c697e252ee7ac1e13a3d5788f8e7edbfd07 100644
--- a/chatview-i18n-(design-draft).md
+++ b/chatview-i18n-(design-draft).md
@@ -59,7 +59,7 @@ This will require translation of .po files to JSON format (using [i18next-gettex
 This will require translation of .po files to JSON format (e.g. using [po2json](https://github.com/mikeedwards/po2json)).
 po2json also requires nodeJS as dependency, **but** it is [available as Debian package](https://packages.debian.org/stable/javascript/node-po2json), which makes it slightly less annoying
 
-![gettext_end](/uploads/0be97d3200bcac7ab4b4432c18f879c3/gettext_end.png)
+![gettext_end](https://git.jami.net/savoirfairelinux/jami-project/uploads/0be97d3200bcac7ab4b4432c18f879c3/gettext_end.png)
 
 Source: [Internationalization in JavaScript](http://www.jeromesteunou.net/internationalisation-in-javascript.html)
 
diff --git a/technical/LRC-documentation.md b/developer/LRC-documentation.md
similarity index 63%
rename from technical/LRC-documentation.md
rename to developer/LRC-documentation.md
index 1bcea98423579fb9477320eccebc4a732f22e1d5..cc6d5df0715f1012437116d4d7b050dffe5b54cc 100644
--- a/technical/LRC-documentation.md
+++ b/developer/LRC-documentation.md
@@ -8,7 +8,7 @@ LRC documentation
 -   Lrc (Libringclient) is an interface between the clients and
     the daemon. It ensures to get the same behaviour for all client
     using it.
-![Introduction](/uploads/01896b43f2a29d29e5148ad60e608846/Introduction.png)
+![Introduction](https://git.jami.net/savoirfairelinux/jami-project/uploads/01896b43f2a29d29e5148ad60e608846/Introduction.png)
 
 note: red = missing feature.
 
@@ -17,7 +17,7 @@ note: red = missing feature.
 -   this class is an interface between lrc and the sqlite database. This
     class should not be called directly from the client.
 
-![Databasemanager](/uploads/896f30e099c7bb7b40451b528aefda6e/Databasemanager.png)
+![Databasemanager](https://git.jami.net/savoirfairelinux/jami-project/uploads/896f30e099c7bb7b40451b528aefda6e/Databasemanager.png)
 
 ### NewCallModel class and NewCall namespace
 
@@ -38,7 +38,7 @@ note: red = missing feature.
 -   note about the name : we are using New as prefix to avoid conflict
     with the current CallModel and Call objects.
 
-![Newcallmodel_newcall](/uploads/c9ba7bec82a6d2cd3bc5ba1cde018f4a/Newcallmodel_newcall.png)
+![Newcallmodel_newcall](https://git.jami.net/savoirfairelinux/jami-project/uploads/c9ba7bec82a6d2cd3bc5ba1cde018f4a/Newcallmodel_newcall.png)
 
 ### ContactModel class and Contact namespace
 
@@ -54,7 +54,7 @@ note: red = missing feature.
 -   When we need to perform some operation on a contact, we pass it uri
     to the delegate performing the operation.
 
-![Contactmodel_contact](/uploads/42c32722576a7a25de813419503805f5/Contactmodel_contact.png)
+![Contactmodel_contact](https://git.jami.net/savoirfairelinux/jami-project/uploads/42c32722576a7a25de813419503805f5/Contactmodel_contact.png)
 
 ### ConversationModel class, Conversation namespace and Message namespace
 
@@ -72,10 +72,10 @@ note: red = missing feature.
 -   note about Message : so far, we didn't need a MessageModel, but this
     could be come soon.
 
-![Conversationmodel_conversation_message](/uploads/1b1ad190ef65b5aa088bbcb785645099/Conversationmodel_conversation_message.png)
+![Conversationmodel_conversation_message](https://git.jami.net/savoirfairelinux/jami-project/uploads/1b1ad190ef65b5aa088bbcb785645099/Conversationmodel_conversation_message.png)
 
 ### resources
 
-[Diagram1.dia](/uploads/f6d0a81d67b075c13c57b7d9771ca065/Diagram1.dia)
+[Diagram1.dia](https://git.jami.net/savoirfairelinux/jami-project/uploads/f6d0a81d67b075c13c57b7d9771ca065/Diagram1.dia)
 
-[Diagram2.dia](/uploads/00b3212a7642e58fd35b74c48e712332/Diagram2.dia)
+[Diagram2.dia](https://git.jami.net/savoirfairelinux/jami-project/uploads/00b3212a7642e58fd35b74c48e712332/Diagram2.dia)
diff --git a/technical/2.1.-Manage-Accounts.md b/developer/account-management.md
similarity index 99%
rename from technical/2.1.-Manage-Accounts.md
rename to developer/account-management.md
index 8cf0c36d68e12e5ed3b0fe7823cc0736ab65595e..c5f00c93c2c621ba17bf22363b11c051156a36af 100644
--- a/technical/2.1.-Manage-Accounts.md
+++ b/developer/account-management.md
@@ -1,5 +1,5 @@
-Manage accounts
-===============
+Account management
+==================
 
 In this part, we will learn how to manage a Ring account. This means, how to create a Ring account, modify the basic settings and delete the account. This part will *NOT* explain what all the settings mean or how we can use the account to do any action like adding a contact. 
 
diff --git a/technical/1.-The-different-APIs.md b/developer/apis-of-jami.md
similarity index 98%
rename from technical/1.-The-different-APIs.md
rename to developer/apis-of-jami.md
index 5ff9634c5536002d9c460860e48ad0a9544b6336..ba9dd2d965efba9067673e6f519f0f77cc96be5f 100644
--- a/technical/1.-The-different-APIs.md
+++ b/developer/apis-of-jami.md
@@ -1,5 +1,5 @@
-The different APIs
-==================
+The APIs of Jami
+================
 
 ## OpenDHT
 
@@ -248,7 +248,7 @@ The Doxygen documentation is available [here](https://jenkins.ring.cx/view/libri
 
 ### Database schema
 
-![lrcbd](/uploads/94bee0c65b2a87b0f3e1ee223ccf81dc/lrcbd.jpg)
+![lrcbd](https://git.jami.net/savoirfairelinux/jami-project/uploads/94bee0c65b2a87b0f3e1ee223ccf81dc/lrcbd.jpg)
 
 ```sql
 CREATE TABLE profiles (id INTEGER PRIMARY KEY,  \
diff --git a/technical/5.5-Call-in-Swarms.md b/developer/calls-in-swarm.md
similarity index 95%
rename from technical/5.5-Call-in-Swarms.md
rename to developer/calls-in-swarm.md
index 5c95d0d43e15381b82d2ccfaad64610d8b855f4c..2330a2978b62774d2c45fe49afd146f7e3b45089 100644
--- a/technical/5.5-Call-in-Swarms.md
+++ b/developer/calls-in-swarm.md
@@ -1,4 +1,4 @@
-Call in Swarms
+Calls in Swarm
 ==============
 
 ## Goals
@@ -29,7 +29,7 @@ Proposed flow:
 + **c:** else, host a new *Rendezvous* and join it.
     + Also, ask users if they want to be the host for next calls.
 
-![Untitled_Diagram.drawio_1_](uploads/cc28c4379584386c8e5ea8e0d65a29e1/Untitled_Diagram.drawio_1_.png)
+![Diagram: Placing a call in a Swarm](images/placing-call-in-swarm-diagram.png)
 
 **TODO, when to commit and who is commiting**
 
diff --git a/technical/2.4.-Let's-do-a-call.md b/developer/calls.md
similarity index 99%
rename from technical/2.4.-Let's-do-a-call.md
rename to developer/calls.md
index 2ec6e34d3bc458a6b94bc568ed3e092b55d054f1..cc0ab7cfb0ca47f52fce36f6aa533ee5deb8b9ba 100644
--- a/technical/2.4.-Let's-do-a-call.md
+++ b/developer/calls.md
@@ -1,8 +1,10 @@
-Let's do a call
-===============
+Calls
+=====
 
 **NOTE: this page detail the principle for Jami accounts. For SIP accounts, the SIP protocol is used.**
 
+Let's do a call in Jami!
+
 ## Daemon side
 
 When creating a call between two peers, Jami mainly uses known protocols such as ICE, SIP or TLS. However, to make it distributed, the process of creating a call is a bit different. To summarize, when someone wants to contact one of its contact, this is what they will do:
diff --git a/Choosing-CRF-value-for-encoder.md b/developer/choosing-crf-value-for-encoder.md
similarity index 67%
rename from Choosing-CRF-value-for-encoder.md
rename to developer/choosing-crf-value-for-encoder.md
index 1ed19b791fe2645f371283c9733b8895470f9a0d..e121f8bd4b2e76eebf5db9e6b0132bdd39465c6d 100644
--- a/Choosing-CRF-value-for-encoder.md
+++ b/developer/choosing-crf-value-for-encoder.md
@@ -31,67 +31,67 @@ Thanks to this test we can estimate the bitrate that will be emitted in Jami acc
 * * *
 
 1080p / 300 kbit/s / CRF28
-![image](uploads/b06a8291afb89ef0f29977dde37c86ea/image.png)
+![image](images/choosing-crf-1080p-300kbps-crf28.png)
 1080p / 300 kbit/s / CRF38
-![image](uploads/e330a23900b26f302f0bee104609530f/image.png)
+![image](images/choosing-crf-1080p-300kbps-crf38.png)
 
 Visual comparison (CRF28 a gauche / CRF38 a droite)
   
 1080p / 1.5 Mbps / CRF22
-![image](uploads/4747083f516ddd2f479f1a28836bff0d/image.png)
+![image](images/choosing-crf-1080p-1.5mbps-crf22.png)
 1080p / 1.5 Mbit/s / CRF30
-![image](uploads/6eaeeaa1a548dddd8001608a1fa50a63/image.png)
+![image](images/choosing-crf-1080p-1.5mbps-crf30.png)
 
 Visual comparison (CRF22 left / CRF30 right)
 
  1080p / 6 Mbps / CRF17
-![image](uploads/485d3ec4b5ae06597bbfe60abd55145e/image.png)
+![image](images/choosing-crf-1080p-6mbps-crf17.png)
  1080p / 6 Mbit/s / CRF23
-![image](uploads/8d641b5e9cdb867e7337cce1d65eeaa7/image.png)
+![image](images/choosing-crf-1080p-6mbps-crf23.png)
 
 Visual comparison (CRF17 on the left / CRF23 on the right)
 
 * * *
 
 720p / 300 kbps / CRF28
-![image](uploads/2b9839f762944db0f11ecd7d5f4d135d/image.png)
+![image](images/choosing-crf-720p-300kbps-crf28.png)
 720p / 300 kbit/s / CRF38
-![image](uploads/dfc9bb0fce68c6f890bf3f3eb6ed455b/image.png)
+![image](images/choosing-crf-720p-300kbps-crf38.png)
 Visual comparison (CRF28 left / CRF38 right)
 
 720p / 1.5 Mbps / CRF22
-![image](uploads/e821c84b0b46382fd6264f9924999e7b/image.png)
+![image](images/choosing-crf-720p-1.5mbps-crf22.png)
 720p / 1.5 Mbit/s / CRF30 (Test with reduced CRF)
-![image](uploads/812fbae5646a7bcddca644ff7932ea97/image.png)
+![image](images/choosing-crf-720p-1.5mbps-crf30.png)
 
 Visual comparison (CRF22 left / CRF30 right)
 
 720p / 6 Mbps / CRF17
-![image](uploads/c6e9647d626076770786d018a0bea853/image.png)
+![image](images/choosing-crf-720p-6mbps-crf17.png)
 720p / 6 Mbit/s / CRF23
-![image](uploads/02fa8b3e55027c8f5c4beaaf4d840c34/image.png)
+![image](images/choosing-crf-720p-6mbps-crf23.png)
 
 Visual comparison (CRF17 left / CRF23 right)
 
 * * *
 
 436p / 300 kbps / CRF28
-![image](uploads/c72e33c4d7115e0e1f6904c0456e0dd6/image.png)
+![image](images/choosing-crf-436p-300kbps-crf28.png)
 436p / 300 kbit/s / CRF38
-![image](uploads/61028c01dc283e387df758dc1115cffb/image.png)
+![image](images/choosing-crf-436p-300kbps-crf38.png)
 
 Visual comparison (CRF28 left / CRF38 right)
 
 436p / 1.5 Mbps / CRF22
-![image](uploads/88bdb808259bd327354e350ae5d3eba5/image.png)
+![image](images/choosing-crf-436p-1.5mbps-crf22.png)
 436p / 1.5 Mbit/s / CRF30
-![image](uploads/8d0e42f40a904b1c34635a4daec87ba1/image.png)
+![image](images/choosing-crf-436p-1.5mbps-crf30.png)
 
 Visual comparison (CRF22 left / CRF30 right)
  
 436p / 6 Mbps / CRF17
-![image](uploads/98d57fc3bbc932152fbc653b2e8d9d93/image.png)
+![image](images/choosing-crf-436p-6mbps-crf17.png)
 436p / 6 Mbit/s / CRF23
-![image](uploads/caa3efc66941e93519750dc1d8990cac/image.png)
+![image](images/choosing-crf-436p-6mbps-crf23.png)
 
 Visual comparison (CRF17 left / CRF23 right)
diff --git a/technical/6.1.-Conference-Protocol.md b/developer/conference-protocol.md
similarity index 100%
rename from technical/6.1.-Conference-Protocol.md
rename to developer/conference-protocol.md
diff --git a/technical/5.2.-The-connection-manager.md b/developer/connection-manager.md
similarity index 100%
rename from technical/5.2.-The-connection-manager.md
rename to developer/connection-manager.md
diff --git a/technical/2.2.-Manage-contacts.md b/developer/contact-management.md
similarity index 99%
rename from technical/2.2.-Manage-contacts.md
rename to developer/contact-management.md
index c759a29a6ff9c9ff8ce36cb35e02532e21cdb0f3..941879664b7943d4db264f2c4a0581008ad0cb6d 100644
--- a/technical/2.2.-Manage-contacts.md
+++ b/developer/contact-management.md
@@ -1,5 +1,5 @@
-Manage contacts
-===============
+Contact management
+==================
 
 This section will present how to find and add a contact from the DHT to the client. The usage of a name server will not be explained here. If you want details about that, please read: https://git.ring.cx/savoirfairelinux/ring-project/wikis/technical/Name-Server-Protocol
 
diff --git a/technical/7.1 - Create Plugin.md b/developer/creating-jami-plugins.md
similarity index 99%
rename from technical/7.1 - Create Plugin.md
rename to developer/creating-jami-plugins.md
index 0754d535980871024ef43fc3e52c430b5877c76b..20ac847d318dc1738574a3cdae11922685e5dc7d 100644
--- a/technical/7.1 - Create Plugin.md	
+++ b/developer/creating-jami-plugins.md
@@ -1,5 +1,5 @@
-Create plugin
-=============
+Creating Jami plugins
+=====================
 
 **NOTE: this page introduces the Jami Plugins SDK.**
 
diff --git a/technical/4.3.-Features-requests.md b/developer/features-requests.md
similarity index 100%
rename from technical/4.3.-Features-requests.md
rename to developer/features-requests.md
diff --git a/technical/2.5.-File-transfer.md b/developer/file-transfer.md
similarity index 91%
rename from technical/2.5.-File-transfer.md
rename to developer/file-transfer.md
index 747bbc9896652343beb3d8d8ec37c5feaf0ee76e..589947829dcbfb290a6ee62302083ee306b071e5 100644
--- a/technical/2.5.-File-transfer.md
+++ b/developer/file-transfer.md
@@ -12,34 +12,34 @@ How to use it?
 For sending a file on gnome, in a conversation you need to click to the
 send file icon at the bottom right of the conversation:
 
-![Gnome_send_file](/uploads/e7571789effe8641f5ff4117e47f89dd/Gnome_send_file.png)
+![Gnome_send_file](https://git.jami.net/savoirfairelinux/jami-project/uploads/e7571789effe8641f5ff4117e47f89dd/Gnome_send_file.png)
 
 Then you will see your image as soon as the transfer is finished (and
 show images is activated)
 
-![Gnome_image](/uploads/cc03387d134a9aa71c6deb60ccf53ed8/Gnome_image.png)
+![Gnome_image](https://git.jami.net/savoirfairelinux/jami-project/uploads/cc03387d134a9aa71c6deb60ccf53ed8/Gnome_image.png)
 
 On the contrary if you receive a file (and if it's not a picture < 20
 Mb), you will have to accept the transfer:
 
-![Gnome_accept](/uploads/29dd852e062e7bcbcb654e4e7e3f8e47/Gnome_accept.png)
+![Gnome_accept](https://git.jami.net/savoirfairelinux/jami-project/uploads/29dd852e062e7bcbcb654e4e7e3f8e47/Gnome_accept.png)
 
 And then the file will be sent. You have the possibility to cancel in a
 middle of a transfer.
 
-![Gnome_ongoing](/uploads/92f319f8a88f75c388020d999f607bdc/Gnome_ongoing.png)
+![Gnome_ongoing](https://git.jami.net/savoirfairelinux/jami-project/uploads/92f319f8a88f75c388020d999f607bdc/Gnome_ongoing.png)
 
 ### Android
 
 When you are talking to somebody on Android, you have the possibility to
 send a picture on your device or take a photo with these buttons:
 
-![Android_file_buttons](/uploads/d68472b2c7bfcc616b0c674c9c7a8fed/Android_file_buttons.png)
+![Android_file_buttons](https://git.jami.net/savoirfairelinux/jami-project/uploads/d68472b2c7bfcc616b0c674c9c7a8fed/Android_file_buttons.png)
 
 Note: when you send a file, the other has to accept it. At this moment
 you will see 'awaiting peer':
 
-![Android_awaiting_peer](/uploads/56f0316c945ca243448668ae9091b1de/Android_awaiting_peer.png)
+![Android_awaiting_peer](https://git.jami.net/savoirfairelinux/jami-project/uploads/56f0316c945ca243448668ae9091b1de/Android_awaiting_peer.png)
 
 How it works? (technical)
 -------------------------
@@ -64,7 +64,7 @@ The following method is used:
 
 1\. A client will call `DataTransferFacade::sendFile()`. `DataTransferFacade` is the class corresponding to the API exposed for the clients. It is used to manage a view of the file transfers (the corresponding classes are `DataTransfer`, `IncomingFileTransfer`, `OutgoingFileTransfer` and `SubOutgoingFileTransfer`). This method will ask the linked `JamiAccount` to request a connection.
 
-![DataTransfer](uploads/6517bd0f766fb15f82de38192aa066a7/DataTransfer.png)
+![Diagram: DataTransfer class diagram]images/file-transfer-datatransfer-class-diagram.png)
 
 2\. The method `DhtPeerConnector: requestConnection()` is triggered and creates a connection between all connected devices of the peer (found on the DHT). `DhtPeerConnector` is used to manage the main event loop which manage connections. When a device is found, the *event loop* will create a `ClientConnector` (which manage the connection for one device) and launch the `process()` method.
 
@@ -78,7 +78,7 @@ The following method is used:
 
 7\. If a cancel is received from the peer or the client or if the file transfer finish, the connection will be closed via a `CANCEL` message on the `DhtPeerConnector::eventLoop()` and the resources will be released.
 
-![TLSsocketEndpoint](uploads/ce7b58d02fdcd0075575a4cca499d6dd/TLSsocketEndpoint.png)
+![TLSsocketEndpoint](images/file-transfer-tlssocketendpoint-diagram.png)
 
 ##### Receiving a file
 
@@ -102,7 +102,7 @@ The receiver can now accepts the first incoming transfer, download the file and
 
 ##### Schema
 
-![Main](uploads/0e8f8a2d4f9d8b40e910b81a665695cc/Main.png)
+![Diagram: main schema diagram](images/file-transfer-main-schema-diagram.png)
 
 ##### SDP sent over the DHT
 
diff --git a/uploads/4747083f516ddd2f479f1a28836bff0d/image.png b/developer/images/choosing-crf-1080p-1.5mbps-crf22.png
similarity index 100%
rename from uploads/4747083f516ddd2f479f1a28836bff0d/image.png
rename to developer/images/choosing-crf-1080p-1.5mbps-crf22.png
diff --git a/uploads/6eaeeaa1a548dddd8001608a1fa50a63/image.png b/developer/images/choosing-crf-1080p-1.5mbps-crf30.png
similarity index 100%
rename from uploads/6eaeeaa1a548dddd8001608a1fa50a63/image.png
rename to developer/images/choosing-crf-1080p-1.5mbps-crf30.png
diff --git a/uploads/b06a8291afb89ef0f29977dde37c86ea/image.png b/developer/images/choosing-crf-1080p-300kbps-crf28.png
similarity index 100%
rename from uploads/b06a8291afb89ef0f29977dde37c86ea/image.png
rename to developer/images/choosing-crf-1080p-300kbps-crf28.png
diff --git a/uploads/e330a23900b26f302f0bee104609530f/image.png b/developer/images/choosing-crf-1080p-300kbps-crf38.png
similarity index 100%
rename from uploads/e330a23900b26f302f0bee104609530f/image.png
rename to developer/images/choosing-crf-1080p-300kbps-crf38.png
diff --git a/uploads/485d3ec4b5ae06597bbfe60abd55145e/image.png b/developer/images/choosing-crf-1080p-6mbps-crf17.png
similarity index 100%
rename from uploads/485d3ec4b5ae06597bbfe60abd55145e/image.png
rename to developer/images/choosing-crf-1080p-6mbps-crf17.png
diff --git a/uploads/8d641b5e9cdb867e7337cce1d65eeaa7/image.png b/developer/images/choosing-crf-1080p-6mbps-crf23.png
similarity index 100%
rename from uploads/8d641b5e9cdb867e7337cce1d65eeaa7/image.png
rename to developer/images/choosing-crf-1080p-6mbps-crf23.png
diff --git a/uploads/88bdb808259bd327354e350ae5d3eba5/image.png b/developer/images/choosing-crf-436p-1.5mbps-crf22.png
similarity index 100%
rename from uploads/88bdb808259bd327354e350ae5d3eba5/image.png
rename to developer/images/choosing-crf-436p-1.5mbps-crf22.png
diff --git a/uploads/8d0e42f40a904b1c34635a4daec87ba1/image.png b/developer/images/choosing-crf-436p-1.5mbps-crf30.png
similarity index 100%
rename from uploads/8d0e42f40a904b1c34635a4daec87ba1/image.png
rename to developer/images/choosing-crf-436p-1.5mbps-crf30.png
diff --git a/uploads/c72e33c4d7115e0e1f6904c0456e0dd6/image.png b/developer/images/choosing-crf-436p-300kbps-crf28.png
similarity index 100%
rename from uploads/c72e33c4d7115e0e1f6904c0456e0dd6/image.png
rename to developer/images/choosing-crf-436p-300kbps-crf28.png
diff --git a/uploads/61028c01dc283e387df758dc1115cffb/image.png b/developer/images/choosing-crf-436p-300kbps-crf38.png
similarity index 100%
rename from uploads/61028c01dc283e387df758dc1115cffb/image.png
rename to developer/images/choosing-crf-436p-300kbps-crf38.png
diff --git a/uploads/98d57fc3bbc932152fbc653b2e8d9d93/image.png b/developer/images/choosing-crf-436p-6mbps-crf17.png
similarity index 100%
rename from uploads/98d57fc3bbc932152fbc653b2e8d9d93/image.png
rename to developer/images/choosing-crf-436p-6mbps-crf17.png
diff --git a/uploads/caa3efc66941e93519750dc1d8990cac/image.png b/developer/images/choosing-crf-436p-6mbps-crf23.png
similarity index 100%
rename from uploads/caa3efc66941e93519750dc1d8990cac/image.png
rename to developer/images/choosing-crf-436p-6mbps-crf23.png
diff --git a/uploads/e821c84b0b46382fd6264f9924999e7b/image.png b/developer/images/choosing-crf-720p-1.5mbps-crf22.png
similarity index 100%
rename from uploads/e821c84b0b46382fd6264f9924999e7b/image.png
rename to developer/images/choosing-crf-720p-1.5mbps-crf22.png
diff --git a/uploads/812fbae5646a7bcddca644ff7932ea97/image.png b/developer/images/choosing-crf-720p-1.5mbps-crf30.png
similarity index 100%
rename from uploads/812fbae5646a7bcddca644ff7932ea97/image.png
rename to developer/images/choosing-crf-720p-1.5mbps-crf30.png
diff --git a/uploads/2b9839f762944db0f11ecd7d5f4d135d/image.png b/developer/images/choosing-crf-720p-300kbps-crf28.png
similarity index 100%
rename from uploads/2b9839f762944db0f11ecd7d5f4d135d/image.png
rename to developer/images/choosing-crf-720p-300kbps-crf28.png
diff --git a/uploads/dfc9bb0fce68c6f890bf3f3eb6ed455b/image.png b/developer/images/choosing-crf-720p-300kbps-crf38.png
similarity index 100%
rename from uploads/dfc9bb0fce68c6f890bf3f3eb6ed455b/image.png
rename to developer/images/choosing-crf-720p-300kbps-crf38.png
diff --git a/uploads/c6e9647d626076770786d018a0bea853/image.png b/developer/images/choosing-crf-720p-6mbps-crf17.png
similarity index 100%
rename from uploads/c6e9647d626076770786d018a0bea853/image.png
rename to developer/images/choosing-crf-720p-6mbps-crf17.png
diff --git a/uploads/02fa8b3e55027c8f5c4beaaf4d840c34/image.png b/developer/images/choosing-crf-720p-6mbps-crf23.png
similarity index 100%
rename from uploads/02fa8b3e55027c8f5c4beaaf4d840c34/image.png
rename to developer/images/choosing-crf-720p-6mbps-crf23.png
diff --git a/uploads/6517bd0f766fb15f82de38192aa066a7/DataTransfer.png b/developer/images/file-transfer-datatransfer-class-diagram.png
similarity index 100%
rename from uploads/6517bd0f766fb15f82de38192aa066a7/DataTransfer.png
rename to developer/images/file-transfer-datatransfer-class-diagram.png
diff --git a/uploads/0e8f8a2d4f9d8b40e910b81a665695cc/Main.png b/developer/images/file-transfer-main-schema-diagram.png
similarity index 100%
rename from uploads/0e8f8a2d4f9d8b40e910b81a665695cc/Main.png
rename to developer/images/file-transfer-main-schema-diagram.png
diff --git a/uploads/ce7b58d02fdcd0075575a4cca499d6dd/TLSsocketEndpoint.png b/developer/images/file-transfer-tlssocketendpoint-diagram.png
similarity index 100%
rename from uploads/ce7b58d02fdcd0075575a4cca499d6dd/TLSsocketEndpoint.png
rename to developer/images/file-transfer-tlssocketendpoint-diagram.png
diff --git a/uploads/8c36a7b5a3bb9e729e1b046ce0b32465/androidCall.gif b/developer/images/jami-plugins-client-android-call.gif
similarity index 100%
rename from uploads/8c36a7b5a3bb9e729e1b046ce0b32465/androidCall.gif
rename to developer/images/jami-plugins-client-android-call.gif
diff --git a/uploads/e4d021a3fb82b603b1da34d5f47badc7/androidInstall.gif b/developer/images/jami-plugins-client-android-install.gif
similarity index 100%
rename from uploads/e4d021a3fb82b603b1da34d5f47badc7/androidInstall.gif
rename to developer/images/jami-plugins-client-android-install.gif
diff --git a/uploads/4c35a7b270064ca21228f063e12f97a2/androidPrefs.gif b/developer/images/jami-plugins-client-android-prefs.gif
similarity index 100%
rename from uploads/4c35a7b270064ca21228f063e12f97a2/androidPrefs.gif
rename to developer/images/jami-plugins-client-android-prefs.gif
diff --git a/uploads/34f4e5c4f04d80ab3a48072d3f470cfa/clienqtCall.gif b/developer/images/jami-plugins-client-qt-call.gif
similarity index 100%
rename from uploads/34f4e5c4f04d80ab3a48072d3f470cfa/clienqtCall.gif
rename to developer/images/jami-plugins-client-qt-call.gif
diff --git a/uploads/bfb5d4bd9f03b427227465d08bd2f1d0/clientqtInstall.gif b/developer/images/jami-plugins-client-qt-install.gif
similarity index 100%
rename from uploads/bfb5d4bd9f03b427227465d08bd2f1d0/clientqtInstall.gif
rename to developer/images/jami-plugins-client-qt-install.gif
diff --git a/uploads/be8787b0f0a1424c423b976723a6f2ba/clientqtPrefs.gif b/developer/images/jami-plugins-client-qt-prefs.gif
similarity index 100%
rename from uploads/be8787b0f0a1424c423b976723a6f2ba/clientqtPrefs.gif
rename to developer/images/jami-plugins-client-qt-prefs.gif
diff --git "a/uploads/1fd12bf11903ccc9f48c3474cdd90e25/re\314\201fe\314\201rences_couleurs_jami.png" b/developer/images/jami-reference-colours.png
similarity index 100%
rename from "uploads/1fd12bf11903ccc9f48c3474cdd90e25/re\314\201fe\314\201rences_couleurs_jami.png"
rename to developer/images/jami-reference-colours.png
diff --git a/uploads/cc28c4379584386c8e5ea8e0d65a29e1/Untitled_Diagram.drawio_1_.png b/developer/images/placing-call-in-swarm-diagram.png
similarity index 100%
rename from uploads/cc28c4379584386c8e5ea8e0d65a29e1/Untitled_Diagram.drawio_1_.png
rename to developer/images/placing-call-in-swarm-diagram.png
diff --git a/uploads/eade038fbc7bb245d8a5f98369a49d4c/swarm-chat.jpg b/developer/images/swarm-chat-classes-diagram.jpg
similarity index 100%
rename from uploads/eade038fbc7bb245d8a5f98369a49d4c/swarm-chat.jpg
rename to developer/images/swarm-chat-classes-diagram.jpg
diff --git a/technical/Important-RFCs.md b/developer/important-rfcs.md
similarity index 100%
rename from technical/Important-RFCs.md
rename to developer/important-rfcs.md
diff --git a/technical/Improving-Jami's-quality.md b/developer/improving-quality-of-jami.md
similarity index 96%
rename from technical/Improving-Jami's-quality.md
rename to developer/improving-quality-of-jami.md
index 92156044dd78ab0370077a403ac9575b6d16461d..0963958b951101688e70975af6a9299c0def0e4a 100644
--- a/technical/Improving-Jami's-quality.md
+++ b/developer/improving-quality-of-jami.md
@@ -1,5 +1,5 @@
-Improving Jami's quality
-========================
+Improving the quality of Jami
+=============================
 
 ## Unit-tests
 
@@ -52,7 +52,7 @@ Improving Jami's quality
 Before each releases every clients MUST past a list of scenarios.
 
 Scenarios are described here:
-[SmokeTestsJami.ods](uploads/264048655e2b25e1c1c207b84febec95/SmokeTestsJami.ods)
+[Jami smoke tests](jami-smoke-tests.ods)
 
 They are reviewed by QA dpt. before sending it to the developers if needed.
 
diff --git a/developer/index.rst b/developer/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f52624c409f7317c98e6850a446f185900f93f34
--- /dev/null
+++ b/developer/index.rst
@@ -0,0 +1,40 @@
+################
+Developer manual
+################
+
+The Jami developer manual is a reference for Jami developers and
+contributors, documenting the various aspects of hacking on and
+developing Jami, including in-depth explanations of how Jami is
+designed and how its various parts work together.
+
+.. toctree::
+   :maxdepth: 1
+
+   introduction
+   apis-of-jami
+   account-management
+   contact-management
+   swarm
+   calls
+   file-transfer
+   message-displayed-status
+   setting-up-your-own-turn-server
+   synchronizing-profiles
+   submitting-your-first-patch
+   features-requests
+   connection-manager
+   calls-in-swarm
+   conference-protocol
+   synchronization-Protocol
+   jami-plugins
+   creating-jami-plugins
+   tensorflow-Plugin
+   important-rfcs
+   improving-quality-of-jami
+   LRC-documentation
+   name-server-protocol
+   protocol
+   release-process
+   technical-overview
+   jami-identifiers
+   choosing-crf-value-for-encoder
diff --git a/technical/0.-Introduction.md b/developer/introduction.md
similarity index 100%
rename from technical/0.-Introduction.md
rename to developer/introduction.md
diff --git a/guidelines/Identifiers.md b/developer/jami-identifiers.md
similarity index 96%
rename from guidelines/Identifiers.md
rename to developer/jami-identifiers.md
index 829b499ec415de2ff9068991b48ceac60ab202a3..094c97feed5bad1f91b54614856d29c244d37705 100644
--- a/guidelines/Identifiers.md
+++ b/developer/jami-identifiers.md
@@ -57,4 +57,4 @@ int generateAvatarColor(String canonicalUri) {
 Color values are from the material palette: https://material.io/tools/color
 
 
-![références_couleurs_jami](uploads/1fd12bf11903ccc9f48c3474cdd90e25/références_couleurs_jami.png)
+![références_couleurs_jami](images/jami-reference-colours.png)
diff --git a/technical/7.-Jami-plugins.md b/developer/jami-plugins.md
similarity index 96%
rename from technical/7.-Jami-plugins.md
rename to developer/jami-plugins.md
index ef64a163dd35b0faffe166133f909b05095a6c61..e2bd0eb4fa1c242542bf9c2cdaad6755f6acf858 100644
--- a/technical/7.-Jami-plugins.md
+++ b/developer/jami-plugins.md
@@ -1,6 +1,6 @@
 **NOTE: this page describes what is a Jami Plugin and how to install and use them.**
 
-# Jami Plugins
+# Jami plugins
 As from September of 2020, Jami team has added plugins as a call and chat feature for Linux, Windows, and Android users.
 This meaning that now you can personalize your call/chat experience by using one of our available plugins. 
 But that is not all, you can also transform your awesome ideas into a brand new plugin!
@@ -34,12 +34,12 @@ To setup a plugin for Android you must go under Setting, enable plugins if they
 After installed it is automaticaly loaded. 
 Optionally, you can manually perform load/unload using the checkbox button on the plugin list.
 
-![androidInstall](uploads/e4d021a3fb82b603b1da34d5f47badc7/androidInstall.gif)
+![client-android-install](images/jami-plugins-client-android-install.gif)
 
 For Android uninstall, you must click on the plugin and a uninstall option will appear allong with the preferences and a reset preferences option.
 In order to a preference modification can take effect the plugin has to be reloaded.
 
-![androidPrefs](uploads/4c35a7b270064ca21228f063e12f97a2/androidPrefs.gif)
+![client-android-prefs](images/jami-plugins-client-android-prefs.gif)
 
 #### Linux/Windows
 Similarly, for the client-qt available on Linux and Windows and for the client-gnome available only on Linux, you must go to Prefences, enable plugins if it is disabled, and select a plugins file from your computer.
@@ -49,15 +49,15 @@ Each plugin in the shown list is linked to two buttons beeing:
 - Client-gnome: a load/unload button and a uninstall button;
 For client-gnome it is not possible to change plugin's preferences.
 
-![clientqtInstall](uploads/bfb5d4bd9f03b427227465d08bd2f1d0/clientqtInstall.gif)
-![clientqtPrefs](uploads/be8787b0f0a1424c423b976723a6f2ba/clientqtPrefs.gif)
+![client-qt-install](images/jami-plugins-client-qt-install.gif)
+![client-qt-prefs](images/jami-plugins-client-qt-prefs.gif)
 
 ### Use!
 A media handler functionality only takes place if you turn them on during a call.
 For either Android, Linux or Windows you can do so by clicking on the plugins icon on your call screen.
 
-![androidCall](uploads/8c36a7b5a3bb9e729e1b046ce0b32465/androidCall.gif)
-![clienqtCall](uploads/34f4e5c4f04d80ab3a48072d3f470cfa/clienqtCall.gif)
+![client-android-call](images/jami-plugins-client-android-call.gif)
+![client-qt-call](images/jami-plugins-client-qt-call.gif)
 
 Similarly, for chat handler functionality, you will see a plugin icon in the chat window as in the images bellow.
 
diff --git a/uploads/264048655e2b25e1c1c207b84febec95/SmokeTestsJami.ods b/developer/jami-smoke-tests.ods
similarity index 100%
rename from uploads/264048655e2b25e1c1c207b84febec95/SmokeTestsJami.ods
rename to developer/jami-smoke-tests.ods
diff --git a/2.6-Displayed-status.md b/developer/message-displayed-status.md
similarity index 98%
rename from 2.6-Displayed-status.md
rename to developer/message-displayed-status.md
index b935f50f2817c811b88c0015e12936fd83b0a17d..21647ba7c3cbd9852071276c170300049b67d6c7 100644
--- a/2.6-Displayed-status.md
+++ b/developer/message-displayed-status.md
@@ -1,5 +1,5 @@
-Displayed status
-================
+Message displayed status
+========================
 
 Every client generally must be able to show what peer read what message and get how many unread messages there is.
 
diff --git a/technical/Name-Server-Protocol.md b/developer/name-server-protocol.md
similarity index 100%
rename from technical/Name-Server-Protocol.md
rename to developer/name-server-protocol.md
diff --git a/technical/Protocol.md b/developer/protocol.md
similarity index 100%
rename from technical/Protocol.md
rename to developer/protocol.md
diff --git a/technical/Release-process.md b/developer/release-process.md
similarity index 100%
rename from technical/Release-process.md
rename to developer/release-process.md
diff --git a/technical/3.6-Setup-your-own-TURN-server.md b/developer/setting-up-your-own-turn-server.md
similarity index 96%
rename from technical/3.6-Setup-your-own-TURN-server.md
rename to developer/setting-up-your-own-turn-server.md
index 0a4700eda65bc79540d4abf20a9c2589d312f3a6..3b265d379efc011e2e1b3ced7843325e82c7bb81 100644
--- a/technical/3.6-Setup-your-own-TURN-server.md
+++ b/developer/setting-up-your-own-turn-server.md
@@ -1,5 +1,5 @@
-Set up your own TURN server
-===========================
+Setting up your own TURN server
+===============================
 
 Jami can be configured to use TURN or STUN servers ([RFC
 5766](https://tools.ietf.org/html/rfc5766)) to establish a connection
diff --git a/technical/4.2.-Submit-your-first-patch.md b/developer/submitting-your-first-patch.md
similarity index 97%
rename from technical/4.2.-Submit-your-first-patch.md
rename to developer/submitting-your-first-patch.md
index 1a8b0b54b2b2b6c8058ef943812b825d63764856..996dafb12235f871d8cdb299102500107e652b15 100644
--- a/technical/4.2.-Submit-your-first-patch.md
+++ b/developer/submitting-your-first-patch.md
@@ -1,5 +1,5 @@
-Submit your first patch
-=======================
+Submitting your first patch
+===========================
 
 ## Setting up git and ssh
 
diff --git a/technical/swarm.md b/developer/swarm.md
similarity index 99%
rename from technical/swarm.md
rename to developer/swarm.md
index 40951ed52878c054f39e01444ebbbbcdf8d087f5..e1b2d9dedc5415a79b9e57847870d42e1ba2b543 100644
--- a/technical/swarm.md
+++ b/developer/swarm.md
@@ -490,7 +490,7 @@ Alice wants to send a message to Bob:
 
 ### Implementation
 
-![swarm-chat](uploads/eade038fbc7bb245d8a5f98369a49d4c/swarm-chat.jpg)
+![Diagram: swarm chat classes](images/swarm-chat-classes-diagram.jpg)
 ---------------
 
 **!! OLD DRAFT !!**
diff --git a/technical/6.2.-Sync-Protocol.md b/developer/synchronization-protocol.md
similarity index 100%
rename from technical/6.2.-Sync-Protocol.md
rename to developer/synchronization-protocol.md
diff --git a/technical/3.8-Sync-profiles.md b/developer/synchronizing-profiles.md
similarity index 100%
rename from technical/3.8-Sync-profiles.md
rename to developer/synchronizing-profiles.md
diff --git a/technical/Technical-overview.md b/developer/technical-overview.md
similarity index 100%
rename from technical/Technical-overview.md
rename to developer/technical-overview.md
diff --git a/technical/7.2 - Tensorflow Plugin.md b/developer/tensorflow-plugin.md
similarity index 100%
rename from technical/7.2 - Tensorflow Plugin.md
rename to developer/tensorflow-plugin.md
diff --git a/guidelines/UI-and-UX-development.md b/guidelines/UI-and-UX-development.md
index dc8cc8b6437869ff2f4f5c76123ec5484e8cd8fe..2f96abd2838b6c5427d8fb60805aaa647a6765fe 100644
--- a/guidelines/UI-and-UX-development.md
+++ b/guidelines/UI-and-UX-development.md
@@ -12,15 +12,15 @@ As a start, we should post screenshots from all important Ring views.
 
 Part | GNOME | OSX | WIN32 | UWP | Android 
 -----|-------|-----|-------|-----|--------
-Main | ![Main-view-gnome](/uploads/4183b887eefad2454625f2f1bf762460/Main-view-gnome.png) | TODO | ![Main-view-win32](/uploads/b14921088125981999e22dbbd4f900e9/Main-view-win32.png) | TODO | TODO 
-New account creation (initial) |  ![Account-wizard-1-gnome](/uploads/a68d5c796cd09a63f934fdebe1a90af4/Account-wizard-1-gnome.png) | TODO | ![Account-wizard-1-win32](/uploads/1d28dd7590538390202aaa8e2bd35423/Account-wizard-1-win32.png) | TODO | TODO 
-New account creation (main) |  ![Account-wizard-2-gnome](/uploads/9f374098a9cbd04ecf2eca8a3a1acdde/Account-wizard-2-gnome.png) | TODO | ![Account-wizard-2-win32](/uploads/bd03d4962be96b4c3692c156904b91c9/Account-wizard-2-win32.png) | TODO | TODO 
-new account (clicked next) |  Text with spinner + confirmation/error message | TODO | ![Account-wizard-3-win32](/uploads/312b56d8cf572ab1f6e7c7c056953087/Account-wizard-3-win32.png) | TODO | TODO 
-Link device (initial) |  ![Account-wizard-1-gnome](/uploads/89f2e997b457fe2f824e0722031d307d/Account-wizard-1-gnome.png) | TODO | ![Account-wizard-1-win32](/uploads/ff1ac234eed8abeeb1b152ee0d1a7e18/Account-wizard-1-win32.png) | TODO | TODO 
-Link device (explanatory) |  ![Account-link-device-1](/uploads/42aa54246a264a908370bb83e22d50c3/Account-link-device-1.png) | TODO | ![Account-link-device-1-win32](/uploads/e8b86b541b6da8c81e4a6c876d902097/Account-link-device-1-win32.png) | TODO | TODO 
-Link device (pin + password) | ![Account-link-device-2](/uploads/91f11432cb8e63e717b8460bc05d63a3/Account-link-device-2.png) |	TODO | ![Account-link-device-2-win32](/uploads/3d659afe96b24dc222d8f88f5e616811/Account-link-device-2-win32.png) | TODO | TODO 
-Chat | ![Ring_gnome_chat_view](/uploads/fe6dac09b551f2922991fe956fae0bb5/Ring_gnome_chat_view.png) | TODO | TODO | TODO | TODO 
+Main | ![Main-view-gnome](https://git.jami.net/savoirfairelinux/jami-project/uploads/4183b887eefad2454625f2f1bf762460/Main-view-gnome.png) | TODO | ![Main-view-win32](https://git.jami.net/savoirfairelinux/jami-project/uploads/b14921088125981999e22dbbd4f900e9/Main-view-win32.png) | TODO | TODO 
+New account creation (initial) |  ![Account-wizard-1-gnome](https://git.jami.net/savoirfairelinux/jami-project/uploads/a68d5c796cd09a63f934fdebe1a90af4/Account-wizard-1-gnome.png) | TODO | ![Account-wizard-1-win32](https://git.jami.net/savoirfairelinux/jami-project/uploads/1d28dd7590538390202aaa8e2bd35423/Account-wizard-1-win32.png) | TODO | TODO 
+New account creation (main) |  ![Account-wizard-2-gnome](https://git.jami.net/savoirfairelinux/jami-project/uploads/9f374098a9cbd04ecf2eca8a3a1acdde/Account-wizard-2-gnome.png) | TODO | ![Account-wizard-2-win32](https://git.jami.net/savoirfairelinux/jami-project/uploads/bd03d4962be96b4c3692c156904b91c9/Account-wizard-2-win32.png) | TODO | TODO 
+new account (clicked next) |  Text with spinner + confirmation/error message | TODO | ![Account-wizard-3-win32](https://git.jami.net/savoirfairelinux/jami-project/uploads/312b56d8cf572ab1f6e7c7c056953087/Account-wizard-3-win32.png) | TODO | TODO 
+Link device (initial) |  ![Account-wizard-1-gnome](https://git.jami.net/savoirfairelinux/jami-project/uploads/89f2e997b457fe2f824e0722031d307d/Account-wizard-1-gnome.png) | TODO | ![Account-wizard-1-win32](https://git.jami.net/savoirfairelinux/jami-project/uploads/ff1ac234eed8abeeb1b152ee0d1a7e18/Account-wizard-1-win32.png) | TODO | TODO 
+Link device (explanatory) |  ![Account-link-device-1](https://git.jami.net/savoirfairelinux/jami-project/uploads/42aa54246a264a908370bb83e22d50c3/Account-link-device-1.png) | TODO | ![Account-link-device-1-win32](https://git.jami.net/savoirfairelinux/jami-project/uploads/e8b86b541b6da8c81e4a6c876d902097/Account-link-device-1-win32.png) | TODO | TODO 
+Link device (pin + password) | ![Account-link-device-2](https://git.jami.net/savoirfairelinux/jami-project/uploads/91f11432cb8e63e717b8460bc05d63a3/Account-link-device-2.png) |	TODO | ![Account-link-device-2-win32](https://git.jami.net/savoirfairelinux/jami-project/uploads/3d659afe96b24dc222d8f88f5e616811/Account-link-device-2-win32.png) | TODO | TODO 
+Chat | ![Ring_gnome_chat_view](https://git.jami.net/savoirfairelinux/jami-project/uploads/fe6dac09b551f2922991fe956fae0bb5/Ring_gnome_chat_view.png) | TODO | TODO | TODO | TODO 
 
 ## Future
 
-[Ring_GNOME_client_mock-ups.pdf](/uploads/698997f2126004a2e82b3d6e32bcdae4/Ring_GNOME_client_mock-ups.pdf)
+[Ring_GNOME_client_mock-ups.pdf](https://git.jami.net/savoirfairelinux/jami-project/uploads/698997f2126004a2e82b3d6e32bcdae4/Ring_GNOME_client_mock-ups.pdf)
diff --git a/index.rst b/index.rst
index 31a8fcf60961213b5a4158736e0735aa570641c8..1f09ecfbc17c2b791efef7c6c4bdbffd8888e121 100644
--- a/index.rst
+++ b/index.rst
@@ -23,6 +23,6 @@ This documentation is community-driven and :ref:`anyone can contribute
 
    user/index
    build/index
-   technical/index
+   developer/index
    contribute
    misc
diff --git a/misc.rst b/misc.rst
index 0ab6caffd7c99d188f7e687d7b49f5db23b57918..3df3e8d6d01d0260b7f9bb4f4b1324536b488752 100644
--- a/misc.rst
+++ b/misc.rst
@@ -14,39 +14,11 @@ may change at any time.
 
    guidelines/Banned-Contact
    guidelines/Coding-rules
-   guidelines/Identifiers
    guidelines/Libringclient-Coding-Rules
    guidelines/Qt-and-QML-coding-guidelines
    guidelines/Qt-and-QML-testing-tools
    guidelines/UI-and-UX-development
    others/gsoc
-   technical/0.-Introduction
-   technical/1.-The-different-APIs
-   technical/2.1.-Manage-Accounts
-   technical/2.2.-Manage-contacts
-   technical/swarm
-   technical/2.4.-Let's-do-a-call
-   technical/2.5.-File-transfer
-   2.6-Displayed-status
-   technical/3.6-Setup-your-own-TURN-server
-   technical/3.8-Sync-profiles
-   technical/4.2.-Submit-your-first-patch
-   technical/4.3.-Features-requests
-   technical/5.2.-The-connection-manager
-   technical/5.5-Call-in-Swarms
-   technical/6.1.-Conference-Protocol
-   technical/6.2.-Sync-Protocol
-   technical/7.-Jami-plugins
-   technical/7.1---Create-Plugin
-   technical/7.2---Tensorflow-Plugin
-   technical/Important-RFCs
-   technical/Improving-Jami's-quality
-   technical/LRC-documentation
-   technical/Name-Server-Protocol
-   technical/Protocol
-   technical/Release-process
-   technical/Technical-overview
-   Choosing-CRF-value-for-encoder
    tutorials/Jami-distributed-network
    tutorials/Réseau-distribué-Jami
    tutorials/Questions-récurrentes
diff --git a/technical/index.rst b/technical/index.rst
deleted file mode 100644
index 3fc5d86a6ed94e3d744e23263e7e3085559f4ed1..0000000000000000000000000000000000000000
--- a/technical/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-#########
-Technical
-#########
-
-This chapter includes in-depth explanations of how Jami is designed.
-It also serves as a reference for contributors.
-
-.. toctree::
-   :maxdepth: 1
-
-   swarm
diff --git a/tutorials/Jami-distributed-network.md b/tutorials/Jami-distributed-network.md
index 3ca374d5d48d8c1055f4a8df7a3b40ab7a002550..a6421a307eb13d0132178c8331454fd487685075 100644
--- a/tutorials/Jami-distributed-network.md
+++ b/tutorials/Jami-distributed-network.md
@@ -12,7 +12,7 @@ advantages when compared to federated networks:
 -   Do not depend on anything other than its users,
 -   Trust amongst nodes is not necessary.
 
-![Network-topo](/uploads/9b725e440c2705a2a3c4d0a3df092066/Network-topo.png)
+![Network-topo](https://git.jami.net/savoirfairelinux/jami-project/uploads/9b725e440c2705a2a3c4d0a3df092066/Network-topo.png)
 
 This network forms a Distributed Hash Table (DHT)
 
diff --git "a/tutorials/R\303\251seau-distribu\303\251-Jami.md" "b/tutorials/R\303\251seau-distribu\303\251-Jami.md"
index a12fc679bbd61d51bc8a555bd87574e3aad7419b..6de8bdfdf8899b549ae3291db89e2bbd209d4dbb 100644
--- "a/tutorials/R\303\251seau-distribu\303\251-Jami.md"
+++ "b/tutorials/R\303\251seau-distribu\303\251-Jami.md"
@@ -12,7 +12,7 @@ Jami s'appuie sur un [réseau distribué] (tutoriels/Jami-distributed-network),
 - Ne dépend pas d'autre chose que de ses utilisateurs,
 - La confiance entre les "noeuds" (utilisateurs relais, interrmédiaires) n'est pas nécessaire.
 
-![Réseau-topo](/uploads/9b725e440c2705a2a3c4d0a3df092066/Network-topo.png)
+![Réseau-topo](https://git.jami.net/savoirfairelinux/jami-project/uploads/9b725e440c2705a2a3c4d0a3df092066/Network-topo.png)
 
 Ce réseau forme une table de hachage distribuée (DHT).
 
diff --git a/uploads/011997fde0cfad7c20f07ecf13e7c221/create_account_jami_android_EN.pdf b/user-manual/create-jami-account-android-en.pdf
similarity index 100%
rename from uploads/011997fde0cfad7c20f07ecf13e7c221/create_account_jami_android_EN.pdf
rename to user-manual/create-jami-account-android-en.pdf
diff --git a/uploads/0fdecfe81c4ff47fbfe86069317663b3/create_account_jami_iOS_EN.pdf b/user-manual/create-jami-account-ios-en.pdf
similarity index 100%
rename from uploads/0fdecfe81c4ff47fbfe86069317663b3/create_account_jami_iOS_EN.pdf
rename to user-manual/create-jami-account-ios-en.pdf
diff --git a/uploads/0fec09385e12bbd719576723ecf5cb4f/create_account_jami_macOS_EN.pdf b/user-manual/create-jami-account-macos-en.pdf
similarity index 100%
rename from uploads/0fec09385e12bbd719576723ecf5cb4f/create_account_jami_macOS_EN.pdf
rename to user-manual/create-jami-account-macos-en.pdf
diff --git a/user-manual/create-jami-account.md b/user-manual/create-jami-account.md
index 1ded33b1934662bd27c2f4fb2265da155b45a611..ca4a93f9c5aa673455347887472f0fe04c56a48b 100644
--- a/user-manual/create-jami-account.md
+++ b/user-manual/create-jami-account.md
@@ -3,16 +3,16 @@ GNU Jami - Create Jami account
 
 CREATE A JAMI ACCOUNT ON: 
 
-ANDROID EN [create_account_jami_android_EN.pdf](uploads/011997fde0cfad7c20f07ecf13e7c221/create_account_jami_android_EN.pdf)
+Android (EN) [create-jami-account-android-en.pdf](create-jami-account-android-en.pdf)
 
-ANDROID FR [creer_compte_jami_android_FR.pdf](uploads/8a5d6cff3bcff49f2c9a02898dcaf98f/creer_compte_jami_android_FR.pdf)
+Android (FR) [creer-compte-jami-android-fr.pdf](creer-compte-jami-android-fr.pdf)
 
-macOS EN [create_account_jami_macOS_EN.pdf](uploads/0fec09385e12bbd719576723ecf5cb4f/create_account_jami_macOS_EN.pdf)
+macOS (EN) [create-jami-account-macos-en.pdf](create-jami-account-macos-en.pdf)
 
-macOS FR [creer_compte_jami_macOS_FR.pdf](uploads/2f6c468c3da869048feb791ce5c766f7/creer_compte_jami_macOS_FR.pdf)
+macOS (FR) [creer-compte-jami-macos-fr.pdf](creer-compte-jami-macos-fr.pdf)
 
-iOS EN [create_account_jami_iOS_EN.pdf](uploads/0fdecfe81c4ff47fbfe86069317663b3/create_account_jami_iOS_EN.pdf)
+iOS (EN) [create-jami-account-ios-en.pdf](create-jami-account-ios-en.pdf)
 
-iOS FR [creer_compte_jami_iOS_FR.pdf](uploads/0343e3e89a2f7ce553cb3f651f21612c/creer_compte_jami_iOS_FR.pdf)
+iOS (FR) [creer-compte-jami-ios-fr.pdf](creer-compte-jami-ios-fr.pdf)
 
-Windows FR [creer_compte_jami_windows_FR.pdf](uploads/977506b8f8963826406c802474145a91/creer_compte_jami_windows_FR.pdf)
+Windows (FR) [creer-compte-jami-windows-fr.pdf](creer-compte-jami-windows-fr.pdf)
diff --git a/uploads/8a5d6cff3bcff49f2c9a02898dcaf98f/creer_compte_jami_android_FR.pdf b/user-manual/creer-compte-jami-android-fr.pdf
similarity index 100%
rename from uploads/8a5d6cff3bcff49f2c9a02898dcaf98f/creer_compte_jami_android_FR.pdf
rename to user-manual/creer-compte-jami-android-fr.pdf
diff --git a/uploads/0343e3e89a2f7ce553cb3f651f21612c/creer_compte_jami_iOS_FR.pdf b/user-manual/creer-compte-jami-ios-fr.pdf
similarity index 100%
rename from uploads/0343e3e89a2f7ce553cb3f651f21612c/creer_compte_jami_iOS_FR.pdf
rename to user-manual/creer-compte-jami-ios-fr.pdf
diff --git a/uploads/2f6c468c3da869048feb791ce5c766f7/creer_compte_jami_macOS_FR.pdf b/user-manual/creer-compte-jami-macos-fr.pdf
similarity index 100%
rename from uploads/2f6c468c3da869048feb791ce5c766f7/creer_compte_jami_macOS_FR.pdf
rename to user-manual/creer-compte-jami-macos-fr.pdf
diff --git a/uploads/977506b8f8963826406c802474145a91/creer_compte_jami_windows_FR.pdf b/user-manual/creer-compte-jami-windows-fr.pdf
similarity index 100%
rename from uploads/977506b8f8963826406c802474145a91/creer_compte_jami_windows_FR.pdf
rename to user-manual/creer-compte-jami-windows-fr.pdf