Fundacja Niepodzielni — platforma rezerwacji wizyt
Przebudowa serwisu fundacji zdrowia psychicznego: z Elementora na nowoczesny stack z własnym silnikiem rezerwacji i asystentem AI — w znajomym WordPressie.

Wyzwanie
Serwis fundacji działał na WordPressie z Elementorem, WooCommerce i wtyczką rezerwacyjną Bookero — i przez lata dorósł do granic tego zestawu. Fundacja prowadzi wizyty w dwóch trybach (pełnopłatne i niskopłatne — to część jej misji), co wymagało obsługi dwóch równoległych kont Bookero, których wtyczka nie przewiduje. Już na starym stacku rozwiązaliśmy to obejściami, podobnie jak prezentowanie najbliższych wolnych terminów — pobieranych z API i zapisywanych do bazy. Ale każda kolejna funkcja kosztowała coraz więcej: page builder ciążył wydajności, logika rezerwacji żyła w obejściach, a potrzeby rosły — wspólny kalendarz wielu specjalistów, wyszukiwanie po problemie (nie nazwisku), darowizny online i pomoc dostępna także wtedy, gdy nikt nie dyżuruje.
Warunek brzegowy: zespół fundacji zna WordPressa i chciał przy nim zostać. Przebudowa nie mogła oznaczać nowego, obcego panelu.
Rozwiązanie
Przenieśliśmy serwis na architekturę aplikacyjną, zachowując WordPressa jako panel: Bedrock + Sage 10 z Acorn (komponenty Laravel/Blade), PHP 8.4, front budowany Vite i Tailwindem. Zespół fundacji edytuje treści dokładnie tak, jak dotąd — pod spodem pracuje aplikacja.
Sercem projektu jest własny silnik rezerwacji na API Bookero: wspólny kalendarz wielu specjalistów z odznaką najbliższego terminu, oba tryby wizyt w jednym przepływie, cache terminów i odporność na awarie zewnętrznego API (automatyczny bezpiecznik zachowujący dostępne terminy, gdy API odmawia współpracy — a odmawiało, łącznie z blokadą całych klas adresów IP, którą obeszliśmy wymuszeniem IPv6).
Drugi filar to asystent AI działający w całości na infrastrukturze Cloudflare (Workers, AI Gateway, baza wektorowa Vectorize): pomaga znaleźć specjalistę po opisie problemu, zna kalendarz i wydarzenia fundacji, a w sytuacji kryzysowej przełącza się w wielojęzyczny tryb wsparcia z numerami pomocowymi.
Do tego: panel specjalisty, dwuskładnikowe logowanie dla ról uprzywilejowanych, psychomapa ośrodków i wyszukiwarka wsparta wektorowo. Całość prowadzona jak projekt software house'owy: automatyczny deploy (GitHub Actions + Ansible), analiza statyczna PHPStan na najwyższym poziomie ścisłości, testy Pest, Vitest i Playwright.
Migrację przeprowadziliśmy bez ryzyka dla działającego serwisu: nowa strona powstawała równolegle, stara pozostała nietknięta do dnia przełączenia domeny — z zachowaniem pozycji SEO i ciągłości analityki.







Efekt
Wydajność potwierdzona przez Google na realnych użytkownikach — Core Web Vitals zaliczone na mobile i desktop (dane polowe CrUX, 28 dni): mobile LCP 1,0 s · INP 101 ms · CLS 0; desktop LCP 1,2 s · INP 42 ms · CLS 0. W teście laboratoryjnym (Lighthouse, desktop, 15.07.2026): Performance 98, Accessibility 96, Best Practices 92, SEO 92.
W ramach prac optymalizacyjnych: globalny CSS odchudzony o 60% (299 → 119 kB), czas wyświetlenia największego elementu strony kontaktowej skrócony z ~5,6 s do ~3 s, wyeliminowane skoki układu przy ładowaniu fontów.
Fundacja zyskała serwis, który rozwija się w tygodniach, nie kwartałach — 716 commitów w trzy miesiące, ~27 tys. linii własnego kodu — i panel, którego nie musiała się uczyć od nowa.

Następny Projekt
