kajakipodwarszawą

Case study
kajakipodwarszawa.pl edycja 8-bit

Przewodnik po 162 wypożyczalniach kajaków na 14 rzekach wokół Warszawy, oparty na mapie, z samoobsługowym panelem dla firm, płatnościami online i powiadomieniami push.

Rola
Produkt, projekt i development
Czas
~2 tygodnie, sierpień–wrzesień 2026
Zakres
Aplikacja web, panel B2B, płatności
Status
Działa produkcyjnie

Kontekst

W promieniu 150 km od Warszawy działa ponad 150 wypożyczalni kajaków na kilkunastu rzekach. To w większości małe, rodzinne i sezonowe firmy. Informacje o nich są rozproszone po nieaktualnych stronach, profilach w mediach społecznościowych i numerach telefonów przekazywanych z ust do ust.

Kto planował weekend na wodzie, nie miał jednego miejsca, w którym porówna rzeki, znajdzie wypożyczalnię na wybranym odcinku i przed wyjazdem sprawdzi prognozę.

Wyzwanie

Celem było stworzenie podstawowego źródła wiedzy o spływach wokół Warszawy: na tyle przydatnego, by kajakarze do niego wracali, i na tyle wartościowego, by właściciele wypożyczalni chcieli płacić za widoczność. Projekt miał jasno określone ograniczenia:


Rozwiązanie

Jeden serwis w trzech warstwach: publiczny przewodnik oparty na mapie dla kajakarzy, generowana warstwa SEO dla wyszukiwarek i asystentów AI oraz samoobsługowy panel, w którym firmy zarządzają swoją obecnością i kupują promocję.

Interaktywna mapa

162 pinezki na 14 rzekach i w 38 miejscowościach, każda z telefonem, stroną www i wizytówką firmy. Bezpośrednie linki prowadzą do każdej rzeki, miejscowości i wypożyczalni.

Pogoda na spływ

Kilkudniowa prognoza na stronie każdej rzeki i miejscowości, z prostą podpowiedzią, czy zabrać kurtkę przeciwdeszczową.

Strony SEO

54 strony generowane z bazy, po jednej dla każdej rzeki i miejscowości, z danymi strukturalnymi, kartami do social mediów i plikiem llms.txt dla asystentów AI.

Panel dla firm

Samoobsługowe konta z aktywacją i resetem hasła przez e-mail. Właściciele sami zarządzają wizytówką, filmem i promocjami.

Płatności online

Stripe Checkout dla wizytówek i promocji. Płatność jest potwierdzana webhookiem, dodatkowo weryfikowana w Stripe po powrocie klienta, a rachunek trafia na konto firmy.

Powiadomienia push

Kajakarze obserwują rzekę, miejscowość albo konkretną wypożyczalnię. Firmy płacą za dotarcie do nich, a dzienne i tygodniowe limity chronią subskrybentów przed spamem.

Strona główna Kajaki pod Warszawą w ciemnym motywie: nagłówek, kluczowe liczby i widżet pogody
Strona główna, edycja klasyczna w ciemnym motywie

Kluczowe decyzje produktowe

01

Statyczne strony na celowo prostym stosie

Strony publiczne są generowane jako statyczny HTML z jednej bazy SQLite, a panel obsługuje niewielkie API w czystym PHP. Nie ma frameworka ani zależności po stronie serwera. Serwis działa na tanim hostingu, ładuje się szybko i prawie nic nie kosztuje w utrzymaniu. Elementy, po które zwykle sięga się do bibliotek, takie jak szyfrowanie Web Push i podpisy VAPID, powstały od podstaw i zostały zweryfikowane na referencyjnych danych testowych ze standardu RFC 8291.

02

Prywatność w projekcie, nie w banerze

Serwis nie zapisuje ciasteczek, więc nie potrzebuje baneru zgody. Analityka działa w PostHog w regionie UE bez trwałych identyfikatorów, fonty są serwowane z własnego serwera, a filmy z YouTube ładują się dopiero po kliknięciu. Ochronę przed spamem zapewniają limity prób, ukryte pole-pułapka i pomiar czasu wypełnienia formularza zamiast zewnętrznej CAPTCHY. Zasady haseł są zgodne z NIST SP 800-63B.

03

Cennik dopasowany do sezonowego biznesu

Każda wypożyczalnia ma darmową pinezkę. Pełna wizytówka to jednorazowe 299 zł, bez abonamentu. Promocje są sprzedawane jako pojedyncze powiadomienia push i wyceniane według zasięgu: od 10 zł za dotarcie do obserwujących daną firmę do 100 zł za wszystkich subskrybentów, z dopłatą za link prowadzący poza serwis.

