Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

19.03.2025

ActivityPub

Сьогодні роздивлявся більш уважно протокол ActivityPub, бо є така гадка, що публікувати пости у Mastodon це взагалі зайвий крок. Наприклад, осьо непоганий посібник, як додати ActivityPub навіть до статичного сайту. Але спочатку, що це взагалі значить?

ActivityPub пропонується як “протокол для децентралізованої соціальної мережі”. Якщо HTTP є суто “реактивним” протоколом, ActivityPub формалізує довгострокову підписку на ресурс — тобто він буде проактивно надсилати свої оновлення.

Власне, ActivityPub має більше спільного з SMTP, ніж з RSS. Хоча й побудований на HTTP, а також на JSON-LD (JSON, доповнений схемою). Але доставлення подій тут відбувається за методом Push, а не Pull. Тобто коли ресурс (“актор” на мові ActivityPub) публікує новий пост, то він розсилається всім підписникам — так само як і поштова розсилка. Різниця хіба в тому, що ActivityPub працює симетрично — в кожного актора є вхідна та вихідна скриня.

(Друге, що треба знати, це одиницею інформації в ActivityPub є подія. За природою це Event-Sourced протокол: поточний стан формується як накопичення змін-подій. Створення поста — подія, редагування та видалення — теж, як і поширення та вподобайка.)

Отже, якщо реалізувати на сайті вхідну та вихідну скриню, а також зберігати список підписників, то можна цілком стати частиною мережі ActivityPub, тобто Федиверсу. Набирати підписників, розсилати пости, отримувати коментарі — все це через дві скрині.

Втім головною перепоною для мене є неоднорідність клієнтів. Як показує вчорашній пост, тут все значно гірше, ніж у поштових клієнтах чи читачах RSS. Можна розраховувати тільки на самий базовий HTML. Або… публікувати тільки посилання на сайт. Щось таке. 🤔