HopHop

Comment j'ai choisi ma stack de blog

grav mcp fediverse meta

Ça faisait un moment que l'idée me trottait dans la tête : un blog perso pour documenter mes bricolages Home Assistant, mes expériences self-hosted, et globalement tout ce qui me rend fier dans mon coin de geek. Un truc simple et pas trop time consuming et acceptable visuellement sans devoir trop me salir les mains à faire du front. Beurk

En bref

Pour les pressés, voici le parcours :

  • Définition des critères (Markdown, multilingue, PHP, intégration IA)
  • Élimination des suspects habituels (WordPress, Ghost)
  • Découverte de Grav et son approche flat-file
  • Développement d'un plugin MCP pour piloter le blog depuis Claude
  • Branchement sur le Fediverse via Bridgy Fed

Ce que je voulais

Mes critères de départ semblaient raisonnables :

  • Markdown natif — J'écris du code, je veux écrire mes articles comme mes README
  • Syntax highlighting — Un blog tech sans coloration syntaxique, c'est comme une pizza sans fromage
  • Multilingue — Pour les jours où je me sens international
  • Pas moche — Oui, c'est un critère technique
  • Open source — On ne se refait pas
  • PHP de préférence — C'est mon terrain de jeu quotidien, autant rester en terrain connu

Jusque-là, rien de fou. Et puis j'ai ajouté deux petites lignes :

  • Intégration MCP Claude — Parce que demander à Claude de traduire mes articles ou de créer des posts depuis le terminal, ça me faisait vraiment envie
  • Fediverse — Pouvoir recevoir les commentaires depuis Mastodon plutôt que gérer un système de commentaires et ses spams

"C'est pas grand-chose", que je me suis dit. Ah.

Le tour du propriétaire

WordPress ? Non merci.

Le réflexe classique. Mais pour un blog perso, c'est comme prendre un semi-remorque pour aller chercher le pain. Plugin de sécurité, plugin de cache, plugin pour que les plugins marchent ensemble... Pas que ca à foutre...

Ghost ? Presque.

Élégant, moderne, API nickel. Mais c'est du Node.js. Et moi, Node sur mon serveur, si je peux, j'évite...

Grav ? Bingo.

Flat-file (pas de base de données), PHP natif, Markdown de base, multilingue intégré ... Surtout que comme je compte utiliser pas mal l'IA pour rédiger, ça me parait prometteur.

L'architecture cible

Voici ce que je vise :

┌─────────────────────────────────────────────┐
│              Mon serveur                     │
│                                             │
│   Grav ──── Plugin MCP ◄──── Claude Code   │
│     │                                       │
│     └──── RSS ──── Bridgy Fed ──── Mastodon │
│                         │                   │
│                    Webmention               │
│                   (commentaires)            │
└─────────────────────────────────────────────┘

Grav pour le contenu

Mes articles sont de simples fichiers Markdown dans des dossiers. Backup ? cp -r. Migration ? scp. Git ? Natif. Transuille Emile.

Un plugin MCP maison

C'est là que ça devient fun. J'ai développé un plugin qui expose une API MCP sur mon blog. J'en parle en détail dans l'article sur le développement du plugin MCP. Résultat : je peux demander à Claude "Crée un article sur mon nouveau setup Zigbee" ou "Traduis l'article sur Home Assistant en anglais", et il le fait. Directement. Sans ouvrir l'admin.

Le plugin est en PHP grâce au SDK MCP officiel, et je compte le partager à la communauté Grav une fois qu'il sera bien rodé.

Bridgy Fed pour le Fediverse

L'idée : connecter mon flux RSS à Bridgy Fed. J'ai fini par développer un plugin Grav complet pour ça, que je détaille dans cet article. Les gens pourront me suivre depuis Mastodon, et quand ils commentent, ça reviendra sur mon blog via Webmention. Pas de compte à créer, pas de spam à modérer, pas de RGPD à gérer. Juste des conversations.

J'avoue que je fais ca pour la beauté du geste. Comme je ne suis pas très résau sociaux, je pense que j'ai 4 personnes qui me suivent ;) Mais bon j'aime bien le concept derrière mastodon et le fediverse en général et je voulais m'y integrfacer...

La suite

Le blog est en ligne, le MCP fonctionne, et je peux enfin commencer à écrire. Enfin on verras si je le fais ;)

A plus dans le bus!

Interactions du Fediverse

1

Article précédent Article suivant