Соцсеть на PWA? Это возможно

Прочитал я в очередной раз, что где-то кто-то для кого-то заблокировал очередную социальную сеть и подумал, а ведь у нас уже есть электронный способ коммуникации, который замучаешься блокировать - электронная почта.

Во-первых, она децентрализованная. Каждый-всякий-любой может установить себе почтовый сервер с какими угодно политиками безопасности и анонимности.

Во-вторых, она глобальная. Несмотря на децентрализацию, мы можем обмениваться почтовыми сообщениями с любым человеком, у которого есть почтовый адрес. Сервера сами перенаправляют email-сообщения друг другу и находят нужного получателя.

В-третьих, почтовые клиенты позволяют использовать для переписки асимметричное шифрование (с открытым ключом), что делает практически невозможным сканирование сообщений как на уровне почтовых серверов, так и на уровне промежуточных хостов в интернете (у провайдеров).

В-четвёртых, в мире растёт спрос на приватность. Многие пользователи не хотят, чтобы информация об их предпочтениях становилась товаром для крупных корпораций типа Facebook’а. Протокол POP3 позволяет забирать email-сообщения с различных серверов и хранить их в одном почтовом клиенте (типа Outlook или Thunderbird) на компьютере или в смартфоне пользователя.

Электронная почта не принадлежит никому, но пользуются ей все.

Я думаю, что современные социальные сети будут мигрировать в нечто, похожее по своей архитектуре на электронную почту - децентрализованную, глобальную, приватную. Мне кажется, что существующие распределённые социальные сети, входящие в Fediverse обладают какими-то врождёнными недостатками, раз им до сих пор не удалось приблизиться по масштабам даже к централизованным социальным сетям, не говоря уже об электронной почте.

Я - web-разработчик, мои интересы на данный момент - разработка прогрессивных web-приложений (PWA). Я вижу, что современные браузеры привносят в IT такие технологии, которые могут значительно изменить подходы к созданию приложений.

  • TLS затрудняет сканирование трафика между клиентом и сервером;
  • IndexedDB позволяет сохранять значительный объём информации на клиенте;
  • Websockets и Server Sent Events дают возможность организовать обратный канал для данных - от сервера к клиенту;

а ещё есть Web Push, Payment Request, WebRTC и другие. Все эти возможности выводят web-приложения на другой уровень, очень далёкий не только от “классической” генерации кода страницы на сервере, но даже от более современного REST API.

Я верю в потенциал PWA. Я знаю, что это не “серебряная пуля”, что у этой технологии есть своя область применения. Что на данный момент мало кто понимает в достаточной степени границы применимости этой технологии - слишком уж быстро происходят изменения в этой сфере.

В октябре прошлого года я ради прокачки скиллов решил сделать в виде PWA анонимный мессенджер с асимметричным шифрованием - DupChat. Это pet-проект, на нём я попробовал NaCl (библиотека для работы с сетью и криптографией), Server Sent Events и событийно-ориентированную архитектуру в web-приложении.

И когда у меня что-то получилось, я поймал себя на мысли, что архитектурно PWA-приложение похоже на email’ы. Браузеры не могут связываться между собой напрямую, точно так же, как не могут связываться между собой почтовые клиенты. Для связи нужны сервера (SMTP-сервера для почты и HTTPS-сервера для PWA). Принципы работы почтового клиента по POP3-протоколу очень похожи на принципы работы PWA на смартфонах в режиме offline/online (забрать/отправить информацию при наличии соединения). Вот только в PWA всё может происходить быстрее, чем в почте. PWA-сервера (в отличие от email-серверов) имеют возможность отправлять сообщения на клиента в online-режиме через SSE/Websocket.

Я понимаю, что делать целую социальную сеть на базе PWA это несколько авантюрно. Тем не менее, это технически возможно и DupChat является доказательством этого (proof of concept). Это всего лишь анонимный, шифрованный чат на отдельном сервере, но в его основе лежат технологии на которых можно построить нечто большее. Код открытый - vanilla JS, его можно копать вдоль и поперёк.

Если кому-то интересно это направление, с удовольствием обменяюсь мыслями.

88
9 комментариев

Мне кажется, что крутая актуальная идея, не понимаю почему минусуют 😃 Я чего- то не знаю?

1
Ответить

Play Market и Microsoft Store публикуют в свои магазины pwa приложения, даже Apple которая долго не обращала внимание на pwa, уже буквально как 3-4 месяца назад заявила о возможности публикации в app store. Из этого делается вывод , что у PWA большое будущее.

1
Ответить

Вчера, перед сном, мне опять стало больно от того, что почта в интернетах ушла чуть дальше перфокарт, а сегодня просыпаюсь и оказывается все, есть пробитие) в pop3 подвели децентрализацию)

1
Ответить

Я в восторге, что вы тоже об этом переживаете!

Ответить

Воскрешаем Фидо нет

Ответить

Почему? ))

Ответить

Электронная почта не принадлежит никому, но пользуются ей все. Я - web-разработчик

Фэйспалм.

Ответить