Case study

Zbudowaliśmy nie stronę,
a cały ekosystem

Kaszuby24.pl to regionalny portal, którego silnik napisaliśmy od zera. Zamiast WordPressa, własna platforma z newsroomem napędzanym AI, aplikacją mobilną, kilkunastoma usługami dla mieszkańca i siecią pod-portali. Poniżej cała skala projektu jednym rzutem oka.

Janek Kropidłowski Janek Kropidłowski Grupa Kropidłowscy Czerwiec 2026
Portal Kaszuby24.pl
Skala projektu

Ile tego naprawdę jest

19,4 tys.
artykułów w portalu
16+
funkcji dla mieszkańca
12+
integracji i automatyzacji
40+
endpointów API
81 GB
mediów w bibliotece
2
silniki AI (OpenAI + Azure)
15+
zadań cron w tle
3
powiązane pod-portale
Funkcje

Kilkanaście narzędzi w jednym miejscu

To nie jest sam strumień newsów. To powody, dla których mieszkaniec wraca codziennie.

Treść i czytanie

Audio do każdego artykułu

Pod każdym tekstem działa odtwarzacz lektora z regulacją prędkości i paskiem postępu.

Tryb swipe jak TikTok

Osobny ekran z artykułami jako pełnoekranowe karty przewijane palcem w pionie, z lektorem.

Gesty między artykułami

Przesunięcie palcem przeskakuje do poprzedniego i następnego tekstu, z wibracją przy progu.

Głos rzecznika w artykule

Oryginalne nagranie wypowiedzi policji czy straży, ze zdjęciem mówcy i transkrypcją.

Pamięć czytania

Feed nie pokazuje przeczytanych tekstów, a artykuł wraca do miejsca, w którym skończyłeś.

Komentarze z Facebooka

Pod artykułem widać komentarze scalone z powiązanych postów na Facebooku, bez wulgaryzmów.

Galeria i media

Galeria fotoreportaży z Flickr

Albumy zdjęć prosto z konta Flickr portalu, z powiększeniem i pobieraniem fotografii w pełnej rozdzielczości.

Wideo z YouTube

Filmy z kanału YouTube portalu osadzone w artykułach i w osobnej sekcji wideo na stronie.

Galeria i wideo w artykule

Tekst może mieć wpięty album Flickr i materiały wideo w treści, działa też w trybie swipe.

Lokalność i personalizacja

Strona główna pod Twoją okolicę

Lokalny slajder dobiera treści do powiatu wykrytego z lokalizacji lub wyboru czytelnika, z najbliższego otoczenia.

Słowo dnia po kaszubsku

W nagłówku rotuje kaszubskie słowo dnia z bogatej bazy haseł, razem z imieninami dnia.

Zdrowie i bezpieczeństwo

Kolejka na SOR na żywo

Mapa czasu oczekiwania w szpitalach z rządowego systemu NFZ TopSOR.

Mapa defibrylatorów AED

961 kuratorowanych punktów z OpenStreetMap, z dostępnością, godzinami i telefonem.

Apteki i dyżury

Ponad 1700 aptek z filtrem całodobowych i dyżurnych oraz statusem otwarcia na bieżąco.

Skaner kodów leków

Kamera dekoduje kod z opakowania i znajduje preparat w bazie ponad 22 tysięcy leków.

Baza leków z ulotkami

Wyszukiwanie po nazwie, substancji i kodzie ATC, z ulotką i charakterystyką w PDF.

Transport i okolica

Wyszukiwarka połączeń

Planer na rozklady.kaszuby24.pl łączy autobusy, pociągi, tramwaje i promy z mapą, w tym sezonowy tramwaj wodny Zatoki Puckiej.

Pogoda z najbliższej stacji

Prognoza bierze dane ze stacji najbliższej miastu czytelnika, więc jest najbardziej wiarygodna dla jego okolicy.

Harmonogram wywozu odpadów

Kalkulator dla 8 miast z filtrem po ulicy i eksportem do kalendarza.

Ogłoszenia, nieruchomości i praca

Oferty pracy w regionie

Oferty z ogloszenia.kaszuby24.pl i ze źródeł zewnętrznych, z filtrem 30 km i sortowaniem po dacie czy wynagrodzeniu.

Ogłoszenia od mieszkańców

Każdy może dodać własne ogłoszenie, a sekcja na stronie głównej dobiera je do okolicy czytelnika.

Biura z własnym systemem CRM

Biura nieruchomości mają profile i zaciągają oferty prosto ze swoich systemów CRM przez import FTP lub API.

Nekrologi, wydarzenia i instytucje

Nekrologi po regionach

Klepsydry z filtrem i mapowaniem na 8 regionów Kaszub, z udostępnianiem i pobieraniem.

Wydarzenia z biletami

Kalendarz z kategoriami, miastami i artystami oraz linkiem Kup bilet.

Profile instytucji

Katalog organizacji z logo i publikacjami, z wyróżnieniem LZS Pomorskiego.

Rezultaty

Efekt w Google widać od razu

