- Anno
- Ambito
- Il mio ruolo
SeiBoost
Un'applicazione SaaS full-stack di classe enterprise in Next.js 15. Dashboard in tempo reale su WebSocket (Soketi), autorizzazione per ruoli (NextAuth), schema PostgreSQL articolato con Prisma e pubblicazione in Docker.
In breve
- Anno
- 2025
- Ambito
- Piattaforma SaaS, dashboard in tempo reale, ruoli e permessi
- Il mio ruolo
- Architettura, full-stack, DevOps
- Tecnologie
- Next.js 15PrismaPostgreSQLNextAuthSoketiRedisRabbitMQDockerCI/CD
Case study
01Il problema
La dashboard doveva mostrare lo stato delle operazioni dal vivo a molte persone insieme, continuando a distinguere chi può vedere che cosa. Interrogare il server ogni pochi secondi da ogni scheda aperta è la via più rapida per saturare il database: con qualche decina di utenti collegati il traffico cresce più in fretta del valore che produce.
02Che cosa ho costruito
- WebSocket via Soketi al posto del polling: è il server a spingere la modifica, il browser non deve indovinare nulla.
- Canali privati per ruolo e per squadra, così l'autorizzazione vale anche sul livello di trasporto e non solo nella vista.
- Redis come strato intermedio per eventi e cache di lettura, lasciando a PostgreSQL le scritture invece del traffico di aggiornamento.
- Lo schema è guidato dalle migrazioni Prisma: una modifica al modello è versionata insieme al codice, non cliccata in un pannello.
03Che cosa fa adesso
- Un cambio di stato compare a tutti gli utenti autorizzati senza ricaricare la pagina.
- I permessi si applicano in un punto solo: aggiungere un ruolo non obbliga a rivedere ogni schermata.
- Tutto gira in Docker, quindi ambiente locale e produzione sono la stessa cosa.
04Perché questo stack
Next.js 15 con rendering lato server, perché la prima schermata dopo l'accesso doveva essere pronta subito. Soketi invece di un servizio esterno: i dati operativi restano sulla nostra infrastruttura e non c'è un conto da pagare a messaggio.
Hai un progetto in mente?
Descrivilo in poche righe: rispondo entro 24 ore con un preventivo gratuito e una proposta di stack.