Кейс

SeiBoost

Full-stack SaaS-застосунок рівня enterprise на Next.js 15. Дашборд у реальному часі через WebSocket (Soketi), авторизація за ролями (NextAuth), складна схема PostgreSQL із Prisma і запуск у Docker.

SeiBoost — Вебзастосунок

Коротко

Рік
2025
Обсяг
SaaS-платформа, дашборд у реальному часі, ролі та права
Моя роль
Архітектура, full-stack, DevOps
Технології
Next.js 15PrismaPostgreSQLNextAuthSoketiRedisRabbitMQDockerCI/CD

Кейс

01Проблема

Дашборд мав показувати стан операцій наживо багатьом людям водночас і водночас розрізняти, кому що видно. Опитувати сервер кожні кілька секунд із кожної відкритої вкладки — найкоротший шлях до перевантаженої бази: за кількох десятків підключених трафік росте швидше, ніж користь від нього.

02Що я зробив

  • WebSocket через Soketi замість опитування — сервер сам надсилає зміну, і браузеру не треба нічого вгадувати.
  • Приватні канали для кожної ролі й команди, тож авторизація діє й на рівні транспорту, а не лише у вигляді.
  • Redis як проміжний шар для подій і кешу читання, щоб PostgreSQL обслуговував записи, а не трафік оновлень.
  • Схему веде міграціями Prisma: зміна моделі версіонується разом із кодом, а не клікається в панелі.

03Що це дає зараз

  • Зміна стану зʼявляється в усіх, хто має право її бачити, без перезавантаження сторінки.
  • Права діють в одному місці — додати роль не означає переглядати кожен екран.
  • Усе працює в Docker, тож локальне середовище і продакшен — те саме.

04Чому саме такий стек

Next.js 15 із серверним рендерингом, бо перший екран після входу мав бути готовим одразу. Soketi замість зовнішнього сервісу — операційні дані лишаються на власній інфраструктурі, і немає рахунку за кожне повідомлення.

Усі роботи
Почнімо

Маєте проєкт на думці?

Опишіть його кількома реченнями — відповім протягом 24 годин із безкоштовною оцінкою та пропозицією стеку.