PulseMessengerОткрыть Messenger
О проекте · с апреля 2026

Pulse — попытка сделать общение спокойным и предсказуемым.

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

Зачем ещё один мессенджер?

Потому что «сообщение отправилось» — это не только кнопка Send.

За простым пузырём сообщения живут сеть, несколько устройств, reconnect, права доступа, доставка, история, вложения и приватность. За каналом — подписки, публикации и обсуждения. За голосовым — микрофон, кодирование, media lifecycle, waveform и retry. Pulse постепенно выносит эти вещи в явные контракты, чтобы интерфейс не был единственным местом, где существует состояние продукта.

Поэтому в истории Pulse так много релизов про foundation: ConversationAccessService, WebSocket lifecycle, Presence V2, Identity Layer, Durable Outbox, canonical conversations, Channels и typed media lifecycle. Пользователь может никогда не увидеть эти названия — но именно они должны сделать обычный разговор скучно надёжным.

Принципы

Несколько правил, которые уже влияют на архитектуру.

Не манифест на вечность — скорее рабочие ограничения, по которым сейчас развивается продукт.

01

Разговор важнее ленты

Pulse не строится вокруг рекомендаций, публичной гонки за вниманием и алгоритмической выдачи. Основная сущность продукта — conversation и контекст людей внутри него.

02

Browser быстрый. Сервер решает.

Клиент может быть оптимистичным и realtime, но доступ, privacy policy, delivery state, media ownership и durable состояние остаются server-authoritative.

03

Сбой — часть нормальной жизни

Reload, reconnect и временная недоступность сети не считаются экзотикой. Outbox, idempotency и reconciliation проектируются так, чтобы пользователь не разбирал последствия вручную.

04

Независимость без изоляции

Pulse развивает собственные сервисные границы — Messenger, Media Cloud, Status — но остаётся обычным web-продуктом: открывается по URL и не требует отдельной платформы вокруг себя.

Экосистема

Pulse уже больше одного процесса на одном сервере.

Messenger остаётся пользовательским центром, но тяжёлые обязанности получили собственные границы: Media Cloud хранит и обрабатывает изображения, документы и audio, Status наблюдает за пользовательскими сценариями, а Messenger связывает их через стабильные contracts.

Технологии

Стек без магии.

Технологии здесь не самоцель. Каждая отвечает за понятную часть системы.

BackendGo

Сервисный слой, realtime, access rules и transport contracts.

FrontendReact + TypeScript

PWA-интерфейс для desktop и mobile web.

DataPostgreSQL

Durable conversation, messages, polls, channels, sessions и coordination state.

RealtimeWebSocket

Tickets, reconnect lifecycle, delivery/read, presence и multi-node recovery foundation.

MediaPulse Media Cloud

Отдельная application boundary для изображений, документов, audio и private delivery.

OperationsPulse Status

Публичное состояние, uptime и synthetic-проверки пользовательских сценариев.

Путь к 1.0

История важнее обещаний.

Вместо огромного roadmap на годы вперёд проще посмотреть, что Pulse уже проходил: security foundation, media separation, identity migration, durable lifecycle, privacy, документы, реакции, опросы, Channels, Images V2, Avatar V2 и Voice Messages. Полная хронология живёт на отдельной странице.

Читать историю релизов →
Куда дальше

Можно просто побродить.