Обзор Matrix. Как создать свой децентрализованный мессенджер
Мессенджеров, которые стараются защищать приватность своих пользователей или даже предоставлять им анонимность, на самом деле больше, чем два.
При этом я часто слышу возгласы от олдфагов, что большинство нововведений таких мессенджеров было (есть) в старом-добром джаббере.
И пока Jabber плавно перекочевал в целый протокол XMPP для обмена сообщениями, я хочу рассказать об его альтернативе под названием Matrix.
Что за зверь такой
Matrix — проект с открытым исходным кодом для безопасного децентрализованного обмена сообщениями по IP в реальном времени.
Проект распространяется под лицензией Apache, а разработка ведётся силами некоммерческой организации Matrix.org Foundation. Разработка началась в 2014 году, а в 2019 проект вышел из беты.
Мессенджеры, созданные на базе Matrix, могут общаться не только друг с другом, но и со сторонними мессенджерами. Но это только в теории, а на практике вы будете замкнуты внутри матричной сети, если владелец сервера не настроил маршрутизацию.
Поскольку Matrix — децентрализованный мессенджер, это значит, что нет единого сервера, который бы управлял его работой. И любой желающий может поднять свой сервак. Vive la Résistance!
Как работает
Каждый пользователь Matrix подключается к конкретному серверу, который считается для него домашним. При этом вы можете свободно общаться с пользователями с других серверов.
Чтобы полностью управлять своими данными и параметрами общения, естественно, нужно поднять свой сервер. В таком случае вы получаете god mode и можете делать всё что угодно. В том числе настроить маршрутизацию в другие протоколы и мессенджеры (IRC, XMPP, Discord, Telegram) или хостить ботов.
При отправке сообщения в комнату (об этом позже) оно синхронизируется между всеми серверами этой комнаты. Таким образом, если какой-то сервер уйдёт в офлайн, остальные участники всё равно смогут продолжить общение.
При этом не стоит забывать, что в Matrix настроено оконечное шифрование, и даже владелец сервера не может получить доступ к переписке.
Уже хочу. Как поставить?
Для начала вам понадобится скачать мессенджер с поддержкой Matrix либо перейти по этой ссылке, получить аккаунт и начать общаться прямо в браузере. Список нативных и сторонних клиентов под любые платформы доступен тут.
В мессенджере существует такое понятие, как комнаты. Для простоты понимания — это как публичные чаты Telegram. Просмотреть список комнат и их содержимое можно даже без регистрации. Но у меня через нативный клиент для Windows так сделать не получилось.
При регистрации в сети нужно выбрать сервер, к которому вы хотите подключиться, или оставить matrix.org по умолчанию. Затем можно выбрать юзернейм, указать email и пароль. Либо авторизоваться через GitHub, Gmail, GitLab и прочие сервисы.

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






Ближайший аналог по возможностям — это Telegram. Есть переписки тет-а-тет, публичные и закрытые чаты, аудио и видеозвонки, боты. Всё это присыпано приватностью, шифрованием и прочими плюшками.
Как поднять свой сервер
Развернуть свой сервер Matrix относительно несложно, если вы уже делали что-то подобное. Для этого нужно обратиться к документации и развернуть копию Synapse.
Там же можно найти пошаговые инструкции для разворачивания сервера практически на любых системах и любых провайдерах.
Общение с внешним миром
Чтобы начать общение из Matrix-мессенджера с тем же Telegram, нужно построить мост по всем заветам Сэма Портера Бриджеса, если вы владелец сервера.
Для пользователей всё немного проще. В случае с Телеграм нужно перейти на страницу t2bot.io и выполнить все шаги из соответствующей инструкции.

Когда я в первый раз услышал про Matrix, мне показалось, что это решение для повёрнутых на приватности. После его установки вы теряете возможность просто пообщаться с внешним миром, и придётся всех перетаскивать в новый непонятный мессенджер с урезанными функциями.
На практике это оказалось правдой лишь отчасти. Да, придётся немного пострадать для общения с друзьями из Viber, Telegram и прочих мессенджеров. Но сам протокол, если его так можно назвать, поддерживает все современные фишки для удобного и простого общения.
Поэтому в теории каждый из вас может без проблем поднять свой сервер и переехать в Matrix без особых потерь в удобстве.
Как создать свой мессенджер: ответы на популярные вопросы

