Prawna przewaga

Zaprojektowany tak, żeby tożsamość
nie mogła przetrwać.

Każda platforma analityczna każe wybierać między wglądem a ingerencją. Observer jest zbudowany tak, żeby ten wybór był niepotrzebny: tryb domyślny niczego nie zapisuje na urządzeniu odwiedzającego, tożsamość rotuje się co północ, a małe próbki są ukrywane na poziomie zapytania. Prywatność nie jest tu polityką — jest matematyką.

Ta strona

Co robi ta strona z Twoją wizytą.

Zakres. Reszta tej strony opisuje produkt Observer: co robi, gdy klient uruchamia go na własnym serwerze. Ta sekcja opisuje, co robi ta strona, observer.castomo.com.

Analityka: Observer. Odwiedziny liczymy za pomocą Observera, naszej własnej analityki, prowadzonej przez Castomo na własnym serwerze we Frankfurcie. Nie ustawia ciasteczek i niczego nie zapisuje na Twoim urządzeniu. Dla każdej otwartej strony zapisuje: adres strony (z zapytania tylko znaczniki kampanii, jak utm_source) i jej tytuł, stronę, z której przyszedłeś, przeglądarkę, typ urządzenia i system, język przeglądarki, orientacyjny przedział rozmiaru ekranu, jak długo strona była aktywnie otwarta, jak szybko się wczytała, ewentualny błąd skryptu oraz — jako sumy — gdzie ludzie klikają i jak głęboko przewijają. Nie nagrywa Twojego ekranu i nie odczytuje naciśnięć klawiszy.

Twój adres IP jest przez chwilę używany razem z przeglądarką do wytworzenia kodu, który zmienia się codziennie i jest inny na każdej stronie. Samego adresu IP nigdy nie zapisujemy, a serwer, który dostarcza Observera, nie prowadzi dziennika dostępu. Kod pozwala policzyć jednego odwiedzającego raz dziennie, ale nie da się nim powiązać wizyty z wizytami w inne dni ani na innych stronach. Surowe zapisy usuwamy po 24 godzinach; zostają tylko sumy, przez 25 miesięcy. Jeśli przeglądarka wysyła sygnał Do Not Track lub Global Privacy Control, Observer nie wysyła żadnych danych o wizycie.

Robimy to w naszym prawnie uzasadnionym interesie, jakim jest wiedza o tym, jak korzysta się z naszych stron (art. 6 ust. 1 lit. f RODO). Możesz w każdej chwili wnieść sprzeciw: hello@castomo.com.

Asystent czatu. Każda strona ma przycisk czatu prowadzony przez Castomo (chat.castomapi.com, serwery w Amsterdamie). Dopóki nie otworzysz czatu, przycisk niczego nie zapisuje na Twoim urządzeniu i nie rozpoczyna rozmowy; przy wczytaniu strony pobiera tylko swoje ustawienia z naszego serwera czatu, który — jak każdy serwer WWW — zapisuje żądanie wraz z Twoim adresem IP w rotującym dzienniku, nadpisywanym w miarę zapełniania.

Gdy otworzysz czat, okno czatu zapisuje w pamięci lokalnej przeglądarki kod odwiedzającego i kilka ustawień, a nasz serwer tworzy rekord odwiedzającego: kod (przechowywany tylko jako skrót), skrót Twojego adresu IP, typ przeglądarki, język i strefę czasową, stronę, na której byłeś, i skąd przyszedłeś, oraz wszystko, co napiszesz — a imię, e-mail lub telefon tylko wtedy, gdy je podasz.

Asystent jest sztuczną inteligencją i mówi o tym wprost. Odpowiedzi piszą modele AI prowadzone przez OpenRouter (Google Gemini) i OpenAI, które otrzymują to, co napiszesz, żeby odpowiedzieć; po zakończeniu rozmowy ten sam tekst trafia do modelu jeszcze raz, by napisał krótkie podsumowanie. Osoba z naszego zespołu może przeczytać rozmowę i ją przejąć. Ci dostawcy mogą przetwarzać dane poza Europejskim Obszarem Gospodarczym.

Rekord odwiedzającego i jego rozmowy przechowujemy do 180 dni od jego ostatniej wizyty, po czym je usuwamy. Możesz poprosić o wcześniejsze usunięcie: hello@castomo.com. Prosimy, nie pisz niczego, czego nie chcesz nam przekazać.

Zapewnienia — testowane, nie życzeniowe

Każdy punkt poniżej potwierdza test.

To nie są intencje. To niezmienniki sprawdzane w CI przy każdym buildzie — w tym 6-specyfikacyjna przeglądarkowa suita prywatności, która uruchamia tracker w prawdziwej przeglądarce z proxy na pamięci i nagrywaniem sieci.

