Lokalne SEO dla agencji hostess
Problem: panel blokował SEO
Efekt: 9 landing pages pod miasta
Next.js
Framework aplikacji
TypeScript
Typowanie end-to-end
Prisma
ORM + Postgres
Tailwind CSS
Utility-first styling
Bitrix24
CRM - źródło prawdy
PandaDoc
E-podpis dokumentów
Vercel
Hosting + SSR
chaos w obsłudze zamówień
Jeden panel, cztery role, jeden CRM
Next.js 16 + Prisma + Tailwind. Role-based routing z weryfikacją po stronie serwera. Webhooki Bitrix24 dla synchronizacji zamówień i dokumentów w czasie rzeczywistym. PandaDoc do e-podpisu, Leaflet do map klientów, algorytm health-score do oceny kondycji portfela.
jedno miejsce do zarządzania
Oknoprime to producent premium stolarki okiennej i drzwiowej. Główny rynek to Francja, obok niej Polska, Włochy i pozostałe kraje Europy. Portal obsługuje pełną lokalizację UI w pięciu językach (PL / FR / DE / IT / EN). Obsługa zleceń - od wyceny, przez podpis umowy, po dokumenty i płatności - wymaga koordynacji między klientem, handlowcem, marketingiem i backoffice’em. Produkcja stolarki obsługiwana jest w osobnym systemie (WinCon) i nie wchodzi w zakres portalu.
Do tej pory klienci mieli tylko prosty panel jako autorska wtyczka WordPress z podstawowym przeglądem zamówień. Reszta obsługi szła rozproszona: oferty, dokumenty i komunikacja - e-mailem i telefonem, zarządzanie po stronie handlowców - w Bitrix24, treści marketingowe - nigdzie systemowo. Skala biznesu przerosła ten model - potrzebny był pełnoprawny portal wielorolowy z dedykowanym doświadczeniem dla każdej grupy użytkowników.
Portal miał rozwiązać to od strony informacji, nie zastępując Bitrix24 - ten pozostaje źródłem prawdy po stronie handlowców, a portal jest warstwą prezentacyjną z rozszerzeniem dla klienta, marketingu i backoffice’u.
Warstwa wizualna opiera się o gotowy dashboard jako fundament, ale cała funkcjonalność, flow użytkownika i architektura komunikacji między panelami i systemami zewnętrznymi - to moja autorska praca. Klient dostarczył listę potrzeb (“ma być X, Y, Z”), nie było makiet ani specyfikacji UX - decyzje projektowe w 100% po mojej stronie.
Zamiast budować narzędzie dla jednej roli, zaprojektowałem portal wielorolowy - cztery osobne panele, różne uprawnienia, wspólna warstwa danych:
Role i dostępy są weryfikowane serwerowo (middleware + API), nigdy tylko po stronie klienta. Dane pobierane są z Bitrix24 przez webhooki i cache’owane w bazie Postgres - CRM pozostaje źródłem prawdy, portal jest warstwą prezentacyjną.
Kluczowe wymaganie biznesowe: żaden z kilkuset istniejących klientów Oknoprime nie miał zakładać nowego konta ani resetować hasła. Każdy miał zalogować się dotychczasowymi danymi z poprzedniego systemu.
Problem techniczny: WordPress przechowuje hasła w formacie phpass (hash md5-based), a nowy portal używa bcrypt. Hashe są jednokierunkowe - nie da się ich “przekonwertować”.
Moje rozwiązanie:
passwordType oznaczającym format każdego hasłaphpass; w razie problemu fallback do WordPress REST API jako dodatkowa weryfikacjaRollout poprowadziłem etapami - najpierw wąska grupa klientów testowych, potem stopniowe rozszerzanie zasięgu. W praktyce ani jeden użytkownik nie zgłosił problemu z logowaniem.
Efekt: zero maili typu “zresetuj hasło”, zero ticketów do wsparcia, zero friction. Cała baza użytkowników przeszła na nowy standard bezpieczeństwa stopniowo, w miarę logowań - bez jednego dnia blackout’u.
Zobacz pozostałe projekty z portfolio
Problem: panel blokował SEO
Efekt: 9 landing pages pod miasta
Problem: stary layout bez wersji językowych
Efekt: 3 rynki na jednym wdrożeniu
Problem: brak infrastruktury sprzedażowej
Efekt: sprzedaż działa automatycznie
Jedna rozmowa wystarczy, żeby to ocenić.
Bez zobowiązań