webmentions indieweb sovranità
Origine
Ho scoperto le Webmention leggendo la specifica IndieWeb.
Nessun API key. Nessun OAuth. Nessun account su piattaforme terze. Solo due URL:
- Source: chi mi ha linkato (es. https://altri-sito.com/articolo)
- Target: la mia pagina (es. https://tizianogasparet.com/it/manifesto/p/)
Il server source invia una richiesta POST al mio endpoint /webmention.
Il mio server verifica che il link esista davvero.
Se esiste, salvo la menzione nel database.
Se non esiste, la scarto.
Tutto qui.
Niente intermediari. Niente algoritmi che decidono cosa vedo. Niente platform lock-in.
Il nesso
Perché il Monolito archivia questo? Perché le Webmention sono sovranità pura.
Quando qualcuno linka un mio articolo su un altro sito IndieWeb, io lo so. Non perché Facebook me lo dice. Non perché Twitter mi notifica. Ma perché il protocollo stesso me lo consegna.
È il web decentralizzato che funziona come dovrebbe:
- Tu pubblichi sul tuo dominio.
- Io pubblico sul mio dominio.
- Se tu mi linki, io lo so.
- Nessuno di noi dipende da una piattaforma centrale.
Il nesso è politico: le Webmention sono un atto di resistenza contro la centralizzazione.
La sfida
La sfida tecnica è stata implementare il server su OpenBSD.
Non esiste un plugin “installa e dimenticati”. Devo:
- Configurare relayd per forwardare
/webmentiona Node.js (porta 3000). - Scrivere lo script Node che verifica i link.
- Salvare le menzioni in un JSON locale.
- Esporre un’API
/api/mentionsper leggerle. - Mostrare le menzioni nel frontend Astro.
La sfida psicologica è stata accettare che non tutte le menzioni arrivano.
Se un sito non supporta Webmention, non lo so. Se qualcuno mi linka su Medium o LinkedIn, non ricevo nulla. Devo accettare che il mio ecosistema è limitato a chi usa gli stessi standard aperti.
Ma è un limite che accetto volentieri. Preferisco 10 menzioni su siti sovrani che 1000 like su piattaforme che mi possiedono.
Pace Mentale
Ora che ho scritto questo, ho chiarito il valore delle Webmention:
- Sono notifiche dirette, senza intermediari.
- Sono verificate, non spoofabili.
- Sono sotto il mio controllo (il mio server, il mio database).
- Sono interoperabili (chiunque può implementarle).
La Pace Mentale viene dal sapere che ogni menzione che ricevo è un atto di rispetto. Qualcuno ha dedicato tempo a linkarmi sul proprio dominio, non a cliccare “condividi” su un pulsante di una piattaforma.
E ogni volta che mostro le menzioni sul sito, sto dicendo: “Questo spazio è connesso, ma non dipendente.”
Il Monolito non è un’isola. È un nodo nella rete.
Nota tecnica:
- Endpoint: POST /webmention (source + target)
- Verifica: GET source → cerca target nel contenuto
- Storage: /var/www/webmention/data/mentions.json
- API: GET /api/mentions?target=URL
- Frontend: componente Astro Webmentions.astro (client-side fetch)
- Cache: 5 minuti in localStorage per performance
- Zero dipendenze: tutto self-hosted su OpenBSD