Zero cookies. Zero zapisu w przeglądarce.

W trybie domyślnym tracker niczego nie zapisuje i niczego nie odczytuje na urządzeniu — bez cookies, bez localStorage, bez sessionStorage, bez IndexedDB. Sealed proxy na pamięć potwierdza zero odwołań.

Tożsamość rotowana dziennie

Tożsamość powstaje po stronie serwera z tego, co przeglądarka i tak wysyła (IP + user agent), haszowana kluczem HKDF rotowanym o północy UTC. Hash z wczoraj nie da się połączyć z dzisiejszym.

Przestrzenie nazw per witryna

Każda witryna dostaje własną sól. Blog nie może skorelować się ze sklepem — wymuszone konstrukcją, nie polityką.

Zero przechowywania surowego IP

IP istnieje milisekundy w pamięci collectora — lookup geo i wejście HMAC — po czym znika. Nigdy w logach, nigdy w serializacji; niezmiennik CI sprawdza, że collector nigdy go nie zapisuje.

k-anonimowość ≥ 5

Każdy wiersz dashboardu, eksport i link do migawki ukrywa dane poniżej 5 sesji. Re-identyfikacja małych próbek jest blokowana na poziomie zapytania, nie konwencją.

Zero fingerprintingu

Żadnych sond canvas, WebGL, audio ani fontów. Audyt statyczny wywala build przy każdym naruszeniu — SDK fizycznie nie może „uroić sobie" fingerprintingu.

Wszystko na Twoim sprzęcie

Self-hosted na Twojej infrastrukturze. Zero endpointów zewnętrznych, zero podprocesorów, zero transferów międzynarodowych — dane nie opuszczają maszyn, które posiadasz.

Append-only dziennik audytu

Logowania, zmiany konfiguracji, tworzenie kluczy, odpalania alertów — każda akcja trafia do append-only dziennika, widocznego na stronie Privacy Posture.

DNT, GPC i opt-out respektowane

Do Not Track, Global Privacy Control i observer('optOut') wyciszają SDK bez wyjątków — testy potwierdzają zero beaconów i zero zapisu.

Jak działa tożsamość

Nowy klucz co północ.
Wczoraj to inny kraj.

Większość narzędzi przykleja odwiedzającemu trwałe ID. Observer liczony jest po stronie serwera jako zanonimizowany pseudonim „urządzenie-dzień": HMAC-SHA256 z tego, co przeglądarka i tak wysyła, kluczowany HKDF rotowanym o północy UTC, solony per witryna. Odwiedzający to „ktoś, na tym urządzeniu, dziś" — i nic więcej.

Nie cookie

Nic nie jest zapisywane na urządzeniu. Nie ma czego czyścić, odrzucać ani na co wyrażać zgody.

Nie fingerprinting

Wejściem jest to, co każdy request HTTP już niesie — IP i user agent — używane milisekundy i wyrzucane. Zero sond.

Nie do połączenia

Rotacja klucza jest kryptograficzna, nie administracyjna: połączenie odwiedzającego z poniedziałku z wtorkowym wymaga starego klucza, który już nigdzie nie istnieje.

Ochrona na poziomie zapytania

k-anonimowość ≥ 5 — wszędzie, bez wyjątków.

Dashboardy, eksporty CSV i publiczne migawki przechodzą przez ten sam filtr: każdy wiersz opisujący mniej niż 5 sesji jest ukrywany. Rzadko odwiedzana strona nie da się zidentyfikować przez zawężanie filtrów do jednego odwiedzającego.

Raport stron · /internal/roadmap-2026suppressed
StronaOdsłonyUrządzeniaZaangaż.Status
/934261182:58exact
/cennik418732063:24exact
/blog/analityka-bez-cookies290521444:02exact
/internal/roadmap-2026n = 3 — poniżej progu k-anonimowości wynoszącego 5suppressed
pokazane (n ≥ 5)ukryte (n < 5)

Ten sam próg obowiązuje w każdym eksporcie, każdej odpowiedzi API i każdej publicznej migawce. Szacowane liczby urządzeń niosą uczciwą plakietkę — kolizje NAT zaniżają, zmienność IPv6 fragmentuje, dlatego urządzenia to szacowane „urządzenia-dni", nigdy „unikalni użytkownicy".

Zwolnienie ze zgody, sformułowane prawnie

Co mówimy — i czego mówić odmawiamy.

Zgodnie z naszą samooceną Observer spełnia kryteria ustanowione przez CNIL i może zostać wdrożony bez pytania użytkowników o zgodę, przy poprawnej konfiguracji.

Samoocena wg wzorca CNIL — szablon, który dostarczamy do Twojej polityki prywatności
Mówimy

