---
title: WriteFreely
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, activitypub-fediverse, blog, minimaliste, go, fediverse, markdown]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/writefreely/writefreely, https://writefreely.org/]
---

# 🔗 WriteFreely

> **Le blog minimaliste et fédéré** : un éditeur Markdown sans fioritures, multi-blogs par instance, et exposé au Fediverse via ActivityPub comme un compte Mastodon natif.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [https://writefreely.org](https://writefreely.org) |
| **GitHub** | [https://github.com/writefreely/writefreely](https://github.com/writefreely/writefreely) |
| **License** | AGPL-3.0 |
| **Langage principal** | Go |
| **Étoiles GitHub** | 2 500 ⭐ |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-activitypub-fediverse]] |

## Description

WriteFreely est un logiciel de **blogging minimaliste** écrit en Go, conçu pour se concentrer sur l'écriture. L'interface est volontairement épurée : un **éditeur Markdown** plein écran, un thème de lecture soigné, des **modèles de publication** (article court, longue, image, citation), et rien d'autre. L'inspiration explicite est l'écriture de journal intime ou d'essayiste, pas la production de contenu à fort volume.

Mais la vraie force de WriteFreely, et ce qui le distingue d'un Ghost ou WordPress, est sa **federation ActivityPub native** : un blog WriteFreely s'expose au Fediverse comme un compte Mastodon. Vos lecteurs peuvent **suivre votre blog depuis Mastodon/Misskey/etc.**, voir les nouveaux articles apparaître dans leur timeline, et répondre avec des pouets qui remonteront sur votre blog. Idéal pour les écrivains, journalistes, chercheurs qui veulent un blog sobre mais interopérable.

Fonctionnalités principales : **blogs multiples par instance** (ou un seul blog collectif type publication), **pages statiques** (« page » vs « post »), **Collections** (multi-auteurs), **OAuth2** (authentification GitHub, GitLab, Slack…), **branding personnalisable** (CSS custom), **export JSON** de tous les articles, **lecteur Reader** intégré qui agrège les abonnements d'un utilisateur.

**Points forts** : binaire Go unique, RAM très faible (50-100 Mo), UI léchée, federation ActivityPub propre, communauté attachée à la sobriété numérique.

**Points faibles** : pas de thème « custom » riche comme Ghost, pas de commentaires natifs (la federation sert de substitut), pas d'éditeur WYSIWYG, pas de SEO approfondi (même si les balises meta sont propres).

## Installation

### Via Docker (recommandé)

L'image officielle est `writeas/writefreely` ou `writefreely/writefreely` sur Docker Hub. La stack typique utilise SQLite (par défaut) ou MySQL, et un serveur web front.

```yaml
# docker-compose.yml
services:
  writefreely:
    image: writefreely/writefreely:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - writefreely_data:/data
    environment:
      WF_SHARED: "false"
      WF_BIND: 0.0.0.0:8080
      WF_USER: blog
      WF_PASSWORD: change-me
      WF_TYPE: sqlite
      WF_DBNAME: /data/writefreely.db
      WF_HOSTNAME: blog.example.com
      WF_ADMIN: admin@example.com

volumes:
  writefreely_data:
```

Pour MySQL, ajouter un service MariaDB et utiliser `WF_TYPE: mysql`.

### Installation manuelle

Voir la doc : `https://writefreely.org/start`. Télécharger le binaire Go depuis les releases, exécuter `./writefreely --config`, éditer `config.ini` et lancer le service (systemd unit fourni).

## Configuration

1. Lancer la stack et accéder à l'URL pour finaliser la configuration.
2. Créer le **compte admin** (l'email fourni dans `WF_ADMIN`).
3. Configurer les **pages statiques**, le **branding** (logo, CSS custom).
4. Activer l'**authentification OAuth** (GitHub, GitLab) si vous voulez faciliter l'inscription de co-auteurs.
5. **Configurer le reverse-proxy HTTPS** (Caddy) — WriteFreely redirige HTTP→HTTPS par défaut si configuré.
6. Activer la **federation ActivityPub** dans `config.ini` (`federation = true`) — par défaut activée.

## Alternatives

### Open source
- [[app-mastodon]] — Pour ceux qui veulent microblogage seul (pas de blog)
- **Ghost** — CMS blog complet, sans ActivityPub
- **Pleroma** — Plus complet mais pas de blog long
- **Plume** (archivé) — Ancienne alternative blog fediverse, plus maintenue
- [[app-pixelfed]] — Spécialisé photo, complémentaire

### Propriétaires
- **Medium** — Plateforme de blog centralisée
- **Substack** — Newsletter payante, pas self-hostable
- **WordPress.com** — Blog managé, source fermée pour la version cloud

## Sécurité

- ✅ **Authentification** : email + mot de passe (bcrypt), 2FA TOTP (depuis v0.15), OAuth2 GitHub/GitLab
- ✅ **HTTPS** recommandé (HSTS supporté)
- ✅ **Modération** : signalements, blocage de comptes et d'instances
- ✅ **Vie privée** : pas de tracking, pas de pub, pas d'analytics tiers
- ⚠️ **Federation** : exposer un blog personnel au Fediverse attire du spam, activer l'anti-spam natif
- ⚠️ **OAuth** : bien configurer les secrets et les scopes autorisés
- ⚠️ **Sauvegarde** : SQLite est simple, mais penser à `cp` la base régulièrement

## Ressources

- [Site officiel](https://writefreely.org)
- [Documentation](https://writefreely.org/start)
- [GitHub writefreely/writefreely](https://github.com/writefreely/writefreely)
- [Communauté forum](https://discuss.write.as)

## Pages Liées

- [[cat-activitypub-fediverse]] — Catégorie parente
- [[app-mastodon]] — Federation avec le microblogage
- [[app-fluxer]] — Pour la communication plus instantanée
- [[app-caddy]] — Reverse-proxy HTTPS
- [[recettes-docker-compose]] — Templates Docker