Что нас всех объединяет? Ответов на этот философский вопрос много, но мы, продуктовая команда из сердца Сибири, сразу думаем про мобильные приложения и отвечаем так: у каждого из нас есть хотя бы один мессенджер на телефоне. Сегодня это часть повседневных будней —мы используем чаты не только для общения с семьей и друзьями, но и для того, чтобы читать новости, скидывать мемы в группы и даже записываться на стрижку с помощью чат-бота. Мы регулярно получаем много вопросов о том, к ак создать свой мессенджер , поэтому решили завернуть весь накопленный опыт в статью — что ж, делимся!
Если вы сомневаетесь нужно в ли ступать на территорию разработки мессенджеров, просто взгляните на последние цифры. В 2021 году приложением Facebook Messenger пользуются 1,3 миллиарда человек во всем мире, а WhatsApp есть на телефоне у 2 миллиардов пользователей (¼ часть населения земли, на секунду).
Хорошая новость заключается в том, что у большинства установлено сразу несколько приложений, поэтому все перечисленные компании не конкурируют между собой, а дополняют друг друга. Например, WeChat популярен в основном в азиатских странах, а Slack используют 12 миллионов человек для коммуникации внутри компаний. Аналитики ожидают, что количество активных пользователей будет только расти, а рынок приложений для обмена сообщениями будет цвести и пахнуть.
В этой статье мы подробно расскажем о том, как разработать и монетизировать приложение для обмена сообщениями. Тех, кто дочитает до конца, ждет сюрприз — бесплатный расчет стоимости приложения.
Ключевые функции мессенджеров
Давайте сразу к делу — существует список функций, которые нельзя игнорировать при разработке мессенджера . В Purrweb мы считаем, что приложение должно быть, в первую очередь, удобным для пользователя, учитывать боли и запросы клиентов. Поэтому мы всегда советуем начать с командного мозгового штурма — это поможет определить нишу, целевую аудиторию, а также выбрать то, что будет отличать вас от конкурентов. После это можно думать, как создать свой мессенджер , и выбирать, какие функции нужны вашему приложению. Основываясь на нашем опыте, мы составили 2 списка — must-have и nice-to have функций — для по-настоящему классного приложения-мессенджера.
Must-have функции
Авторизация
Для пользователя регистрация не должна занимать больше, чем две минуты. Чтобы ускорить процесс, мы рекомендуем добавить интеграции с социальными сетями, регистрацию по номеру телефона или адресу электронной почты. После этого юзеры смогут выбрать фотографию профиля и имя. В некоторых приложениях, например, в Telegram, есть дополнительная функция, которая скрывает номер телефона от других, также в мессенджере можно создавать сразу несколько профилей. Например, рабочий и личный, или российский и заграничный, если вы живете на две страны.
Доступ к контактам
Эта функция значительно упрощает процесс авторизации, поскольку пользователь может зарегистрироваться, синхронизировать свои контакты и сразу отправить кому-нибудь сообщение, а не проходить через семь кругов ада, специально сохраняя каждый нужный ему номер в мессенджере.

Обмен сообщениями
Эта функция — сердечная мышца вашего приложения. Для того, чтобы пользователи успешно общались в чате, вам будут нужны следующие элементы: приватные и групповые чаты, отправка и отмена сообщения, статус доставки, история чата и функцию редактирования текста.
Если вы хотите создать приложение-мессенджер , то подумайте над тем, чтобы добавить голосовые и видеосообщения. Мы знаем, что количество элементов может испугать. Как их всех расположить, чтобы страница не выглядела перегруженной? Вам на помощь придет опытный UX-дизайнер, который спроектирует по-настоящему удобный интерфейс.

Обмен файлами
Возможность обмена медиафайлами — еще одна причина, почему люди будут регулярно обращаться к вашему сервису. Разрешите им отправлять друг другу фотографии, видео, гифки и документы, и тогда многие будут использовать чаты в качестве облачного хранилища (да-да, мы все искали когда-нибудь фотографию карты или паспорта в переписках).
Push-уведомления
Как создать свой мессенджер без функции уведомлений? Это невозможно! В эпоху, когда мы так боимся пропустить что-то важное, пользователи обязаны немедленно знать, что они получили новое сообщение. Наверняка, каждый из нас хоть раз сходил с ума, ожидая обратную связь от потенциального работодателя — не нам вас убеждать в том, насколько важны push-уведомления в чатах
Защита данных
Для любого общения — по работе или личного — важна конфиденциальность. Данные пользователей обычно хранятся на серверах, которые принадлежат приложениям, а сообщения шифруются и передаются между устройствами с использованием разных протоколов связи. Напишите нам, и мы расскажем больше технологиях безопасности данных.
Nice-to-have функции
Звонки
Современные чат-приложения — это гораздо больше, чем просто обмен текстами и смайликами. Если хотите сделать не просто мессенджер, а настоящую вселенную для общения, вам следует подумать о добавлении голосовых и видеозвонков. Может быть, это не так уж необходимо на первом этапе разработки мессенджера , но как только появятся ресурсы, хорошо бы подумать о расширении функциональности и внедрении фичи со звонками.
Чат-боты
Эта функция привлечет бизнес-клиентов в ваше приложение-чат. Не пугайтесь слова «Боты». Чат-бот — это всего лишь автоматическое программное обеспечение, которое поддерживает онлайн-связь с клиентами, отправляет автоматические сообщения и помогает с ответами на часто задаваемые вопросы. Они также могут позвать человека, если вопрос пользователя пришелся роботу «не по зубам».

