Skąd się wziął projekt
MistyCloud to komercyjna platforma sprzedaży usług hostingowych: serwerów gier, web hostingu i VPS. Backend jest centralnym punktem całego systemu — obsługuje autentykację i autoryzację (trzy role: klient, support, admin), wielowalutowy system portfela (PLN, USD, EUR), automatyczne prowizjonowanie serwerów gier przez Pelican Panel API, przetwarzanie płatności przez Stripe z obsługą webhooków, komunikację real-time przez WebSocket (konsola serwerowa) oraz transakcyjne e-maile przez Nodemailer.
Co było trudne
Platforma hostingowa wymaga wielu złożonych integracji działających niezawodnie równocześnie: automatyczne tworzenie i konfiguracja serwerów przez zewnętrzne API, przetwarzanie płatności z webhookami Stripe, wielowalutowy portfel z automatycznym zawieszaniem i usuwaniem usług po braku płatności (7-dniowy grace period), real-time konsola serwerowa — wszystko musi działać spójnie, bezpiecznie i odpornie na awarie.
Jak to rozwiązałem
Architektura modułowa NestJS z wyraźnie wydzielonymi domenami (Auth, Wallet, Servers, Products, Billing, Pelican, Email, Console itd.). Prisma jako ORM zapewnia bezpieczny typowo dostęp do PostgreSQL i przejrzyste migracje schematu. Socket.IO obsługuje konsolę serwerową w czasie rzeczywistym. Stripe webhooks synchronizują status płatności. better-auth zapewnia sesyjną autentykację bez JWT-related pitfalls. Sentry monitoruje błędy produkcyjne.
Wynik
Kompletny, działający produkcyjnie backend obsługujący trzy typy usług hostingowych, automatyczne prowizjonowanie przez Pelican API, system płatności Stripe z obsługą subskrypcji i webhooków, wielowalutowy portfel z automatyczną suspensją usług oraz real-time konsolę serwerową dostępną z poziomu przeglądarki.