Prywatność

Bez ciasteczek i bez kont

Serwis nie zakłada kont, nie używa ciasteczek i nie wysyła niczego do zewnętrznych usług analitycznych. Nie ma tu żadnego skryptu z obcego serwera — polityka bezpieczeństwa treści na to nie pozwala.

Co zostaje na Twoim urządzeniu

Ulubione tablice, kolejność przypięć, motyw i wybrane miasto zapisują się w Twojej przeglądarce i nigdy nie są wysyłane na serwer. Możesz je wyeksportować do pliku i zaimportować na innym urządzeniu — to jedyny sposób, w jaki opuszczają Twój sprzęt, i robisz to sam.

Licznik odwiedzin

Serwis liczy, ile osób z niego korzysta. Robi to tak, żeby nie dało się z tego odtworzyć, kto i co robił:

odwiedzin.

i losowej soli, która zmienia się o północy i nigdy nie jest zapisywana.

dniami ani cofnąć skrótu do adresu — także mając dostęp do całej bazy i całego kodu.

Kosztem tej decyzji jest to, że liczba unikalnych odwiedzin w miesiącu nie jest sumą liczb dziennych. Uznaliśmy, że miara, której nie da się nadużyć, jest warta więcej niż miara dokładniejsza.

Co dokładnie zapisuje licznik

Żeby nie było wątpliwości, poniżej jest pełna lista. Nie ma tu nic poza liczbami.

coprzykładpo co
godzina i liczba unikalnych skrótów2026-09-04 14:00 → 12„ile osób i o której"
kategoria żądaniaapi → 980proporcje ruchu, koszt transferu
ścieżka bez zapytania/api/departuresktóre ekrany są używane
klasa klientamobile / desktop / botczy budować pod telefon

Czego tam nie ma: adresu IP, pełnego User-Agent, kluczy przystanków, treści zapytań, żadnego identyfikatora, który przetrwałby dobę. Ścieżka zapisywana jest bez części po znaku zapytania — /api/departures, nigdy /api/departures?keys=… — bo klucze przystanków mówiłyby, dokąd ktoś jedzie.

Klasa klienta to trzy kubełki wyliczone z User-Agent i natychmiast zapominane: sam nagłówek nigdzie nie jest zapisywany. Automaty są liczone osobno, bo bez ich odsiania liczba odwiedzin jest fikcją — potrafią odpowiadać za większość ruchu.

Czego ten licznik nie potrafi i nie będzie potrafił

Nie umiemy powiedzieć, ilu jest stałych użytkowników. Sól zmienia się o północy, więc ta sama osoba w poniedziałek i wtorek ma dwa różne skróty i nie ma sposobu, żeby je połączyć. Suma odwiedzin z tygodnia to „wizyto-dni", nie liczba osób, i tak jest podpisana w statystykach.

To nie jest niedoróbka do naprawienia w przyszłej wersji. Policzenie stałych użytkowników wymagałoby identyfikatora przeżywającego dobę — czyli dokładnie tego, czego tu nie ma. Wybraliśmy miarę słabszą, ale taką, której nie da się nadużyć.

Powiadomienia „wychodź"

Jeśli włączysz przypomnienie o wyjściu, serwis zapisuje subskrypcję powiadomień — identyfikator, który Twoja przeglądarka dostaje od swojej usługi push (Google, Mozilla albo Apple, zależnie od przeglądarki). To jedyna rzecz w całym serwisie, która przeżywa dobę i jest przypisana do konkretnego urządzenia. Wcześniej nie przechowywaliśmy niczego takiego i nie zmieniamy tego lekką ręką.

Co serwer wie o Twoim alarmie

Dokładnie dwie rzeczy: nieprzezroczysty identyfikator i godzinę pobudki.

W bazie stoi coś w rodzaju k7QmAbCdEfGh i znacznik czasu. Nie ma tam ani nazwy linii, ani kierunku, ani przystanku. Identyfikator to skrót wyliczony w Twojej przeglądarce i serwer nie ma słownika, żeby go odwrócić.

