Stormic Community Management System

nims nims 22 Августа

Приветствую, друзья!

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

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

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

В связи с этим, возвращаясь к обратной связи, для желающих следить за развитием, теперь есть пара ссылок. С вашего позволения оставлю их тут, если никто не против:

Telegram-канал проекта: https://t.me/stormicapp
Живое превью блоговой платформы: https://stormic.app/new/
GitHub: https://github.com/stormhead-org/Stormic

Это самое первое, тестовое, превью, запущенное пару дней назад. Пока нет мобильной адаптации, только ПК. Практически полностью готово все, что касается получения информации с сервера и GET API. Теперь очередь POST API. В превью доступна авторизация (через провайдеров) и изменение информации о себе.

Это по большому счету все, что я хотел сказать. Принесети превью и сказать, что обратная связь теперь все же есть. В тг канале небольшое пояснение в первом посте, что происходило с проектом и почему было решено переписать мультиблоги с 0. На этом не буду вас больше отвлекать, оставлю только описание проекта для тех, кого небыло в том обсуждении.

STORMIC

Это система управления сообществами с открытым исходным кодом.

Цель проекта — децентрализировать общение людей и дать альтернативу контролируемым социальным сетям.

Stormic состоит из трех основных модулей:
1. Платформа мультиблогов (dtf.ru, dev.to и т.д.);
2. Система мгновенных сообщений (discord);
3. Wiki-модуль.

Как это работает? — 3 модуля призваны решить проблемы каждого из них, когда они используются по отдельности и дать пользователям инструмент для создания полноценных сообществ. Теперь, когда вы ведете свой блог, вам не нужно держать сайт и отдельно еще discord-сервер или tg-канал, для поддержания активности сообщества.

Пара вещей, помимо базовых (функционал dtf.ru, dev.to):
1. Пользователи могут создавать и администрировать категории и назначать своих модераторов на нее;
2. При создании категории для постов, автоматически создается сервер аналогичный Discord;
3. Создатель категории становится администратором сервера и назначает людей для модерации сервера;
4. Категория и сервер жестко завязаны друг на друге. Это одно целое. Когда в категории появляются новые посты, то информация о них появляется и на сервере. Уведомления о комментариях, ответах и прочих вещах. Это дает возможности нативного взаимодействия с постами, без необходимости ходить по разным платформам. Такое решение позволяет держать комментарии постов своей категории чистыми и по делу, а поддерживать активность сообщества на своих серверах. Stormic разграничивает людей на тех, кто хочет обсудить сабж по теме в комментариях в продолжение поста и на тех, кто носит свои смешные картинки и бесконечно спамит локальные мемы для своей локальной аудитории. Как правило, эти две категории людей не особо друг друга переносят и Stormic решает эту проблему. Максимальная нативность в рамках одной экосистемы;
5. Wiki-модуль позволяет писать объемные руководства и документацию. Этот модуль так же завязан на вашем сервере и на модуле блогов. Отвечая на один и тот же вопрос в 100й раз, вы можете легко ссылаться на предложения и абзаци из wiki-статьи цитируя их,находясь при этом на сервере или в блоге. Это удобно и устраняет некоторую излишнюю токсичность в общении, когда опытные юзеры устают отвечать на однотипные вопросы новичков.

Эти и другие инструменты, дают вам возможности для создания настоящего, полноценного сообщества и все это в рамках одной платформы.

При разработкеStormic делается большой упор на возможности администрирования отдельных сообществ и платформы в целом. Черные списки категорий и пользователей, баны, кики, муты и многое другое в ваших руках.

ЧТО ВНУТРИ?

Stormic написан на NextJS, использует TypeScript, TailwindCSS и shadcn/ui, а так же Auth.js, Zustand, PrismaORM, PostgreSQL, Redis, EditorJS (редактор), SMTP (для e-mail) и S3 (для хранения медиа).

Запускается в Docker-контейнере под прокси-сервером Nginx.

preview.png