Przepisaliśmy całość i przełączyliśmy domenę bez przerwy w działaniu. Migracja nie tylko nie zaszkodziła pozycjom. Już w pierwszych tygodniach widoczność wyraźnie wzrosła, a wzrost okazał się trwały.

+1500%
Google Discover, wzrost trwały
+25%
ruch z wyszukiwarki
+200%
Google News
Automatyzacje i integracje

Co dzieje się samo, bez udziału redakcji

Treści wpływają, powstają i rozchodzą się w świat automatycznie. Człowiek wkracza tylko tam, gdzie naprawdę trzeba.

Newsroom i AI

Pobieranie z ponad 28 źródeł

Cztery razy dziennie system zaciąga treści z kanałów RSS, API i scraperów gmin, policji i urzędów.

AI przepisuje newsa na artykuł

OpenAI z fallbackiem na Azure tworzy tytuł, treść, SEO i teaser, ze strażnikiem podobieństwa do źródła.

Ocena newsowości materiału

Algorytm wytrenowany na blisko tysiącu realnych postów ocenia, co jest pilne, a co można pominąć.

Czat edycji AI dla redaktora

Redaktor poleca AI poprawkę tytułu czy treści w czasie rzeczywistym, bez przetwarzania całości od nowa.

Harmonogram publikacji

System rozkłada artykuły równomiernie w oknie od 7 do 21, do dwóch publikacji na godzinę.

Audio czytane przez AI

Hybryda lektora ElevenLabs i Azure sklejana w jeden plik, oszczędza około 70 procent limitu.

Transkrypcja nagrań rzeczników

Wgrane wypowiedzi transkrybuje Azure Whisper i opisuje danymi mówcy z bazy.

Media i dystrybucja w social media

Auto publikacja na Facebooku

Kolejka sprawdzana co 5 minut publikuje przez Graph API, z limitem na powiat i okno godzinowe.

Auto komentarz pod postem

System sam dodaje pod postem komentarz z fragmentem i linkiem do pełnego artykułu.

Dopasowanie postów do artykułów

Co pół godziny łączy linki z postów na Facebooku z artykułami po adresie.

Automatyczne grafiki na Facebooka

Brandowane karty ze zdjęciem i tytułem artykułu generowane w locie.

Automatyczne rolki z 4 szablonami

Z artykułu sam powstaje pionowy filmik z lektorem i napisami, gotowy w pół minuty, do wyboru cztery układy.

Statystyki postów w naszym CMS

Zasięg, reakcje i kliknięcia świeżych postów co 6 godzin wracają do statystyk artykułu.

Dane z systemów zewnętrznych

Nekrologi z zakładów pogrzebowych

Zawiadomienia z systemu zakładu trafiają webhookiem do bazy i są mapowane na region Kaszub.

Własny silnik rozkładów OTP

OpenTripPlanner liczy połączenia z 8 rozkładów GTFS i mapy OSM, z opóźnieniami pociągów na żywo.

Osiem źródeł rozkładów jazdy

PolRegio, SKM, PKS Gdynia, MZK Wejherowo, ZKM Gdynia, ZTM Gdańsk, PKP Intercity i RegioJet.

Generator rozkładów PKP

Co noc pobiera dane z oficjalnego API PKP dla kilkunastu przewoźników i składa je w rozkład.

Dane zdrowotne z baz rządowych

SOR z pacjent.gov.pl i NFZ, leki z rejestru RPL, apteki z rejestru GIF z geokodowaniem.

Pogoda i alerty IMGW

Prognoza z Open-Meteo, a co 10 minut skan ostrzeżeń IMGW z gotowym szkicem alertu dla redakcji.

Wydarzenia i instytucje

Partnerska obsługa wydarzeń

Pełne zarządzanie kalendarzem z kategoriami, obiektami, artystami i linkami biletowymi.

Branding organizatora

Wydarzenie instytucji dostaje jej logo i nazwę, tak samo jak materiały LZS Pomorskiego.

Bramka onboardingu

Instytucja publikuje dopiero po uzupełnieniu profilu i akceptacji regulaminu publikacji.

Własny CMS i magazyn mediów

Własny CMS newsroomu

Panel daje redakcji strumień surowych newsów, edycję, kalendarz publikacji i kolejkę Facebooka.

Media na Azure Blob

Archiwalne zdjęcia w Azure Blob Storage, ze starych adresów WordPress przepisanych na CDN.

Magazyn w Supabase Storage

Audio, zdjęcia i rolki w osobnych bucketach serwowanych przez CDN.

SEO i analityka

Natychmiastowe zgłaszanie do Google

Artykuł trafia przez Indexing API do Google i przez IndexNow do Bing, Yandex i innych, bez czekania.

Świeża sitemapa News

Po każdej publikacji aktualna sitemapa News trafia do Google Search Console.

Synchronizacja odsłon z GA4

Co godzinę odsłony z Google Analytics aktualizują ranking popularnych artykułów.

Snapshot Search Console

Codziennie metryki z GSC trafiają do bazy, żeby analizować trendy bez czekania na interfejs.

Backfill alt-textów przez AI

AI generuje opisy alternatywne i tytuły zdjęć, poprawiając dostępność i SEO.

