Ostatnia aktualizacja: 21 sierpnia 2026

Prywatność

nodes to aplikacja jednej osoby, w zamkniętej becie. Ta strona mówi dokładnie, co opuszcza Twoje urządzenie, co go nie opuszcza, kto jeszcze ma z tym styczność i jak wyłączyć to, co jest opcjonalne. Napisana jest po to, żeby ją przeczytać, a nie przetrwać — jeśli coś tu jest niejasne, to błąd tej strony.

Krótko

Co zostaje na Twoim urządzeniu

Na komputerze i telefonie cała kolekcja leży w pliku SQLite na Twojej maszynie — po jednym na zalogowane konto. Nauka, edycja, import, graf wiedzy i planowanie powtórek działają lokalnie i offline. Kilka rzeczy nie wychodzi stąd nigdy:

Co trafia do chmury przy synchronizacji

Na komputerze i telefonie synchronizacja jest ręczna — dzieje się wtedy, gdy naciśniesz przycisk. Klient webowy pod adresem /app/ działa inaczej: nie ma lokalnej bazy, więc czyta i zapisuje kopię w chmurze bezpośrednio, a powtórki zrobione tam zapisują się na bieżąco.

Co jest wysyłane — wszystko pod Twoim kontem:

Ten ostatni punkt zasługuje na szczegół: magazyn obrazków może odczytać każdy, kto zna 256-bitową ścieżkę, a ścieżka nie zawiera ani nazwy pliku, ani nazwy talii, ani identyfikatora konta. Mapę, z której te ścieżki powstają, może odczytać wyłącznie Twoje konto. To nie jest sejf — to magazyn, w którym znalezienie Twojego obrazka wymaga wcześniejszej znajomości jego dokładnej zawartości.

Diagnostyka w trakcie bety

Aplikacja nie miała żadnego sposobu, żeby zobaczyć awarię. Osoba testująca, której ekran zrobił się czerwony, nie zostawiała po sobie niczego — a to kiepski sposób prowadzenia bety. Dlatego aplikacja zgłasza teraz dwie rzeczy. Obie obejmuje jeden przełącznik, domyślnie włączony, który aplikacja proponuje wyłączyć przy pierwszym uruchomieniu.

Statystyki użycia

Siedem nazw zdarzeń i ani jednej więcej — nazwę, której aplikacja nie zadeklarowała, baza odrzuca. Każde zdarzenie niesie liczby, flagi i ustalone etykiety; nigdy tekst, który wpisujesz:

Zdarzenia czekają w kolejce na Twoim urządzeniu i wysyłane są przy starcie aplikacji oraz po synchronizacji, więc offline nie wychodzi nic. Kolejka mieści najwyżej 500 pozycji i porzuca wszystko starsze niż 30 dni.

Zgłoszenia awarii

Kiedy coś rzuci wyjątkiem, aplikacja może wysłać komunikat błędu, ślad stosu, krótką ustaloną etykietę miejsca, wersję aplikacji i platformę. Adres IP, nazwa użytkownika i nazwa urządzenia są jawnie wyłączone, a pomiary wydajności nie są zbierane w ogóle.

Słowo „może” niesie tu sporo treści. Zgłaszanie awarii instaluje się wyłącznie w kompilacji zrobionej z kluczem raportującym, a żaden skrypt budujący w publicznym repozytorium aplikacji takiego klucza nie podaje — łącznie z tym, który tworzy pliki do pobrania dla bety. Jeśli więc nie masz specjalnie przygotowanej kopii, moduł zgłaszania awarii nie jest u Ciebie po prostu wyłączony: nigdy nie został zainstalowany i żadne zgłoszenie nie opuściło Twojego urządzenia. Statystyki użycia to osobna sprawa i to ich nie dotyczy.

Dwie rzeczy, które aplikacja formułuje odrobinę za mocno

„Anonimowe” nie jest do końca trafne. Zgłoszenia i zdarzenia niosą identyfikator Twojego konta — po to, żeby dało się odpowiedzieć na pytanie „ta sama osoba wciąż trafia na ten sam błąd”. Nie niosą imienia, adresu e-mail ani adresu zamieszkania, ale są powiązane z kontem, a uczciwe słowo na to brzmi „pseudonimowe”, nie „anonimowe”. Napis w aplikacji zostanie poprawiony tak, żeby zgadzał się z tą stroną.

