diff --git a/Documentation.md b/Documentation.md
new file mode 100644
index 0000000..d34cb2a
--- /dev/null
+++ b/Documentation.md
@@ -0,0 +1,183 @@
+- [Documentation](#documentation)
+- [Installation](#installation)
+ - [Use Docker Compose](#use-docker-compose)
+- [Configuration](#configuration)
+ - [Global configuration](#global-configuration)
+ - [Link shortener for contacts](#link-shortener-for-contacts)
+- [Add content](#add-content)
+ - [Blog](#blog)
+ - [Projects](#projects)
+ - [Contacts](#contacts)
+
+# Documentation
+
+[Here is a running example](https://www.mylloon.fr/) of a fully configured website.
+
+# Installation
+
+## Use Docker Compose
+
+```yaml
+version: "3.9"
+
+services:
+ ewp:
+ image: git.mylloon.fr/anri/mylloon.fr:latest
+ container_name: EWP
+ volumes:
+ - /here/your/path/config:/app/config
+ - /here/your/path/data:/app/data
+ ports:
+ - 80:8080
+ restart: unless-stopped
+```
+
+
+Do you want to make the site available on Tor as well?
+
+```yaml
+version: "3.9"
+
+services:
+ tor:
+ image: goldy/tor-hidden-service:latest
+ container_name: Website_tor
+ network_mode: bridge
+ links:
+ - ewp
+ environment:
+ EWP_TOR_SERVICE_HOSTS: "80:ewp:8080"
+ EWP_TOR_SERVICE_VERSION: "3"
+ volumes:
+ - tor-keys:/var/lib/tor/hidden_service/
+ secrets:
+ - source: ewp
+ target: ewp
+ mode: 0400
+ restart: unless-stopped
+
+ ewp:
+ image: git.mylloon.fr/anri/mylloon.fr:latest
+ container_name: Website
+ network_mode: bridge
+ hostname: ewp
+ volumes:
+ - /here/your/path/ewp/app/config:/app/config
+ - /here/your/path/ewp/app/data:/app/data
+ ports:
+ - 99:8080
+ restart: unless-stopped
+
+volumes:
+ tor-keys:
+ driver: local
+
+# Use https://github.com/cathugger/mkp224o to generate a key
+secrets:
+ ewp:
+ file: /here/your/path/ewp/hidden_service/hs_ed25519_secret_key
+```
+
+You can tell the Tor Browser that you are offering an `onion` link by specifying
+your address in the `config.toml` file.
+
+```toml
+onion = "http://youraddress.onion/"
+```
+
+
+
+# Configuration
+
+## Global configuration
+
+This file is stored at `/app/config/config.toml`
+
+```toml
+mail = "your.mail at host.com"
+lang = "lang"
+onion = "http://youraddress.onion/"
+app_name = "Nickname"
+name = "Firstname"
+fullname = "Fullname"
+```
+
+## Link shortener for contacts
+
+
+
+# Add content
+
+Markdown files have YAML headers with `---` separator:
+
+```
+---
+option: value
+---
+
+Markdown file
+```
+
+## Blog
+
+Markdown files are stored in `/app/data/blog/`
+
+```
+---
+title: Option
+date: Option
+description: Option
+publish: Option
+tags: Option>
+---
+
+Post content
+```
+
+- if no `title`, the filename will be used
+- `date` format is `day-month-year`
+- `publish` is default to false. When false, posts are hidden from index
+ but accessible, see #30
+
+## Projects
+
+Markdown files are stored in `/app/data/projects/`
+
+```
+---
+title: Option
+link: Option
+description: Option
+language: Option
+---
+
+Project description
+```
+
+- If no `link` : the div won't be clickable and will be reported as is to the user
+ (no corner-arrow)
+- Note that only a handful of [`language`s are supported](./static/css/languages.css).
+
+## Contacts
+
+Markdown files are stored in `/app/data/contacts/`
+
+```
+---
+title: String
+custom: Option
+user: Option
+link: Option
+newtab: Option
+description: Option
+---
+
+Custom project description
+```
+
+- `custom` is default to `false`, if `true` all other metadata are ignored,
+ except the `title`, and the markdown will be used instead
+- when `custom` is `false` then markdown will be ignored and only metadata will
+ be used to create the contact field
+- `newtab` add property to open in a new tab a link
+- `user` is the username used in the platform
diff --git a/README.md b/README.md
index 8604739..b718bc1 100644
--- a/README.md
+++ b/README.md
@@ -5,87 +5,5 @@ Easy WebPage generator
[![dependency status](https://deps.rs/repo/gitea/git.mylloon.fr/Anri/mylloon.fr/status.svg)](https://deps.rs/repo/gitea/git.mylloon.fr/Anri/mylloon.fr)
[![status-badge](https://ci.mylloon.fr/api/badges/Anri/mylloon.fr/status.svg)](https://ci.mylloon.fr/Anri/mylloon.fr)
-See [issues](https://git.mylloon.fr/Anri/mylloon.fr/issues)
-
-## Use Docker Compose
-
-```yaml
-version: "3.9"
-
-services:
- ewp:
- image: git.mylloon.fr/anri/mylloon.fr:latest
- container_name: EWP
- volumes:
- - /here/your/path/config:/app/config
- - /here/your/path/data:/app/data
- ports:
- - 80:8080
- restart: unless-stopped
-```
-
-
-Do you want to make the site available on Tor as well?
-
-```yaml
-version: "3.9"
-
-services:
- tor:
- image: goldy/tor-hidden-service:latest
- container_name: Website_tor
- network_mode: bridge
- links:
- - ewp
- environment:
- EWP_TOR_SERVICE_HOSTS: "80:ewp:8080"
- EWP_TOR_SERVICE_VERSION: "3"
- volumes:
- - tor-keys:/var/lib/tor/hidden_service/
- secrets:
- - source: ewp
- target: ewp
- mode: 0400
- restart: unless-stopped
-
- ewp:
- image: git.mylloon.fr/anri/mylloon.fr:latest
- container_name: Website
- network_mode: bridge
- hostname: ewp
- volumes:
- - /here/your/path/ewp/app/config:/app/config
- - /here/your/path/ewp/app/data:/app/data
- ports:
- - 99:8080
- restart: unless-stopped
-
-volumes:
- tor-keys:
- driver: local
-
-# Use https://github.com/cathugger/mkp224o to generate a key
-secrets:
- ewp:
- file: /here/your/path/ewp/hidden_service/hs_ed25519_secret_key
-```
-
-You can tell the Tor Browser that you are offering an `onion` link by specifying
-your address in the `config.toml` file.
-
-```toml
-onion = "http://youraddress.onion/"
-```
-
-
-
-## Example of [`config.toml`](./config/config.toml)
-
-```toml
-mail = "your.mail at host.com"
-lang = "lang"
-onion = "http://youraddress.onion/"
-app_name = "Nickname"
-name = "Firstname"
-fullname = "Fullname"
-```
+- See [issues](https://git.mylloon.fr/Anri/mylloon.fr/issues)
+- See [documentation](/Documentation.md)