Dla technicznych

Co i jak zbudowaliśmy pod maską

Tę część można pominąć, jeśli interesuje Cię tylko efekt. Jeśli jednak chcesz wiedzieć, na czym to stoi, oto konkrety. Nic z gotowej półki, własny system napisany od zera.

Architektura: trzy warstwy spięte mostem do WordPressa

Backend wystawia endpointy udające WordPress REST API, ale pod spodem czyta z Supabase. To była kluczowa decyzja, bo wokół starego portalu narosło sporo rzeczy zbudowanych pod API WordPressa, na przykład aplikacja mobilna i integracje firm zewnętrznych. Zamiast przepisywać je wszystkie, zostawiliśmy to samo API, więc działają dalej, choć WordPress został odłączony od ruchu publicznego.

Frontend
Next.js 16 + React 19 · kaszuby24.pl
App Router, ISR, dynamic imports, Tailwind v4, output standalone
↓   fetchWP() / PostgREST   ↓
Panel / Backend
Express 5 + Vue 3 · panel.kaszuby24.pl
Newsroom AI · scheduler · audio · SEO · Facebook · Google · warstwa wp-compat
↓        ↓
Dane główne
Supabase / Postgres
artykuły, wydarzenia, nekrologi, autoryzacja
Side-car
SQLite
źródła newsów, kolejki, log audio, harmonogramy

Własny CMS, uszyty na miarę

Nie wzięliśmy gotowego CMS-a z półki. Cały system napisaliśmy pod ten jeden portal: od scrapingu i pobierania danych ze źródeł, przez generowanie i edycję treści w panelu, po publikację, audio i dystrybucję. Redaktor ma wszystko w jednym widoku i to on zostaje w pętli: zatwierdza tekst, dobiera zdjęcie i decyduje o terminie.

Panel redakcyjny Kaszuby24 z newsroomem AI

Newsroom AI: od źródła do publikacji

Pobieranie materiałów

RSS, WordPress API i scrapery z kilkunastu źródeł (PAP, urzędy, gminy, Facebook). Cron co 30 minut.

Przepisanie przez AI

OpenAI jako model główny, Azure OpenAI jako fallback. W jednym przebiegu: tytuł, treść, tagi, zajawka na FB i pakiet SEO.

Szlif redaktora

Tryb czatu do dopracowania. Strażnik podobieństwa pilnuje, by tytuł nie był kopią źródła.

Planowanie publikacji

WWW w slotach co 30 minut, Facebook z odstępem 2 godzin i limitem na region.

Generowanie mediów: audio i wideo

Lektora czyta hybryda ElevenLabs i Azure, sklejana ffmpegiem w jeden plik MP3, co oszczędza około 70 procent droższego limitu. Rolki powstają w pipelinie: skrypt pisze model Claude, głos syntezuje TTS, a pionowe wideo renderuje Remotion na AWS Lambda w 20 do 30 sekund, z fallbackiem na render w Azure i lokalny. Grafiki na Facebooka generuje sharp z cache opartym o hash, więc ten sam artykuł nie renderuje się dwa razy.

SEO bez utraty pozycji

Migracja 19 tysięcy adresów wymagała ostrożności: 268 reguł przekierowań jeden do jednego, fallback starych slugów z 301, cztery sitemapy (główna, News, obrazów, wideo) oraz dane wystawione w HTML czytelne dla modeli AI. Do tego CSP w trybie enforcing, HSTS, sanityzacja treści i rate limiting. Mechanizmy indeksacji i IndexNow działają jako wspólne API SEO dla całego ekosystemu, w tym serwisów nieruchomości i ogłoszeń, bez duplikowania integracji z Google.

Cały stack, warstwa po warstwie

Portal główny
Next.js 16React 19TypeScriptTailwind v4PartytownSentry
Panel redakcyjny
Vue 3PiniaExpress 5TipTapFullCalendarLeaflet
Aplikacja mobilna
Expo SDK 54React NativeZustandExpo RouterFlashList
Baza i infrastruktura
SupabasePostgreSQLSupabase StorageAzure BlobDockerNginx
AI i automatyzacja
OpenAIAzure OpenAIElevenLabs TTSAzure Speech to TextRemotion
Integracje zewnętrzne
Search ConsoleGA4IndexNowFacebookInstagramFlickrGoogle Ads
Podsumowanie

Czego chcieliśmy i dlaczego tak

Punktem wyjścia nie była technologia, tylko cel: portal, który nadąża za regionem, nie obciąża małej redakcji i zostaje pod pełną kontrolą wydawcy.

Efekt to portal szybszy, bezpieczniejszy i bardziej widoczny, który łatwo rozwijać o kolejne moduły. Ten sam sposób myślenia, najpierw cel, potem dobrana technologia, przenosimy na kolejne projekty.

Hej! tu Janek

Masz portal albo system do przebudowy?

Robimy migracje bez utraty SEO, własne platformy i automatyzacje z AI. Wycena i konsultacja bezpłatna.

Janek Kropidłowski
Janek Kropidłowski
Grupa Kropidłowscy