Side projecty

Case study · 08.2026

kajakipodwarszawą

Przewodnik po ponad 150 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.

Informacje o projekcie

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

01

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ę.

02

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:

  • Trzy grupy odbiorców o różnych potrzebach: kajakarze, właściciele wypożyczalni i wyszukiwarki.
  • Tani hosting współdzielony: wyłącznie PHP, bez Node.js, bez Pythona i bez zarządzanej bazy danych.
  • Klienci sezonowi, którzy logują się kilka razy w roku i wolą decydować przez telefon.
  • Standard prywatności na tyle wysoki, by baner cookies w ogóle nie był potrzebny.
  • Jednoosobowy zespół pracujący wieczorami i w weekendy.

03

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

Ponad 150 pinezek 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

04

Kluczowe decyzje produktowe

  1. 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.

  2. 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.

  3. 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.

  4. 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.

05

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: pikselowa mapa rzek i miejscowości Mazowsza z bazami wypożyczalni kajaków
Ten sam serwis i te same dane jako 8-bitowy overworld

06

Wyniki

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

07

Stack technologiczny

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

08

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.

  1. 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.

  2. 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.

  3. 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ę.

09

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, a docelowo – po potwierdzeniu skuteczności na rynku krajowym – rozwiązanie będzie gotowe do ekspansji na rynki europejskie i światowe.

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

Zobacz kajakipodwarszawa.pl.