Как создать свой мессенджер, который принесет прибыль?
Вопрос о стратегиях монетизации неизбежно возникает у всех, кто хочет разработать приложение для обмена сообщениями . Вы спросите: «Мессенджеры вообще зарабатывают?!» Короткий ответ – да.
Вот несколько стратегий монетизации для подобной бизнес-идеи:
- Реклама в приложении;
- Технология переадресации звонков. Например, звонит вам кто-то из-за границы — звонок не идет через оператора, а переносится в Viber, который получает за это деньги;
- Брендированные стикеры, созданные в коллаборации с брендами;
- Пожертвования от пользователей. Да, это тоже вариант, и именно так живет и здравствует Telegram);
Как найти надежного разработчика?
Проверить команду разработчиков «на прочность» можно в два шага:
Во-первых, просто погуглите название компании. Кто-то скажет: «Пфф, банально» , но поверьте, даже самый быстрый поиск в Google даст какое-никакое представление о ценностях команды – совпадаете ли вы по взглядам, получится ли у вас делать что-то вместе. Во-вторых, сходите на профессиональные площадки – Dribbble и Behance — и изучите дизайн-портфолио ваших потенциальных подрядчиков. За отзывами клиентов можно отправиться в Clutch и UpWork. Ну и не забудьте про сайт компании — например, мы размещаем отзывы клиентов на главной странице , а результатами работ делимся во вкладке «Проекты» .
Помимо этого, для стартапа важно соблюдать бюджет и сроки. Поэтому мы искренне советуем выбрать того, кто разрабатывает приложения на React Native. Почему? Сейчас объясним.
React Native — это фреймворк, который был создан Facebook 5 лет назад. Код приложений пишется на JavaScript – одном из самых популярных языков программирования во всем мире. Есть 3 основных преимущества работы с компанией, которая работает на React Native.
JavaScript. Этот язык — один из самых распространенных среди разработчиков, поэтому вы сможете найти подрядчика для разработки вашего приложения быстро и безболезненно.
Единая общая кодовая база. При разработке двух отдельных версий приложения для Android и iOS код в них будет совпадать примерно на 65-70%. Что это значит для вашего бизнеса? Во-первых, это значительно сокращает время разработки (примерно в 2 раза). Во-вторых, не нужно нанимать и платить (!) двум отдельным командам — это осталось в прошлом. Не нужно будет думать, как создать мессенджер на iOS ? Как создать мессенджер на Android ? Кто за это возьмется? Достаточно будет найти ту самую команду, которая работает с фреймворком React Native.
Нативные UI-элементы. Компании Facebook принадлежат бесконечные библиотеки нативных UI-элементов для интерфейса. Как это поможет вашей бизнес-идее? Очень просто — это означает, что ваше будущее приложение функционировать как нативное. Производительность мессенджера будет такой же, как если бы вы разработали его на Java или Swift.
Мы работаем с React Native последние 4 года и еще ни разу не разочаровались. Фреймворк позволяет нам создавать MVP (минимально-жизнеспособный продукт)для наших клиентов за 3 месяца. Это означает, что вы придете к нам с идеей, и через 90 дней у вас будет рабочая версия продукта, которую можно тестировать, собирать обратную связь и показывать потенциальным инвесторам.
Сколько стоит создать приложение-мессенджер?
Вот мы и дошли до самой важной части статьи — той, которая про стоимость и сроки. Разработка мессенджера – сложный процесс, в котором участвует команда разработчиков, дизайнеров, проектных менеджеров и QA-специалистов. Выбросить кого-то из команды и при этом сделать крутой продукт нельзя
Мы предлагаем полный цикл разработки приложения на React Native — включая UI / UX дизайн, API, услуги разработки Frontend и тестирование — и все, что нужно, чтобы ваше приложение попало в топ AppStore и Google Play. Наша философия – быть максимально открытыми и прозрачными для клиентов, поэтому мы предпочитаем обсуждать вопросы сроков и стоимости на берегу. Кроме того, в историях с разработкой мессенджеров , мы отдельно обсуждаем безопасность данных, протоколы шифрования и соединение с серверами. В это время наши дизайнеры смогут углубиться в изучение ЦА приложения, спроектируют логику будущего сервиса, продумают визуальную составляющую.
Мы подробно рассказали о том, как создать свой мессенджер и как его можно монетизировать. Теперь давайте посчитаем, сколько это стоит!

