NEXORA — мессенджер, который я решил сделать самостоятельно
Как я начал с идеи простого анонимного чата, а в итоге пришёл к полноценному мессенджеру с профилями, группами, реакциями и realtime-общением.
Привет! Я FunDreamer, независимый разработчик. Помимо игр и небольших приложений, я периодически люблю делать проекты, которые изначально вообще не планировал превращать во что-то большое.
Так появился NEXORA.
Изначально идея была максимально простой: сделать небольшой веб-мессенджер, где можно было бы быстро написать другому человеку, не превращая интерфейс в огромную копию Telegram или Discord.
Но, как это обычно бывает, в какой-то момент проект начал разрастаться.
С чего всё началось
Первая версия NEXORA была практически экспериментом.
Никаких сложных серверов, огромной системы аккаунтов или десятков функций. Мне хотелось проверить саму идею: можно ли сделать минималистичный чат, который ощущается как отдельный продукт, а не просто очередной учебный проект.
На раннем этапе NEXORA вообще был гораздо ближе к анонимному чату.
Пользователь мог общаться, отправлять сообщения и ссылки, а интерфейс был максимально простым.
Но довольно быстро стало понятно, что без нормальной системы аккаунтов проект сильно ограничен.
Так появилась регистрация, профили, собственный NEXORA ID, а затем и база данных.
Почему я вообще решил делать свой мессенджер
Мне всегда было интересно не просто пользоваться готовыми сервисами, а понимать, как они устроены внутри.
Мессенджер в этом плане — практически идеальный проект для экспериментов.
Здесь есть:
- аккаунты;
- авторизация;
- профили;
- realtime-сообщения;
- поиск пользователей;
- группы;
- каналы;
- реакции;
- редактирование сообщений;
- медиа;
- уведомления;
- безопасность;
- синхронизация между устройствами.
Каждая новая функция автоматически тянет за собой несколько других.
И именно поэтому NEXORA постепенно превратился из небольшого эксперимента в полноценный проект.
Что умеет NEXORA сейчас
На данный момент в проекте уже есть основа полноценного мессенджера.
Пользователь может создать аккаунт, настроить профиль и найти другого человека по его NEXORA ID.
В чатах работают realtime-сообщения и реакции, а изменения появляются без необходимости постоянно обновлять страницу.
Есть личные профили, группы и каналы.
Для групп я также решил использовать приглашения по ссылке — это оказалось удобнее, чем заставлять пользователей вручную искать группу по идентификатору.
Отдельно я занимаюсь интерфейсом.
Мне хотелось, чтобы NEXORA не выглядел как стандартный сайт с несколькими полями и кнопками, поэтому большую часть времени я трачу именно на детали: анимации, состояния элементов, иконки, реакции, оформление профилей и поведение интерфейса.
От простого чата к собственной экосистеме
Самое интересное произошло тогда, когда я перестал воспринимать NEXORA просто как «мессенджер».
Я начал смотреть на него как на платформу.
Например, сейчас проект постепенно двигается в сторону Communities — пространств, где можно объединять пользователей, создавать текстовые каналы, настраивать роли и в дальнейшем добавлять голосовое общение.
То есть идея постепенно приближается к чему-то между классическим мессенджером и сообществами в стиле Discord.
При этом мне хотелось сохранить главное преимущество NEXORA — простоту.
Не делать приложение, где пользователю нужно полчаса разбираться, где находится нужная функция.
Техническая сторона
NEXORA сейчас работает как веб-приложение и использует Supabase для серверной части и базы данных.
Изначально я вообще старался обойтись без полноценного backend'а.
Это было интересным ограничением для эксперимента, но когда появились аккаунты, синхронизация и realtime-функции, стало очевидно, что нормальная серверная инфраструктура необходима.
Поэтому проект пришлось постепенно перестраивать.
И, пожалуй, именно это стало одной из самых полезных частей разработки.
Иногда проще сначала сделать что-то неправильно, а потом понять, почему архитектура должна выглядеть иначе, чем пытаться заранее придумать идеальную систему.
Самая большая проблема — не написать функцию
Одна из вещей, которую я понял во время разработки NEXORA:
сделать отдельную функцию не так сложно. Сложно сделать так, чтобы она нормально работала вместе со всеми остальными.
Добавляешь реакции — появляются вопросы синхронизации.
Добавляешь группы — появляются роли и права доступа.
Добавляешь каналы — появляются комментарии и управление участниками.
Добавляешь голосовые функции — появляется совершенно другой уровень технических задач.
Поэтому сейчас я стараюсь не просто добавлять как можно больше возможностей, а сначала доводить существующие функции до нормального состояния.
Что хочу добавить дальше
Планов у NEXORA довольно много.
В ближайших обновлениях я хочу продолжить работу над:
Communities — текстовыми каналами, ролями и настройками сообществ.
Голосовыми чатами — чтобы пользователи могли общаться не только текстом.
Профилями — более полноценными карточками пользователей, темами и кастомизацией.
Чатами — улучшенными реакциями, стикерами, голосовыми сообщениями и более удобным плеером.
Каналами — комментариями под публикациями и более удобным управлением.
И, конечно, продолжать улучшать сам интерфейс.
Зачем мне всё это?
Наверное, самый простой ответ — мне интересно.
NEXORA не создавался как попытка сразу конкурировать с Telegram или Discord.
Я просто хотел сделать свой мессенджер и посмотреть, насколько далеко смогу его довести.
А потом маленький эксперимент начал превращаться в настоящий продукт.
И теперь мне интересно довести его до состояния, когда человек сможет открыть NEXORA и действительно сказать:
«Да, я бы пользовался этим каждый день».
Что будет дальше
Сейчас NEXORA продолжает развиваться.
Проект доступен в веб-версии, а интерфейс адаптирован под мобильные устройства, поэтому его можно использовать и как приложение с телефона.
Я продолжаю постепенно добавлять функции, исправлять ошибки и перестраивать те части проекта, которые были сделаны на ранних этапах.
Для меня NEXORA — это одновременно мессенджер, эксперимент и большая учебная площадка.
И, скорее всего, он ещё не раз изменится.
Но именно это мне в нём и нравится.
NEXORA: Веб-версия — https://fundreamer365.github.io/NEXORA-WEB
Страница проекта — https://fundreamer.itch.io/nexora