Self-hosted · bez cookies · bez wymaganej zgody przy poprawnej konfiguracji (samoocena CNIL) · sesje są pseudonimowe · statystyki zagregowane są anonimowe.

Nigdy nie mówimy

„Zgodny z RODO", „certyfikowany", „zatwierdzony przez CNIL", „anonimowi użytkownicy", „w 100% anonimowy". Pokazujemy architekturę i oddajemy testy — Ty weryfikujesz, Ty decydujesz.

To pokazujesz swojemu IOD

Ekran Privacy Posture per witryna: dokładnie co jest zbierane, gdzie przechowywane, jak długo, w którym poziomie i na jakiej podstawie prawnej — plus żywy strumień audytu.

Per witryna, wymuszane serwerowo

Cztery poziomy prywatności. Klucz trzyma serwer.

Poziomy wymusza collector, nie snippet — tracker nie może sam się „podnieść". DNT i GPC wyciszają SDK bezwarunkowo na każdym poziomie.

PoziomPamięć przeglądarkiCo odblokowujeZgodaModel tożsamości
T0 — Strict (domyślny)Nic — bez zapisu i odczytuWszystko: sesje, mapy ciepła, frustracja, CWV, lejkiBez baneraDzienny rotowany HMAC
T1 — SessionTylko sessionStorage (per karta)Stabilne sesje między odświeżeniami; pewne lejki i ścieżkiUdokumentowana podstawa prawnaPer-karta sid + HMAC
T2 — Consented+ localStorage visitor id (13 miesięcy, nigdy nie przedłużany)Ciągłość między wizytami; nagrywanie sesji (samplowane, maskowane)Jawny opt-inVisitor vid + HMAC
T3 — DisabledNicNic — SDK inert, collector odrzucaKill-switchBrak
TTL 13 miesięcy, nigdy przedłużany

Visitor id w T2 wygasa 13 miesięcy po utworzeniu. Wizyty go nie przedłużają — bo tym samym straciłby sens; wytyczne CNIL są tu jednoznaczne.

Przed T2: zero wszystkiego

Przed zgodą kolekcja T2 to zero beaconów, zero zapisu, zero cookies — potwierdza test bramy zgody w przeglądarkowej suicie.

Maskowanie rekordera u źródła

Nagrywanie w T2 stosuje maskAllInputs w przeglądarce, respektuje obs-mask / obs-block / obs-ignore i wyłącza przechwytywanie canvas oraz fontów.

Strona, którą pokazujesz prawnikowi

Ekran Privacy Posture — na żywo, per witryna.

Każda witryna w rejestrze ma żywy widok postawy: poziom, zbierane pola, stan retencji, wymóg zgody, referencję podstawy prawnej i niedawne wpisy audytu. Nie PDF od działu sprzedaży — prawdziwa konfiguracja, czytana z control plane, dla konkretnej witryny, teraz.

Skieruj na to swojego IOD. Odpowiada na jedyne trzy pytania, które się liczą: co zbieramy, dla kogo i jak długo.

Odmowy

Czego Observer nigdy nie zbiera.

Skreślenie tego z roadmapy jest łatwe. Observer nigdy tego nie miał na liście — te funkcje przeczą architekturze, a audyt statyczny trzyma je z dala od SDK.

Łączenie tożsamości między witrynami

Żadnego globalnego grafu odwiedzających. Przestrzenie nazw per witryna czynią korelację między Twoimi własnościami niemożliwą — nawet dla Ciebie.

Powierzchnie fingerprintingu

Żadnych sond canvas, WebGL, audio ani fontów. Mapa ciepła ruchu myszy też jest celowo wykluczona — profilowanie ruchu to najmniej prywatny typ heatmapy.

Integracje z platformami reklamowymi

Żadnych eksportów publiczności, pixel synców ani dopasowań kampanii. Funkcja wymagająca wysyłania danych odwiedzających na zewnątrz nie może w Observerze istnieć.

Przechwytywanie klawiszy

Analityka formularzy liczy zdarzenia focus i fill. Etykiety pól są haszowane; wartości nie są nigdy czytane, wysyłane ani przechowywane.

Surowe IP w trwałym zapisie

Nie w bazie zdarzeń, nie w logach, nie w eksportach. Niezmiennik CI wywala build, gdyby collector miał kiedykolwiek serializować IP w formie trwałej.

Surowe zdarzenia w długim horyzoncie

Surowe zdarzenia wygasają po 24 godzinach na poziomie schemy. Trwają 25 miesięcy k-anonimowych rollupów — zagregowane, nie ślady zachowań.

Uczciwe granice — część historii zaufania

Czego Observer nie potrafi powiedzieć.