Nazwę linii i kierunek trzyma wyłącznie Twoje urządzenie — leżą w pamięci lokalnej aplikacji i dopiero tam składają się w treść powiadomienia. Dlatego z bazy serwisu nie da się odczytać, dokąd ktokolwiek jeździ, nawet mając do niej pełny dostęp.

Co dostaje usługa push

Sam zaszyfrowany pakiet. Treść jest szyfrowana kluczem, który zna tylko Twoja przeglądarka (standard RFC 8291) — Google ani Apple nie widzą, co w niej jest. Wiedzą natomiast, że o danej godzinie coś do Ciebie wysłaliśmy; tego nie da się uniknąć przy żadnych powiadomieniach push i dotyczy to każdej aplikacji, która ich używa.

Nie w każdej przeglądarce to zadziała

Powiadomienie przy całkiem zamkniętej aplikacji wymaga mechanizmu Push, który w Chromium opiera się na usługach Google. Przeglądarki, które te usługi celowo usuwają — Cromite, Bromite, ungoogled-chromium — nie obsługują go i jest to ich świadoma decyzja o prywatności, nie usterka serwisu.

W tych przeglądarkach przypomnienie zadziała, dopóki aplikacja jest uruchomiona, także gdy leży w tle. Serwis wykrywa tę sytuację i mówi o niej wprost w Ustawieniach, zamiast obiecywać powiadomienie, którego nie będzie.

Warto wiedzieć, że na Androidzie nie ma tu wyjścia przez zmianę przeglądarki: dostarczanie powiadomień push opiera się na usługach Google Play i potrzebuje ich każda przeglądarka, także Firefox, który do samego dostarczenia używa mechanizmu Google. Na urządzeniu bez tych usług powiadomienia przy zamkniętej aplikacji nie zadziałają w żadnej z nich.

Na iPhonie i iPadzie powiadomienia wymagają dodania serwisu do ekranu początkowego — w zwykłej karcie Safari nie działają wcale.

Jak to wyłączyć i co znika

Wyłączenie przypomnienia usuwa alarm z serwera od razu. Cofnięcie zgody na powiadomienia w ustawieniach przeglądarki unieważnia subskrypcję — serwis dowiaduje się o tym przy pierwszej nieudanej wysyłce i kasuje ją z bazy. Subskrypcja, na którą przez 90 dni nic nie poszło, jest kasowana sama.

Twoja lokalizacja

Jeśli włączysz lokalizację, serwis pokaże Twoją pozycję na mapie i będzie mógł liczyć odległości do przystanków.

Współrzędne nie opuszczają urządzenia. Nie ma zapytania, które by je wysyłało; mapa pyta serwer o okolicę środka widoku, a nie o to, gdzie jesteś. Odległości i czasy dojścia liczy przeglądarka z danych, które i tak ma: współrzędne słupków przychodzą w katalogu przystanków, pozycje pojazdów w zapytaniu o okolicę.

Pozycja nie jest też nigdzie zapisywana — ani na dysku, ani w pamięci przeglądarki. Żyje w otwartej karcie i znika razem z nią.

Pilnuje tego osobny test, który sprawdza, czy w module lokalizacji nie pojawiło się żadne wysyłanie danych. To nie jest kwestia dobrych chęci: jedna dopisana linijka mogłaby unieważnić tę obietnicę, a funkcja działałaby dalej tak samo i nikt by nie zauważył.

Odbiornik pozycji pracuje wyłącznie przy otwartej mapie i wyłącza się razem z nią — stale włączony zjadałby baterię, a nie ma jak tego zauważyć.

Dane o komunikacji

Historia odjazdów i pozycji pojazdów jest zapisywana, bo bez niej nie da się policzyć punktualności. Dotyczy wyłącznie pojazdów, kursów i przystanków — nie osób korzystających z serwisu.