„Karty nigdy nie opuszczają urządzenia” to obietnica o zamiarze plus sufit. Żadne zdarzenie ani zgłoszenie awarii nie jest pomyślane tak, by nieść treść karty, a zamknięta lista powyżej to wszystko, co jest wysyłane. Ale parser, który zakrztusi się źle sformowaną kartą, potrafi zacytować jej fragment we własnym komunikacie błędu. Dlatego każde pole z dowolnym tekstem w zgłoszeniu awarii jest przycinane do 240 znaków przed wysłaniem. To zamienia „cała notatka ląduje w raporcie o błędzie” w „może wylądować fragment” — co jest realną różnicą i czymś mniejszym niż obietnica absolutna. Czytaj to więc tak: treść kart nigdy nie jest wysyłana celowo i nie może zostać wysłana w całości.

Jak to wyłączyć

Ustawienia → Diagnostyka → pierwszy przełącznik. Statystyki przestają być zapisywane w chwili, gdy go przestawisz, a to, co już czeka w kolejce, zostaje na Twoim urządzeniu i nie zostaje wysłane. Zgłaszanie awarii wyłącza się przy następnym uruchomieniu aplikacji, bo instaluje się zanim narysowany zostanie pierwszy ekran.

Diagnostyka działa tylko na komputerze i telefonie. Klient webowy pod /app/ nie zbiera ani awarii, ani statystyk.

Funkcje AI i Twój własny klucz

Czat o karcie, generowanie kart z tekstu i „inne ujęcia” istniejącej karty wysyłają tekst do API Gemini firmy Google. Tym tekstem jest to, czego dana funkcja dotyczy: wklejony fragment albo karta, o którą pytasz. Te funkcje nie robią zupełnie nic, dopóki nie wpiszesz w Ustawieniach własnego klucza API do Gemini, a klucz trzymany jest wyłącznie na Twoim urządzeniu. Jeśli nigdy go nie wpiszesz, aplikacja nie wyśle do Google nic.

To, co Google robi z tym tekstem, regulują warunki Google dla klucza, którego używasz — nie ta strona.

Formularz zaproszenia na stronie głównej

„Poproś o zaproszenie” zapisuje wpisany adres e-mail i nic poza tym — żadnego imienia, żadnego ciasteczka, żadnej analityki wysyłki. Zostanie użyty raz, żeby wysłać Ci zaproszenie. Klucz, którego używa strona, może dopisać wiersz do tej listy i nie może jej odczytać.

Kto to przetwarza i gdzie

Nie ma na tej liście sieci reklamowej, piksela śledzącego, nagrywarki sesji ani brokera danych.

Usuwanie

Karta albo talia — usuń ją w aplikacji. Przy następnej synchronizacji znika też z chmury, a nie tylko przestaje być widoczna.

Konto i wszystko, co się w nim znajduje — nie ma jeszcze przycisku, który zrobi to sam; jest na liście. Zanim powstanie, wystarczy poprosić i zostanie to zrobione ręcznie: konto i każdy przypisany do niego wiersz w bazie, czyli Twoja kolekcja, historia i zdarzenia użycia. Zgłoszenia awarii leżą w osobnym systemie i kasowane są oddzielnie, w ramach tej samej prośby. Napisz na privacy@nodes.cards.

Jedna rzecz, do której usunięcie nie sięga, bo sięgnąć nie może: odduplikowane bajty obrazków opisane wyżej. Mapa z obrazka na Twojej karcie do jego bajtów należy do Ciebie i znika razem z kontem. Same bajty zostają we wspólnym magazynie, już bez odniesienia — leżą pod ścieżką, która jest skrótem samego pliku, więc nie da się do nich dotrzeć, nie mając wcześniej tego pliku, a ich usunięcie zepsułoby każde inne konto, które akurat ma ten sam obrazek.

Usunięcie aplikacji bez usunięcia konta zostawia kopię w chmurze — o to w kopii w chmurze chodzi, i dlatego właśnie istnieje prośba powyżej.

Zmiany

To jest beta i ta strona będzie się z nią zmieniać. Leży w publicznym repozytorium aplikacji, więc każda jej zmiana to datowany, czytelny commit, a nie ciche podmienienie. Data na górze to ta ostatnia.