Publikujemy to, bo każde narzędzie analityczne ma granice, a większość je ukrywa. Nasze wynikają wprost z architektury — i uważamy, że ten trade jest wart ceny.

  • „Urządzenia" to szacowane urządzenia-dni — nigdy „unikalni użytkownicy". Kolizje NAT zaniżają; zmienność IPv6 fragmentuje.
  • Sesje żyją w 24-godzinnym horyzoncie zdarzeń. Podróże między dniami nie istnieją w T0/T1 — z konstrukcji.
  • Nowi vs. powracający wymaga zgody T2. Tam gdzie inni udają, u nas UI mówi „wymaga zgody".
  • Analityka formularzy liczy pola, nigdy wartości; nagrania maskują pola u źródła.
  • Zero łączenia tożsamości między witrynami, zero integracji reklamowych, zero fingerprintingu — odmowy są tym, co broni postawy bez banera.
  • Replay ma sandboxowany odtwarzacz — ale nagrywanie wymaga T2, więc większość witryn nigdy nie nagra większości odwiedzających. I o to chodzi.

FAQ

Pytania i odpowiedzi — precyzyjnie.

Czy potrzebuję banera zgody?

Nie — w trybie domyślnym (T0) Observer niczego nie zapisuje na urządzeniu odwiedzającego i niczego z niego nie odczytuje. Potwierdza to samoocena w duchu CNIL. Jeśli włączysz T1 lub T2 (pamięć sesji albo visitor id), potrzebujesz udokumentowanej podstawy prawnej albo jawnej zgody.

Jak liczycie odwiedzających bez cookies?

Observer liczy anonimową tożsamość po stronie serwera z tego, co przeglądarka i tak wysyła (IP + user agent), haszowanego kluczem rotowanym o północy UTC. Każdy dzień ma świeży klucz, więc tożsamości z wczoraj nie da się połączyć z dzisiejszą. To nie cookie, nie fingerprinting i nie jest trwałe.

Czy mogę widzieć pojedynczych użytkowników?

Nie. Observer pokazuje zanonimizowane sesje — pseudonimy „urządzenie-dzień". Osie czasu pokazują, co zrobiono, nigdy kto. Nie ma profili użytkowników, łączenia tożsamości między witrynami ani trwałego trackingu w trybie domyślnym.

Czy to naprawdę self-hosted?

Tak. Observer działa na Twoim sprzęcie — ClickHouse, collector, API i dashboard, w Dockerze albo na gołym Node.js. Żadnego zewnętrznego endpointu, żadnego podprocesora, żadne dane nie opuszczają Twojej infrastruktury.

Czym to się różni od Plausible, Umami albo Fathom?

To liczniki ruchu. Observer dodaje całą warstwę zachowań — osie czasu sesji z rozgałęzieniami na karty, mapy ciepła, wykrywanie frustracji, drop-off formularzy, CWV RUM — plus architekturę prywatności, której nikt z nich nie ma: k-anonimowość, dziennik audytu, stronę Privacy Posture i rotowane przestrzenie nazw tożsamości.

A co z RODO?

Observer jest projektowany pod zgodność z RODO przez architekturę — minimalizacja danych, ograniczenie celu, ograniczenie retencji. W trybie domyślnym żadne dane osobowe nie są przechowywane. Dostarczamy sformułowania samooceny CNIL do Twojej polityki prywatności. Nigdy nie mówimy „certyfikowany przez RODO" — pokazujemy architekturę i pozwalamy zweryfikować.

Ile to kosztuje?

Observer jest self-hosted. Jedynym kosztem jest serwer — mniej więcej 60–90 €/mies. przy około 60 milionach zdarzeń miesięcznie. Żadnych opłat za ruch, witryny, stanowiska czy funkcje. Konkurencja za ten sam wolumen bierze 1 200–2 950+ $/mies.

Dlaczego snippet nie może się „podnieść" do zbierania więcej?

Bo poziom wymusza collector, serwerowo. Zmodyfikowany albo źle skonfigurowany snippet nie włączy zapisu, nie przedłuży retencji ani nie uruchomi nagrywania — collector odrzuca zdarzenia niedozwolone dla poziomu witryny.

Czy respektujecie Do Not Track?

Tak — oraz Global Privacy Control i jawne observer('optOut'). Wszystkie trzy wyciszają SDK bezwarunkowo: zero beaconów, zero zapisu. Potwierdzają to zautomatyzowane testy przeglądarkowe.

Nie wierz w zapewnienia.
Uruchom testy.

Przeglądarkowa suita prywatności — cookies, zapis, scrubbing PII, brama zgody, wyciszenie GPC — uruchamiamy na Twoim wdrożeniu podczas onboardingu, a raport trafia do Twojego zespołu DevOps.