Case study

SeiBoost

Pełny stos aplikacji webowej SaaS klasy enterprise w Next.js 15. Dashboard real-time przez WebSockets (Soketi), autoryzacja ról (NextAuth), zaawansowany schemat PostgreSQL z Prisma i wdrożenie w Dockerze.

SeiBoost — Aplikacja webowa

W skrócie

Rok
2025
Zakres
Platforma SaaS, dashboard real-time, role i uprawnienia
Moja rola
Architektura, full-stack, DevOps
Technologie
Next.js 15PrismaPostgreSQLNextAuthSoketiRedisRabbitMQDockerCI/CD

Case study

01Wyzwanie

Dashboard miał pokazywać stan operacji na żywo dla wielu użytkowników jednocześnie, a przy tym rozróżniać, co wolno komu zobaczyć. Odpytywanie serwera co kilka sekund przez każdą otwartą kartę to prosta droga do zapchania bazy — przy kilkudziesięciu zalogowanych osobach ruch rośnie szybciej niż wartość, którą daje.

02Rozwiązanie

  • WebSockets przez Soketi zamiast odpytywania — serwer sam wypycha zmianę, a przeglądarka nic nie musi zgadywać.
  • Kanały prywatne per rola i per zespół, więc autoryzacja obowiązuje też na warstwie transportu, nie tylko w widoku.
  • Redis jako warstwa pośrednia dla zdarzeń i cache’u odczytów, żeby PostgreSQL obsługiwał zapisy, a nie ruch odświeżania.
  • Schemat bazy prowadzony migracjami Prisma — zmiana modelu jest wersjonowana razem z kodem, nie klikana w panelu.

03Efekt

  • Zmiana stanu pojawia się u wszystkich uprawnionych bez odświeżania strony.
  • Uprawnienia są egzekwowane w jednym miejscu — dodanie roli nie wymaga przeglądania każdego widoku.
  • Całość działa w Dockerze, więc środowisko lokalne i produkcja są tym samym.

04Dlaczego taki stack

Next.js 15 z renderowaniem po stronie serwera, bo pierwszy ekran po zalogowaniu musiał być gotowy od razu. Soketi zamiast usługi zewnętrznej — dane operacyjne zostają na własnej infrastrukturze i nie ma opłaty za każdą wiadomość.

Wszystkie realizacje
Zacznijmy

Masz projekt na oku?

Opisz go w kilku zdaniach — odpiszę w ciągu 24 godzin z bezpłatną wyceną i propozycją stacku.