Ostatnia aktualizacja: 13 września 2026Last updated: September 13, 2026
Kto jest administratorem danychWho is the data controller
Administratorem danych jest Adam Jastrząbek, prowadzący jednoosobową działalność gospodarczą, NIP: PL7292263269. LingBoat to niezależny, jednoosobowy projekt — nie stoi za nim żadna większa firma. Kontakt we wszystkich sprawach związanych z danymi: kontakt@lingboat.com.The data controller is Adam Jastrząbek, operating a sole proprietorship under Polish law, Tax ID (NIP): PL7292263269. LingBoat is an independent, one-person project — no larger company stands behind it. Contact for anything data-related: kontakt@lingboat.com.
Czego dotyczy ta politykaWhat this policy covers
Ta polityka opisuje przetwarzanie danych na stronie lingboat.com (lista startowa) oraz — w przygotowaniu do publikacji — w aplikacji mobilnej LingBoat.This policy describes data processing on the lingboat.com website (waitlist) and — in preparation for release — the LingBoat mobile app.
Strona internetowa: lista startowaThe website: waitlist
Gdy zapisujesz się na listę startową, zbieram Twój adres email. Podstawą przetwarzania jest Twoja dobrowolna zgoda (art. 6 ust. 1 lit. a RODO), wyrażona przez wypełnienie formularza. Jedyny cel: powiadomienie Cię, gdy aplikacja będzie gotowa do pobrania — jeśli w przyszłości opublikuję ją na więcej niż jednej platformie (np. najpierw na iOS, potem ewentualnie na Androida), możesz dostać więcej niż jedną taką wiadomość. Nie wysyłam niczego poza tym i nie przekazuję Twojego adresu nikomu poza wskazanym niżej dostawcą usług email.When you join the waitlist, I collect your email address. The legal basis is your freely given consent (Art. 6(1)(a) GDPR), given by submitting the form. The only purpose: notifying you once the app is ready to download — if I release it on more than one platform in the future (e.g. iOS first, then possibly Android), you may receive more than one such message. I don't send anything beyond that, and I don't share your address with anyone beyond the email provider listed below.
Do wysyłki i przechowywania tych adresów używam Resend, Inc. (USA) jako podprocesora. Dane mogą być przetwarzane poza Europejskim Obszarem Gospodarczym, w oparciu o standardowe klauzule umowne stosowane przez tego dostawcę.I use Resend, Inc. (USA) as a subprocessor to send and store these addresses. Data may be processed outside the European Economic Area, under standard contractual clauses used by that provider.
Możesz w każdej chwili wycofać zgodę i poprosić o usunięcie swojego adresu, pisząc na kontakt@lingboat.com.You can withdraw your consent and request deletion of your address at any time by writing to kontakt@lingboat.com.
Aplikacja mobilnaThe mobile app
LingBoat jest projektowany tak, żeby jak najwięcej danych zostawało na Twoim urządzeniu:LingBoat is designed to keep as much data as possible on your own device:
Historia nauki i postępy przechowywane są wyłącznie lokalnie, w bazie danych na Twoim telefonie. Nie są wysyłane na żaden serwer — nie mam do nich dostępu. Oznacza to też, że dane te nie synchronizują się między urządzeniami: korzystanie z aplikacji na więcej niż jednym urządzeniu jednocześnie (albo zmiana urządzenia) daje niezależne, niepowiązane ze sobą zestawy danych.Learning history and progress are stored locally only, in a database on your phone. They are never sent to any server — I have no access to them. This also means this data is never synchronized across devices: using the app on more than one device at the same time (or switching devices) produces independent, unrelated data sets.
Ręczna kopia zapasowa (eksport/import): możesz wyeksportować swoje dane nauki (karty, postępy, ustawienia) do pliku i samodzielnie przenieść go na inne urządzenie. Zabezpieczenie pliku hasłem jest opcjonalne — bez hasła plik jest zwykłym, czytelnym tekstem możliwym do odczytania przez każdego, kto go zdobędzie; z hasłem jest szyfrowany, a samego hasła nigdzie nie przechowuję i nie mogę go odzyskać, jeśli je zapomnisz. Plik nigdy nie zawiera Twojego klucza API ani danych subskrypcji (patrz kolejny punkt oraz sekcja „Subskrypcje płatne” niżej) — po imporcie na nowym urządzeniu subskrypcję trzeba osobno przywrócić przyciskiem „Przywróć zakupy”. Dla ścieżki bezpłatnej z własnym kluczem (BYOK) plik dodatkowo — niezależnie od tego, czy ustawiłeś hasło — zabezpiecza techniczny licznik liczby kart wygenerowanych w bieżącym okresie rozliczeniowym tej ścieżki, żeby przenoszenie kopii między urządzeniami nie pozwalało obejść jej miesięcznego limitu.Manual backup (export/import): you can export your learning data (cards, progress, settings) to a file and move it to another device yourself. Password-protecting the file is optional — without a password, the file is plain, readable text anyone who gets hold of it could read; with a password, it's encrypted, and I never store or can recover a forgotten password. The file never includes your API key or subscription data (see the next point and the "Paid subscriptions" section below) — after importing on a new device, the subscription must be restored separately via "Restore Purchases". For the free, bring-your-own-key (BYOK) path, the file also separately protects — regardless of whether you set a password — a technical counter of cards generated in that path's current billing period, so moving a backup between devices can't be used to bypass its monthly limit.
Klucze API (jeśli korzystasz z własnego klucza dostawcy AI) przechowywane są w bezpiecznym magazynie systemowym urządzenia (Keychain na iOS) i nigdy nie są synchronizowane z iCloud ani wysyłane przeze mnie gdziekolwiek.API keys (if you use your own AI provider key) are stored in the device's secure system storage (Keychain on iOS) and are never synced to iCloud or sent anywhere by me.
Generowanie kart przez AI: treść zapytań o nowe karty (wybrane tematy, poziom, skrócony kontekst nauki) jest wysyłana do dostawcy AI. W ścieżce bezpłatnej (własny klucz) domyślnie przechodzi po drodze przez mój backend (kod, który sam napisałem, uruchomiony na infrastrukturze mojego podprocesora hostingowego Cloudflare — tego samego, co w planach subskrypcji, zob. sekcja „Subskrypcje płatne” niżej), zanim trafi do wybranego przez Ciebie dostawcy AI (Groq, Anthropic, OpenAI lub Google) — wyłącznie po to, żebym mógł wykrywać nieoczekiwane błędy techniczne aplikacji. Backend nie przechowuje Twojego klucza API ani treści zapytania; przy nieudanej próbie zapisuje wyłącznie ogólną informację techniczną (nazwę dostawcy, status odpowiedzi lub ogólny komunikat błędu), o której mogę też dostać powiadomienie mailem. To pośredniczenie mogę w każdej chwili wyłączyć zdalnie, bez aktualizacji aplikacji; nawet gdy jest aktywne, nie zmienia ono, który dostawca faktycznie przetwarza Twoje zapytanie — dodaje wyłącznie krok diagnostyczny po drodze, a samo zapytanie nadal podlega polityce prywatności wybranego przez Ciebie dostawcy AI. W planach subskrypcji backend pośredniczy zawsze (nie tylko diagnostycznie), bo to on wybiera właściwego dostawcę AI (Groq lub Google) w zależności od planu.AI card generation: the content of requests for new cards (chosen topics, level, a shortened learning context) is sent to an AI provider. On the free path (your own key), by default it passes through my backend along the way (code I wrote myself, running on the infrastructure of my hosting subprocessor Cloudflare — the same one used for subscription plans, see the "Paid subscriptions" section below) before reaching the AI provider you chose (Groq, Anthropic, OpenAI, or Google) — solely so I can detect unexpected technical errors in the app. The backend does not store your API key or the content of your request; on a failed attempt it only logs generic technical information (provider name, response status, or a generic error message), which may also trigger an email notification to me. I can disable this pass-through remotely at any time, without an app update; even when active, it does not change which provider actually processes your request — it only adds a diagnostic step along the way, and the request itself remains subject to the privacy policy of the AI provider you chose. On subscription plans, the backend always acts as an intermediary (not just diagnostically), since it's the one selecting the right AI provider (Groq or Google) based on your plan.
Obrazki do kart słówek: samo słowo (bez żadnych danych osobowych) jest wysyłane do Pixabay w celu pobrania powiązanego zdjęcia.Word card images: the word itself (no personal data) is sent to Pixabay to fetch a related image.
Raportowanie awarii i błędów technicznych (Sentry): jeśli w aplikacji wystąpi awaria albo nieoczekiwany błąd techniczny (np. niesparsowalna odpowiedź od dostawcy AI), automatycznie wysyłam zgłoszenie do Sentry (Functional Software, Inc., USA), mojego podprocesora — dane przetwarzane są jednak w Unii Europejskiej (region Frankfurt). Zgłoszenie zawiera: rodzaj błędu, ślad stosu (stack trace), model i wersję systemu telefonu oraz — dla błędów przy generowaniu kart — nazwę wybranego dostawcy AI. Nigdy nie zawiera treści Twoich kart, klucza API ani historii nauki. To narzędzie zbiera wyłącznie informacje o awariach technicznych — nie śledzi, jak korzystasz z aplikacji.Crash and technical-error reporting (Sentry): if the app experiences a crash or an unexpected technical error (e.g. an unparseable response from an AI provider), I automatically send a report to Sentry (Functional Software, Inc., USA), my subprocessor — data is processed within the European Union (Frankfurt region). The report includes: the error type, a stack trace, your phone's device model and OS version, and — for errors during card generation — the name of the AI provider you selected. It never includes the content of your cards, your API key, or your learning history. This tool collects only technical crash information — it does not track how you use the app.
Liczba wygenerowanych kart (ścieżka bezpłatna): gdy pośredniczenie diagnostyczne opisane wyżej jest aktywne, po każdym udanym wygenerowaniu kart wysyłam do mojego backendu samą liczbę zapisanych kart razem z jednokierunkowym skrótem kryptograficznym (SHA-256) Twojego klucza API — nigdy samego klucza, a skrótu nie da się z powrotem odwrócić do klucza. Zliczam to jako: łączną liczbę dla wszystkich użytkowników ścieżki bezpłatnej razem, oraz osobny licznik przypisany do skrótu Twojego klucza, żebym mógł orientacyjnie ocenić, jak intensywnie korzystają poszczególni użytkownicy. Nie mam jednak żadnej praktycznej możliwości ustalenia, kim jesteś — nigdy nie zbieram od Ciebie imienia, adresu email ani żadnych innych danych, z którymi dałoby się ten skrót powiązać.Number of cards generated (free path): while the diagnostic pass-through described above is active, after each successful card generation I send my backend just the number of cards saved, along with a one-way cryptographic hash (SHA-256) of your API key — never the key itself, and the hash cannot be reversed back into it. I count this as: a combined total across all free-path users, and a separate counter tied to your key's hash, so I can gauge how heavily individual users are using the app. I have no practical way to determine who you are — I never collect your name, email address, or anything else that could be linked to that hash.
Poza raportowaniem awarii i liczbą wygenerowanych kart opisanymi wyżej, aplikacja nie zawiera żadnych narzędzi śledzących szczegóły Twojego zachowania (np. jakich słów się uczysz, kiedy z aplikacji korzystasz). Nie wymaga zakładania konta ani logowania.Beyond the crash reporting and card-count tracking described above, the app contains no tools tracking the details of your behavior (e.g. which words you're learning, when you use the app). It doesn't require creating an account or logging in.
Subskrypcje płatnePaid subscriptions
Jeśli wykupisz plan subskrypcji, sam zakup i dane płatności obsługuje bezpośrednio Apple (App Store) — nigdy nie mam do nich dostępu.If you purchase a subscription plan, the purchase and payment details are handled directly by Apple (the App Store) — I never have access to them.
Weryfikację, czy Twoja subskrypcja jest aktywna, obsługuje RevenueCat, Inc. (USA), działający jako mój podprocesor. Identyfikuje Cię wyłącznie anonimowym identyfikatorem generowanym automatycznie przez RevenueCat — nie Twoim imieniem, nazwiskiem ani adresem email. Dane mogą być przetwarzane poza Europejskim Obszarem Gospodarczym, w oparciu o standardowe klauzule umowne stosowane przez tego dostawcę.Verifying whether your subscription is active is handled by RevenueCat, Inc. (USA), acting as my subprocessor. It identifies you only by an anonymous identifier generated automatically by RevenueCat — not by your name or email address. Data may be processed outside the European Economic Area, under standard contractual clauses used by that provider.
Logikę subskrypcji i limitów obsługuje mój własny kod (backend), który — ponieważ jako niezależny deweloper nie utrzymuję własnych serwerów — działa na infrastrukturze Cloudflare, Inc. (USA, usługa Cloudflare Workers), mojego podprocesora hostingowego. Ten backend odpytuje RevenueCat o status Twojej subskrypcji i przechowuje w bazie danych Cloudflare: ten anonimowy identyfikator, aktywny plan, datę rozpoczęcia bieżącego okresu rozliczeniowego oraz licznik wygenerowanych kart — wyłącznie po to, żeby wyegzekwować miesięczny limit kart przypisany do Twojego planu. Token sesji wygasa po 48 godzinach; licznik zużycia kart wygasa automatycznie po ok. 40 dniach. Dane mogą być przetwarzane poza Europejskim Obszarem Gospodarczym, w oparciu o standardowe klauzule umowne stosowane przez tego dostawcę.The subscription and quota logic runs on my own code (backend) which — since as an independent developer I don't maintain my own servers — runs on the infrastructure of Cloudflare, Inc. (USA, the Cloudflare Workers service), my hosting subprocessor. This backend queries RevenueCat for your subscription status and stores in Cloudflare's database: that anonymous identifier, your active plan, the start date of your current billing period, and a counter of generated cards — solely to enforce your plan's monthly card limit. The session token expires after 48 hours; the card-usage counter expires automatically after roughly 40 days. Data may be processed outside the European Economic Area, under standard contractual clauses used by that provider.
Twoje prawaYour rights
Zgodnie z RODO masz prawo do: dostępu do swoich danych, ich sprostowania, usunięcia, ograniczenia przetwarzania, przenoszenia danych, wniesienia sprzeciwu oraz wycofania zgody w dowolnym momencie. Masz też prawo wniesienia skargi do Prezesa Urzędu Ochrony Danych Osobowych (UODO). W sprawie realizacji tych praw napisz na kontakt@lingboat.com.Under GDPR you have the right to: access your data, have it corrected, deleted, have its processing restricted, receive a copy in a portable format, object to processing, and withdraw consent at any time. You also have the right to lodge a complaint with the Polish data protection authority (UODO). To exercise these rights, write to kontakt@lingboat.com.
Zmiany tej politykiChanges to this policy
Ta polityka może być aktualizowana w miarę rozwoju strony i aplikacji — data ostatniej zmiany widnieje na górze strony. W razie rozbieżności między wersją polską a angielską, wersją rozstrzygającą jest wersja polska.This policy may be updated as the website and app evolve — the date of the last change is shown at the top of the page. In case of any discrepancy between the Polish and English versions, the Polish version prevails.