17 Ответов

  1. Evg Evg 22 Августа (ред.)

    Мне дизайн нравится и вроде шустро работает. ➕

  1. cocopich cocopich 23 Августа (ред.)

    Выглядит интересно, понаблюдаем, если не забросите выйдет достойная альтернатива для альмы

  1. acidtmn acidtmn 23 Августа (ред.)

    Начало отличное! Главное не бросайте проект!

  1. nims nims 23 Августа (ред.)

    Всем спасибо, друзья. Да, это будет завершено. Теперь это уже не просто пет-проект.

  1. fomiash fomiash 24 Августа (ред.)

    Шрифты и оформление выглядят хорошо, но на мобильном все скукожилось.
    Screenshot_20240824-093734_Chrome.jpg

    1. hlim hlim 24 Августа (ред.)

      Так он же указал, что мобильной адаптации пока нет.

      1. fomiash fomiash 24 Августа (ред.)

        Был невнимателен, но если делать респонсив-верстку, то лучше планировать заранее, чтоб потом всё не переделывать.

        1. nims nims 25 Августа (ред.)

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

  1. OleStep OleStep 25 Августа (ред.)

    Посмотрел «исходный код страницы». В планах есть поработать над SEO?

    1. nims nims 25 Августа (ред.)

      да, офк, без него далеко не уедешь. На данном этапе пилится пока только функционал. Ну и мне это отдельно надо будет еще изучать, потому что с SEO дел не имел. Те же посты и прочий контент не имеют заголовком h1, h2 и прочие, потому что они написаны не редактором, а просто сидятся и автоматически генерируются в базу данных при старте ПО и потом уже морда сайта тянет сгенерированную инфу из базы данных. Когда будет доработан редактор (сейчас он просто добавлен и инициализируется по кнопке «написать пост» в модальном окне (если вы зарегались)). Когда пост можно будет написать из редактора, то там будет уже разбитие тела поста на элементы, которые ждут для SEO

      1. nims nims 25 Августа (ред.)

        сейчас пилю все то, что юзеры могут изменять и редактировать + настройки профиля. Когда это закончу, перейду к редактору и коментам, там уже будут вопросы о SEO подниматься

  1. nims nims 25 Августа

    Снимок экрана 2024-08-25 145350.png
    Снимок экрана 2024-08-25 145418.png
    Снимок экрана 2024-08-25 145810.png
    Вот прям сейчас работаю над настройками профиля юзера.
    Таблица деталей с key и value (там офк потом не будет написано key и value. Будет отображена реальная инфа из полей) — эта вот эта информация в профиле с кастомными полями юзера, типа личный сайт и прочее. Этого нет на превью, но уже есть в ветке, которая ушла дальше, чем превью.

  1. Bianity Bianity 28 Августа (ред.)

    This looks good. Is there another way to install on hosting like example.com/install ?

    1. nims nims 29 Августа

      Спасибо. Об установке не хостинг без docker я еще не думал, все же это разрабатывается под отдельный VPS сервер с установленным docker. Потому что я хочу дать юзерам возможность запускать этот софт просто командой типа:

      curl -sSL https://stormic.app/install.sh | sh

      Все, после этого у вас стартует экземпляр в контейнере на 3000 порту. При первом заходе по адресу http://ваш ip:3000 вас встречает страничка регистрации как админа, первичной настройки экземпляра и просьбой ввести название вашего домена. После ввода домена вам выдаются (если а-записи домена указывают на этот сервер) автоматически SSL сертификаты и экземпляр сразу начинает работать на https://example.com

      Ну и если ваш экземпляр растет, то его нужно масштабировать, а масшабировать контейнеры легче, через тот же docker swarm или k8s

  1. Romanko Romanko 29 Августа (ред.)

    По скринам хорошо, но у меня сайт не грузит ни с впн, ни без

    1. nims nims 29 Августа (ред.)

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

      1. Romanko Romanko 8 Сентября (ред.)

        Уже работает. Сасно, мне нрав)