04

Identyfikacja wizualna, która nie wygląda na wygenerowaną

Edycja klasyczna ma własną typografię i paletę, w której każda para kolorów ma sprawdzony kontrast pod kątem a11y. Do tego cały serwis ma drugą, w pełni funkcjonalną skórkę, opisaną niżej.


Edycja 8-bit

Edycja 8-bit jest dostępna pod adresem /8bit/ i można ją włączyć z menu motywów. Pokazuje te same dane na żywo jako mapę świata z 8-bitowej gry RPG: rzeki są rysowane z prawdziwych współrzędnych, miejscowości to domki, wypożyczalnie to questy, a pogoda to growy HUD.

Napędza ją własny, mały silnik bez bibliotek, który renderuje sprite'y zapisane jako ASCII art do formatu SVG. Kroje pisma zostały dobrane na podstawie pomiarów: jeden z popularnych fontów pikselowych odpadł, bo nie obsługuje polskich znaków. Ścieżkę dźwiękową tworzą trzy utwory na licencjach Creative Commons z OpenGameArt, z podpisami autorów we wbudowanym odtwarzaczu.

Edycja 8-bit: pikselowy nagłówek, HUD pogody i pikselowa mapa rzek Mazowsza
Ten sam serwis i te same dane jako 8-bitowy overworld

Wyniki

~2
Tygodnie do startu
162
Wypożyczalnie
14
Rzeki
38
Miejscowości
54
Strony SEO
16
Problemów wykrytych w przeglądzie
0
Ciasteczek
0
Zależności backendu

Stack technologiczny

PHP 8.1 SQLite Vanilla JS MapLibre GL OpenFreeMap Open-Meteo Stripe Checkout Web Push (VAPID) PostHog EU PWA Hostinger Claude Code

Jak AI zmieniła proces

Większość implementacji przejął Claude Code. Moja rola przesunęła się w stronę product ownera i architekta: wyznaczania kierunku, podejmowania kompromisów i weryfikowania efektów. Największą różnicę zrobiły trzy praktyki.

01

Budowa w jednej pętli, przegląd z udziałem wielu agentów

Bieżąca praca toczyła się w jednej sesji, z małymi i częstymi commitami. Workflowy z wieloma agentami były zarezerwowane na przeglądy. Adwersarialny przegląd systemu powiadomień z udziałem 45 agentów potwierdził 16 problemów, a wszystkie istotne zostały naprawione przed startem. Taka głębia ma swoją cenę: jeden przegląd tego typu potrafi zużyć całe pięciogodzinne okno limitu.

02

Trwała pamięć projektu

Kluczowe decyzje są zapisywane raz i przenoszone do każdej kolejnej sesji: brak zewnętrznej CAPTCHY, baza danych jako jedyne źródło prawdy, zakaz wysyłki maili systemowych do firm z katalogu.

03

Zabezpieczenia przed skutkami w realnym świecie

Podczas jednego z testów błędna edycja konfiguracji przełączyła wysyłkę maili z trybu plikowego na prawdziwą, a zaproszenie trafiło do prawdziwej firmy - na szczęście była to zaprzyjaźniona firma moich kolegów Wincent Sport, która posiada przykładową wizytówkę w serwisie. Od tego czasu testy z prawdziwą pocztą idą wyłącznie na moje skrzynki, dane demo zawierają tylko konto administratora, a każda automatyczna zmiana konfiguracji jest weryfikowana po fakcie.

AI sprawia, że budowanie jest tanie, więc wartość przesuwa się w stronę osądu: co budować, którym danym ufać i gdzie postawić granicę.


Co dalej

Po zaindeksowaniu strony i walidacji modelu biznesowego przystąpię do skalowania produktu w oparciu o domenę splywykajakowe.eu. Ten sam silnik będzie napędzał ogólnopolski przewodnik po rzekach, jeziorach i kanałach we wszystkich 16 województwach.

Kolejne wyzwanie jest bardziej handlowe niż techniczne. Teraz trzeba dotrzeć do właścicieli wypożyczalni, którzy prowadzą biznes przez telefon, a nie w dashboardach, i pokazać im, że miejsce na mapie jest warte ich czasu i pieniędzy. Najlepszy moment na tę rozmowę to poza sezonem, kiedy właściciele planują kolejny rok.

Równolegle tworzony jest case study SEO dla wypożyczalni wincentsport.pl, który jest pierwszym partnerem kajakipodwarszawa.pl.

kajakipodwarszawa.pl edycja 8-bit