Key in your e-mail address to get a full breakdown of the estimation with all details
Thank you! You will be contacted soon!
Итого
Над разработкой мессенджера, будет работать команда из 6 человек. Если судить по похожим проектам, над которыми мы работали, итоговая стоимость мессенджера вроде Telegram, составляет от $80.000 до $100.000: с готовым прототипом, UI/UX дизайном, iOS и Android версиями, тестированием и менеджментом проекта. Разработка своего мессенджера с Purrweb займет 5 месяцев.
Чтобы создать успешный сервис, используйте нашу пошаговую инструкцию, как разработать приложение для обмена сообщениями . Вот краткое изложение: первым делом нужно провести брейншторм и определиться с нишей, в которую вы планируете зайти. Кого вы хотите привлечь в приложение и зачем? Где будете искать свою аудиторию? Затем сориентируйтесь по ключевым фичам, которые будут необходимы пользователям – можно опираться на наш список must-have и nice-to-have функций.
Самый же быстрый и простой способ узнать подробности — написать нам напрямую и детально обсудить ваш будущий проект. Мы ответим на все ваши вопросы о том, как создать свой мессенджер , поделимся советами и секретами реализации бизнес-идей, проведем за руку и расскажем о процессах и результатах на каждом этапе создания digital-продукта.
Смотрите наше дизайн-портфолио и читайте отзывы клиентов . Мы также всегда на связи в самых популярных мессенджерах – в Telegram и WhatsApp .
Личный опыт разработки «аналога Whatsapp» за 4 месяца
Сделать свой мессенджер просто? Вовсе нет — даже самое простое приложение для общения это до 50 функций, исполнение которых к тому же зависит от платформы. Технический директор компании Mauris Владимир Бондаренко рассказывает о своем опыте разработки корпоративного мессенджера.

Интересный и нестандартный проект всегда манит разработчиков больше, чем разработка очередного интернет-магазина. Вот и мы, получив возможность реализовать корпоративную сеть с встроенным мессенджером для строительной компании BI Group, кинулись в бой, согласившись на срок полной реализации в 4 месяца.
Это был наш первый опыт разработки мессенджера. Предстояла уйма работы, но задор от возможности реализовать классный проект не давал усомниться в успехе. Уже сейчас, имея опыт больших месседжевых проектов, понимаем, что тогда мы смогли вытянуть нереальный объем работ и залить в сторы приложение только благодаря командной сплоченности и тому фактору, что для работы над данным проектом были отобраны наши лучшие специалисты.
Приложение должно было содержать:
- корпоративные новости;
- локальную базу сотрудников;
- посты и каналы аналогично Facebook;
- мессенджер.
В качестве back-end мобильного приложения использовали Mauris CRM, которая интегрирована с корпоративными порталами холдингов заказчика. Благодаря готовым модулям Mauris CRM и наличия REST API были реализованы все разделы, кроме мессенджера. Не буду останавливаться на реализации всех функций, там проблем не возникло.
Выбираем технологию
Перед выбором технологии для обмена сообщениями в приложении мы изучили теорию. Времени было мало, поэтому тайминг всех этапов был очень жесткий. Уже через сутки мы увидели, что есть два реальных решения для реализации: писать свое или использовать XMPP. Главной задачей была реализация протокола на сокетах вместо HTTP, что позволит реализовать оперативную двухстороннюю связь с сервером.
Свою реализацию логично делать при наличии должного опыта с чемоданом ошибок и успешных решений, протестированных на аудитории. Мы решили остановится на XMPP, проверенном годами решении таких компаний, как Google и Yahoo.
За 3 дня наш будущий специалист по разработке мессенджеров прочитал книгу «XMPP» в оригинале. Через неделю у нас был прототип. Через две недели у нас уже ходили сообщения между тестовыми клиентами. Были реализованы статусы «печатает», «отправлено», «доставлено», «прочитано». Казалось, что половина пути пройдена и осталось добавить групповые чаты, правильно подключить решение к остальному бекенду и доработать клиентскую часть.
проекта последовали следующие аналогичные проекты, но к ним мы уже были готовы. Надеемся, что данная статья подготовит и вас. Если вы интересуетесь тонкостями мобильной разработки, смотрите видео-советы на нашем YouTube-канале: