Zuzdmi Studio

Polityka prywatnościPrivacy Policy

1. Zakres i administrator

Ta polityka dotyczy aplikacji Zuzdmi Studio, w tym konta, logowania, profilu treningowego, planera, filmów treningowych, płatności, eksportów PDF, funkcji playlist YouTube, telemetrii technicznej i wsparcia użytkownika. Nie dotyczy osobnych stron ani usług dostawców, takich jak Stripe, Google, YouTube, Supabase, Vercel, Resend, GitHub Actions lub zewnętrzna usługa renderowania PDF.

Administratorem danych jest Zuzanna Dmitruk prowadząca działalność gospodarczą pod firmą zuzdmi Zuzanna Dmitruk, ul. Zabielska 30C, 03-985 Warszawa, Polska, NIP: 9522246839, REGON: 526603688. Kontakt w sprawach prywatności i wsparcia: app.zuzdmi.admin@gmail.com.

Administrator nie wyznaczył Inspektora Ochrony Danych. Aplikacja jest kierowana głównie do użytkowników w Polsce oraz użytkowników polsko- i anglojęzycznych.

Zuzdmi Studio nie jest kierowane do osób poniżej 16 lat. Konto może utworzyć wyłącznie osoba, która ukończyła 16 lat. Nie prosimy osób młodszych o zakładanie konta ani podawanie danych. Jeżeli dowiemy się, że konto lub dane utworzyła osoba poniżej dozwolonego wieku, skontaktujemy się w sprawie bezpiecznego rozwiązania sytuacji i zastosujemy obowiązujące prawo.

2. Jakie dane przetwarzamy

Przetwarzamy dane potrzebne do działania aplikacji i funkcji, z których korzystasz. Obejmuje to w szczególności:

  • dane konta i logowania, takie jak adres e-mail, potwierdzenie konta, reset hasła i informacje potrzebne do ochrony sesji;
  • minimalny dowód decyzji dotyczącej Warunków korzystania: rodzaj dokumentu, wersja i skrót SHA-256, akceptacja albo odmowa, data decyzji, źródło przepływu i wyświetlony język. Nie zapisujemy w tym dowodzie adresu IP ani odcisku urządzenia;
  • ustawienia wiadomości e-mail w dwóch grupach: „Konto i treningi”, w tym dobrowolny wybór powiadomienia o gotowym planie, oraz niezależny wybór „Nowości i oferty”;
  • minimalny dowód decyzji dotyczącej „Nowości i ofert”: status tak, nie albo wypisano, wersja i skrót SHA-256 wyświetlonej informacji, język, źródło i czas decyzji. Nie zapisujemy w tym dowodzie adresu IP, odcisku urządzenia ani danych treningowych;
  • dane profilu treningowego i preferencje, takie jak wiek, wzrost, waga, język, poziom zaawansowania, cele, dostępny sprzęt, częstotliwość treningów i ustawienia planu;
  • plany treningowe i dane o aktywności, w tym postępy, wykonane treningi, zmiany planu i informacje widoczne w dashboardzie;
  • dane potrzebne do przygotowania planu na przyszły tydzień, takie jak aktualna wersja preferencji, stan zadania i wynik generowania;
  • dane płatności i subskrypcji potrzebne do obsługi Premium, w tym rabaty, okres próbny i status rozliczeń. Stripe obsługuje dane karty, a aplikacja otrzymuje informacje potrzebne do potwierdzenia subskrypcji. Aby zapobiegać ponownemu wykorzystaniu jednorazowego okresu próbnego, przechowujemy pseudonimowy identyfikator utworzony na podstawie adresu e-mail. Rejestr nie zawiera samego adresu e-mail;
  • dane techniczne, bezpieczeństwa i wsparcia, takie jak logi aplikacji, czas i wynik żądania, adres IP, błędy, zabezpieczenia przed nadużyciami i — po wyrażeniu zgody — pomiary wydajności;
  • zminimalizowane dane obsługi wiadomości e-mail, takie jak rodzaj i język wiadomości, stan i czas próby, techniczny identyfikator dostawcy albo zamknięty kod błędu. Wiadomość o gotowym planie zapisuje w kolejce tylko datę początku tygodnia; podczas wysyłki może dołączyć publiczną, lokalnie przechowywaną miniaturę najbardziej polubionego treningu z pierwszego dnia planu oraz bezpieczny odnośnik do tego treningu. Tego wyboru treningu i odnośnika nie zapisujemy w kolejce. Wiadomości rozliczeniowe zawierają tylko niezbędną datę lub informację o wymaganym działaniu, a wiadomość marketingowa wyłącznie losowy odnośnik rezygnacji, którego skrót zapisujemy oddzielnie; nie zapisujemy w kolejce szczegółów treningu, danych karty ani surowego błędu dostawcy;
  • zminimalizowane informacje o działaniu funkcji, na przykład czy żądana operacja rozpoczęła się i zakończyła powodzeniem lub błędem. Są powiązane z pseudonimowym kluczem konta i nie obejmują adresu e-mail, odpowiedzi profilu, treści planu lub PDF, danych filmu ani surowego komunikatu błędu;
  • po opcjonalnej zgodzie na analitykę: ogólne informacje o urządzeniu, wydajności oraz użyciu głównych funkcji i odtwarzacza. Nie zapisujemy adresu, tytułu ani identyfikatora filmu, dokładnej pozycji, czasu oglądania ani szczegółowej historii interakcji;
  • dane używane w prywatnym dashboardzie właściciela i wewnętrznych raportach Microsoft Power BI, takie jak etapy konta i onboardingu, zagregowana aktywność, zgody, treningi, subskrypcje, rabaty i rozliczenia. Raporty korzystają z jednej zarządzanej populacji, wykluczają konta testowe, operatorskie i wskazane kody promocyjne oraz są dostępne tylko dla upoważnionych osób;
  • dane YouTube tylko wtedy, gdy korzystasz z opcjonalnych funkcji YouTube, czyli klikasz Play dla konkretnego osadzonego filmu albo rozpoczynasz tworzenie playlisty przez OAuth;
  • dane potrzebne do wygenerowania PDF z planem treningowym, takie jak tydzień planu, treningi, dni treningowe, linki i miniatury filmów oraz status ukończenia.

3. Cele, podstawy prawne i obowiązkowość danych

Dane konta, logowania, profilu i planu wykorzystujemy w zakresie niezbędnym do utworzenia konta, wykonania umowy, przygotowania wybranych funkcji i obsługi Premium (art. 6 ust. 1 lit. b RODO). Dane rozliczeniowe i dokumenty wymagane prawem przetwarzamy w celu wykonania obowiązków prawnych, w szczególności podatkowych i rachunkowych (art. 6 ust. 1 lit. c RODO). Niezbędne logi bezpieczeństwa, zapobieganie nadużyciom, diagnostyka, dochodzenie i obrona roszczeń oraz ograniczone raportowanie operacyjne opieramy na naszych prawnie uzasadnionych interesach (art. 6 ust. 1 lit. f RODO), po sprawdzeniu niezbędności i równowagi praw użytkownika. Opcjonalne pomiary analityczne uruchamiamy dopiero po zgodzie (art. 6 ust. 1 lit. a RODO), którą można wycofać równie łatwo, jak została udzielona.

Wiadomości niezbędne do bezpieczeństwa konta, realizacji subskrypcji, okresu próbnego, płatności, zaplanowanego anulowania i zakończenia dostępu wysyłamy w zakresie koniecznym do wykonania umowy, obowiązku prawnego albo ochrony naszego uzasadnionego interesu i praw użytkownika. Opcjonalną wiadomość o gotowym planie wysyłamy wyłącznie po odrębnej zgodzie (art. 6 ust. 1 lit. a RODO). Jej wycofanie nie ogranicza konta ani Premium i nie wyłącza wiadomości niezbędnych do obsługi usługi.

Opcjonalne wiadomości „Nowości i oferty” wysyłamy wyłącznie po dobrowolnej, jednoznacznej zgodzie na marketing e-mailowy (art. 6 ust. 1 lit. a RODO oraz właściwe przepisy Prawa komunikacji elektronicznej). Brak wyboru, odmowa i rezygnacja oznaczają brak wysyłki. Zgoda nie jest warunkiem rejestracji, konta, planu ani Premium i jest niezależna od Regulaminu, cookies oraz powiadomienia o gotowym planie.

Podanie adresu e-mail i danych uwierzytelniających jest potrzebne do konta. Konkretny zakres profilu i preferencji jest potrzebny tylko do funkcji, która go używa. Płatność jest potrzebna do Premium. YouTube OAuth, odtwarzanie YouTube, eksport PDF i opcjonalna analityka nie są warunkiem podstawowego działania konta. Nie uzależniamy wykonania umowy od zgody na przetwarzanie, które nie jest do niej niezbędne. Dowód decyzji dotyczącej Warunków korzystania przetwarzamy w celu zawarcia i wykonania umowy oraz ustalenia, dochodzenia lub obrony roszczeń (art. 6 ust. 1 lit. b i f RODO).

Prywatny dashboard właściciela i wewnętrzne raportowanie w Microsoft Power BI służą analizie działania, wykorzystania i jakości usługi oraz jej ulepszaniu. Jest prowadzone w ramach uzasadnionego interesu Administratora, z dostępem ograniczonym do upoważnionych osób i zatwierdzonych widoków analitycznych.

4. Cookies, storage i zgody

Aplikacja używa niezbędnych cookies i pamięci przeglądarki do logowania, bezpieczeństwa, utrzymania sesji Supabase, zapamiętania języka, zapisania wyborów zgody, resetu hasła, dokończenia onboardingu i obsługi żądanych przepływów aplikacji. Te mechanizmy działają bez osobnej zgody, ponieważ są potrzebne do świadczenia usługi albo do zapamiętania Twoich wyborów.

W pamięci przeglądarki zapisujemy między innymi wybrany język, decyzję o opcjonalnej analityce, krótkotrwały stan resetu hasła i niedokończone ustawienia profilu. Po zgodzie możemy też zapisać krótkotrwałe dane potrzebne do pomiaru przejścia między ekranami i wydajności w bieżącej sesji.

Wybór wyglądu „Klasyczny” albo „Studio” zapisujemy wyłącznie na tym urządzeniu w niezbędnym cookie i lokalnej pamięci przeglądarki. Wartość ogranicza się do nazwy motywu, nie jest zapisywana w profilu ani wysyłana do API i można ją zmienić natychmiast w menu aplikacji.

Opcjonalna analityka i wydajność, w tym Vercel Speed Insights, Web Vitals, raportowanie pomiarów nawigacji oraz ograniczone pomiary głównych przycisków i odtwarzacza, są włączane dopiero po zgodzie na analitykę. Miniatury treningów są plikami aplikacji przechowywanymi w Supabase Storage. Ich wyświetlenie nie łączy przeglądarki z YouTube.

Przed kliknięciem Play aplikacja nie ładuje odtwarzacza ani zasobów YouTube. Kliknięcie Play dla konkretnego treningu ładuje osadzony odtwarzacz z youtube-nocookie.com i uruchamia film automatycznie. Od tego momentu YouTube może otrzymać dane techniczne żądania i używać własnych mechanizmów zgodnie ze swoją polityką. Przejście do innego treningu wyłącza odtwarzacz; kolejny film wymaga osobnego kliknięcia Play.

Wybór dotyczący opcjonalnej analityki możesz zmienić z menu aplikacji albo na ekranie logowania. Oba miejsca otwierają ten sam panel zgód bez przekierowania na inną stronę.

Po zalogowaniu zapisujemy na serwerze Twój aktualny wybór analityki, wersję zgody i datę jej zmiany. Opcjonalne pomiary ograniczamy do ogólnych informacji o urządzeniu, wydajności, użyciu głównych funkcji i odtwarzacza. Cofnięcie zgody zatrzymuje nowe pomiary, a starszy zapis nie może jej ponownie włączyć. Nie zapisujemy adresu, tytułu ani identyfikatora filmu, dokładnej pozycji, czasu oglądania ani szczegółowej historii odtwarzania.

Niezbędne informacje operacyjne pokazują, czy żądana funkcja rozpoczęła się i jaki miała wynik. Pomagają diagnozować błędy i chronić usługę. Odpowiedź serwera nie potwierdza, że ekran został wyświetlony, treść przeczytana ani film odtworzony. Historia użycia jest powiązana z pseudonimowym kluczem konta i nadal stanowi dane osobowe. Przy usunięciu konta usuwamy tę historię oraz mapowanie klucza. Dane rozliczeniowe mają odrębne zasady przechowywania opisane poniżej.

Microsoft Power BI jest używany do wewnętrznego raportowania poza przeglądarką użytkownika. Nie ładuje kodu ani nie ustawia cookies w aplikacji. Zgoda na opcjonalną analitykę opisana powyżej steruje narzędziami wydajnościowymi i opcjonalnymi pomiarami użycia, a nie dostępem do wewnętrznych raportów operacyjnych.

Cykliczne przygotowanie planu na przyszły tydzień odbywa się po stronie serwera i nie dodaje cookies, pamięci przeglądarki ani nowej kategorii zgody.

W ustawieniach „Powiadomienia” grupa „Konto i treningi” pokazuje wiadomości niezbędne do obsługi usługi oraz jeden osobny przełącznik wiadomości o gotowym planie. Przełącznik jest domyślnie wyłączony, nie obejmuje marketingu i można go w każdej chwili wyłączyć w tym samym miejscu.

Druga i jedyna pozostała grupa, „Nowości i oferty”, zawiera jeden dobrowolny przełącznik marketingowych wiadomości e-mail. Jest wyłączony przy braku decyzji, nie jest włączany dla obecnych użytkowników i nie wpływa na usługę. Osoby, o których wiemy, że nie ukończyły 18 lat, nie są objęte tym kanałem.

Wiadomość o planie na kolejny tydzień jest planowana na niedzielę o 18:00 czasu Europe/Warsaw. Gdy kompletny plan zostanie opublikowany później, wiadomość jest wysyłana w najbliższym przebiegu między 08:00 a 21:00 albo odkładana do 08:00. Zadanie odzyskujące kolejkę działa co 15 minut.

Kwalifikację do „Nowości i ofert” wykonujemy około południa czasu Europe/Warsaw. Przypomnienie o rozpoczętym checkout może zostać wysłane najwcześniej po 24 godzinach. Wiadomość zachęcająca do powrotu wymaga co najmniej 30 dni od zgody oraz braku ukończonego treningu w ostatnich 30 dniach. Obowiązuje limit dwóch wiadomości marketingowych w ruchomych 30 dniach, w tym najwyżej jednego przypomnienia o checkout. Nie wysyłamy automatycznej wiadomości powitalnej po wyrażeniu zgody marketingowej.

5. Dostawcy i odbiorcy danych

Korzystamy z dostawców technologicznych tylko w zakresie potrzebnym do działania aplikacji i wybranych funkcji:

  • Supabase: logowanie, sesje, baza danych, dane konta, wiadomości auth oraz przechowywanie lokalnych miniatur treningów. Region właścicielsko potwierdzony: Europa / Hamburg.
  • Resend: dostawca wiadomości e-mail używany do wiadomości auth, zatwierdzonych wiadomości obsługowych oraz — wyłącznie po zgodzie — „Nowości i ofert”. Otrzymuje adres odbiorcy, język, treść wiadomości, odpowiedni odnośnik, a w wiadomości o gotowym planie może otrzymać publiczny adres lokalnej miniatury i bezpieczny odnośnik do wybranego treningu; otrzymuje też techniczne dane dostarczenia, ale nie dane karty ani surowe błędy rozliczeniowe.
  • Vercel: hosting aplikacji, logi platformy i opcjonalny pomiar wydajności po zgodzie. Region właścicielsko potwierdzony: Europa / Hamburg.
  • GitHub Actions: chronione, cykliczne przygotowanie planów na przyszły tydzień. Zadanie przetwarza identyfikatory użytkowników, bieżące preferencje i ich rewizje oraz zapisuje wygenerowane plany w Supabase; raport operacyjny zawiera agregaty, a przy błędach tylko skróty identyfikatorów.
  • Railway: wybrany dostawca zewnętrznej usługi renderowania PDF. Gdy usługa jest skonfigurowana, otrzymuje ustrukturyzowane dane planu potrzebne do utworzenia pliku na żądanie użytkownika.
  • Stripe: checkout, portal płatności, subskrypcje, status rozliczeń i webhooki.
  • Microsoft Power BI: wewnętrzna analiza i raportowanie operacyjne na podstawie zatwierdzonych widoków analitycznych bazy danych. Dostęp ma dedykowane konto tylko do odczytu i upoważnione osoby; dane nie są udostępniane przez ten mechanizm anonimowym ani zwykłym uwierzytelnionym użytkownikom aplikacji.
  • Google / YouTube: opcjonalne odtwarzanie filmu dopiero po kliknięciu Play dla danego treningu oraz opcjonalne tworzenie playlisty po rozpoczęciu OAuth. Samo wyświetlenie lokalnej miniatury nie wysyła żądania do YouTube.

6. Google API Services i YouTube OAuth

Funkcja tworzenia playlisty YouTube jest opcjonalna. Aplikacja prosi o dostęp do zakresu Google API Services https://www.googleapis.com/auth/youtube.force-ssl tylko wtedy, gdy samodzielnie rozpoczniesz tworzenie playlisty.

Ten zakres może technicznie obejmować szerokie uprawnienia do konta YouTube, ale Zuzdmi używa go tylko do utworzenia playlisty i dodania do niej wybranych filmów treningowych oraz sprawdzenia kompletności i kolejności elementów playlisty. Playlisty tworzone przez aplikację są domyślnie niepubliczne („unlisted”). W związku z tym przepływem aplikacja przetwarza identyfikator utworzonej playlisty, identyfikatory wybranych filmów i elementów playlisty oraz wynik i diagnostykę operacji.

Dane użytkownika Google nie są sprzedawane, wynajmowane ani ujawniane reklamodawcom, brokerom danych lub innym niepowiązanym podmiotom. Są przekazywane do Google/YouTube wyłącznie w celu wykonania operacji na playliście zleconej przez użytkownika. W zakresie technicznie niezbędnym do działania i zabezpieczenia aplikacji dane związane z tą funkcją mogą być przetwarzane przez Vercel jako dostawcę hostingu oraz Supabase jako dostawcę bazy danych i infrastruktury aplikacji. Dostawcy ci działają na rzecz Administratora i nie mogą wykorzystywać danych do własnych, niezwiązanych celów.

Aplikacja nie używa dostępu Google do czytania prywatnych filmów, usuwania treści, zarządzania komentarzami, reklam, profilowania reklamowego, sprzedaży danych Google/YouTube, szkolenia modeli AI ani celów niezwiązanych z funkcją playlisty. Możesz nie korzystać z tej funkcji, usunąć utworzoną playlistę na swoim koncie YouTube, usunąć konto w aplikacji albo cofnąć dostęp aplikacji w ustawieniach konta Google.

Kody autoryzacyjne OAuth i tokeny dostępu Google są przesyłane przez szyfrowane połączenia HTTPS i przetwarzane wyłącznie po stronie serwera. Nie są zapisywane w pamięci przeglądarki ani w bazie danych. Aplikacja żąda dostępu online, nie żąda dostępu offline i nie przechowuje tokenów odświeżania Google. Token dostępu jest używany tylko do ukończenia rozpoczętej przez użytkownika operacji na playliście.

Poufność danych Google chronimy przez ograniczenie dostępu do autoryzowanego personelu i niezbędnych systemów, przechowywanie sekretów w chronionej konfiguracji serwerowej, walidację losowego stanu OAuth, bezpieczne ustawienia cookies przepływu oraz minimalizację zapisywanych danych. Przechowywana diagnostyka może zawierać identyfikatory filmów, playlisty i elementów playlisty oraz statusy operacji, ale nie zawiera tokenów dostępu ani tokenów odświeżania Google.

Użycie i przekazywanie przez aplikację informacji otrzymanych z Google API Services jest zgodne z Google API Services User Data Policy, w tym z wymaganiami Limited Use, w zakresie zastosowania do tej funkcji.

Sposób przetwarzania danych przez Google opisuje Polityka prywatności Google. Korzystanie z YouTube podlega także Warunkom korzystania z YouTube.

7. Transfer poza EOG

W związku z korzystaniem z dostawców technologicznych, w szczególności Supabase, Resend, Vercel, GitHub Actions, Stripe, Microsoft Power BI, Google/YouTube, Railway jako dostawcy usługi renderowania PDF oraz ich podwykonawców, dane osobowe mogą być przekazywane poza Europejski Obszar Gospodarczy. W takich przypadkach dostawcy stosują odpowiednie mechanizmy prawne, w szczególności standardowe klauzule umowne, decyzje stwierdzające odpowiedni stopień ochrony lub inne środki przewidziane przez RODO.

8. Automatyczna personalizacja planu

Aplikacja może automatycznie personalizować plan treningowy na podstawie informacji podanych przez Ciebie, takich jak preferencje, poziom zaawansowania, cele, dostępny sprzęt, częstotliwość treningów lub inne ustawienia aplikacji. Personalizacja służy wyłącznie dostosowaniu treści i funkcji aplikacji. Administrator nie podejmuje wobec Ciebie decyzji opartych wyłącznie na zautomatyzowanym przetwarzaniu, które wywoływałyby skutki prawne lub w podobny sposób istotnie na Ciebie wpływały.

9. Dane medyczne i szczególne kategorie danych

Zuzdmi Studio nie jest usługą medyczną i nie prosi o diagnozy, leczenie, dokumentację medyczną, kontuzje, niepełnosprawność ani inne informacje medyczne. Nie wpisuj takich informacji do zwykłych pól lub wiadomości w Aplikacji.

Wiek, płeć, wzrost, waga, cel, preferencje, aktywność i postęp wykorzystujemy w opisanym w tej Polityce celu prowadzenia konta, personalizacji ogólnego planu aktywności i prezentowania postępu. Aplikacja nie wykorzystuje tych danych do diagnozy, leczenia, profilaktyki zdrowotnej ani tworzenia wniosków medycznych i nie wymaga podawania informacji medycznych.

Zanim dodamy funkcję wymagającą informacji o zdrowiu lub zmienimy cel użycia danych w sposób, który kwalifikuje je jako dane dotyczące zdrowia, wykonamy odrębną ocenę, zaktualizujemy informacje o prywatności i zastosujemy właściwą przesłankę z art. 9 ust. 2 RODO. Jeżeli właściwa będzie wyraźna zgoda, będzie ona oddzielona od Regulaminu, dobrowolna, ograniczona do wskazanego celu i możliwa do wycofania. Do tego czasu nie zbieramy takich informacji ani nie uruchamiamy takiego celu.

10. Retencja i usuwanie danych

Dane konta, profilu treningowego, planów i postępów przechowujemy przez czas aktywności konta. Po usunięciu konta usuwamy zewnętrzną tożsamość logowania, blokujemy dostęp i zastępujemy adres e-mail technicznym oznaczeniem usuniętego konta. Pozostałe dane profilu, planów i postępów mogą pozostać pod pseudonimowym identyfikatorem wyłącznie w zakresie potrzebnym do rozliczeń, bezpieczeństwa, obowiązków prawnych, ustalenia, dochodzenia lub obrony roszczeń. Okresy dla tych danych wymagają jeszcze końcowego przeglądu retencji.

Po usunięciu konta warstwa dashboardowa może zachować pseudonimowy klucz historii, zagregowane fakty i bezosobową przyczynę wykluczenia. Nie zachowuje w tej warstwie adresu e-mail, identyfikatora klienta Stripe ani innego bezpośredniego identyfikatora. Jest to nadal historia pseudonimowa, a nie deklaracja anonimowości.

Aby zapobiegać ponownemu wykorzystaniu jednorazowego okresu próbnego, po usunięciu konta możemy zachować pseudonimowy identyfikator utworzony na podstawie adresu e-mail. Rejestr nie zawiera samego adresu e-mail, identyfikatora konta ani identyfikatora Stripe. Identyfikator jest daną pseudonimową, a nie anonimową. Przechowujemy go tylko tak długo, jak jest potrzebny do egzekwowania zasady jednego okresu próbnego na adres e-mail, i nie dłużej niż przez czas oferowania tej promocji.

Minimalny dowód akceptacji albo odmowy Warunków korzystania przechowujemy podczas aktywności konta, a po jego usunięciu tylko w zakresie i przez czas niezbędny do wykonania obowiązku prawnego albo ustalenia, dochodzenia lub obrony roszczeń. Nie używamy tego dowodu jako zgody marketingowej.

Dane płatności, faktur, rozliczeń, reklamacji oraz dokumentacji podatkowo-księgowej przechowujemy przez okres wymagany prawem, co do zasady przez 5 lat liczonych od końca roku kalendarzowego, w którym upłynął termin płatności podatku, chyba że dłuższe przechowywanie jest wymagane lub uzasadnione prawem.

Surowe zdarzenia techniczne, przepływu, wydajności, bezpieczeństwa i historii zmian są oznaczane datą wygaśnięcia, co do zasady 12 miesięcy od zdarzenia lub zakończenia sprawy technicznej. Po tej dacie kwalifikują się do usunięcia w kontrolowanym procesie; samo osiągnięcie daty nie powoduje automatycznego usunięcia. Dłuższe zachowanie jest dopuszczalne przy uzasadnionym incydencie, sporze, obowiązku prawnym lub dochodzeniu roszczeń. Stan oczekujący OAuth YouTube jest krótkotrwały i służy dokończeniu rozpoczętego przepływu. Raport cyklicznego generowania planów zawiera agregaty i skróty identyfikatorów błędów oraz podlega tym samym zasadom retencji danych technicznych.

Ustawienie wiadomości o gotowym planie przechowujemy podczas aktywności konta. Rekord kolejki wiadomości pozostaje do czasu dostarczenia, wyczerpania ograniczonej liczby prób albo anulowania przez późniejsze zdarzenie. Zminimalizowany zapis wyniku dostarczenia może następnie pozostać podczas aktywności konta w celu zapobiegania duplikatom i diagnozowania dostarczenia. Usunięcie konta usuwa również powiązane ustawienie i rekordy tej kolejki.

Aktualny wybór „Nowości i oferty” i historię decyzji przechowujemy podczas aktywności konta, aby stosować wybór i wykazać jego źródło. Losowe odnośniki rezygnacji zapisujemy w kolejce prywatnej, a oddzielnie przechowujemy tylko ich skróty. Informacja o rezygnacji lub technicznym zablokowaniu adresu zatrzymuje marketing, ale nie wiadomości obsługowe. Usunięcie konta usuwa te ustawienia, dowody, odnośniki, blokady oraz powiązane rekordy kolejki.

PDF z planem treningowym jest generowany na Twoje żądanie i zwracany jako plik do pobrania. Aplikacja nie używa PDF jako stałego magazynu danych; powiązane logi i diagnostyka podlegają zasadom retencji dla danych technicznych.

11. Prawa użytkownika, kontakt i skarga

Możesz żądać dostępu do danych, sprostowania, usunięcia, ograniczenia przetwarzania, przeniesienia danych, sprzeciwu wobec przetwarzania oraz cofnięcia zgody tam, gdzie przetwarzanie opiera się na zgodzie. Cofnięcie zgody nie wpływa na zgodność z prawem przetwarzania przed jej cofnięciem.

Możesz wylogować się, zarządzać płatnościami przez Stripe, usunąć konto z menu aplikacji oraz zmienić zgodę na opcjonalną analitykę lub ustawienie wiadomości o gotowym planie w aplikacji. Zgodę na „Nowości i oferty” możesz zmienić w tych samych ustawieniach albo wycofać bez logowania przez odnośnik i jawne potwierdzenie w każdej takiej wiadomości. W sprawach prywatności napisz na app.zuzdmi.admin@gmail.com. Możesz też złożyć skargę do Prezesa Urzędu Ochrony Danych Osobowych.

Odpowiemy na żądanie bez zbędnej zwłoki, co do zasady w ciągu miesiąca od otrzymania. Jeżeli jest to niezbędne, poprosimy tylko o informacje potrzebne do potwierdzenia tożsamości. O przedłużeniu terminu, odmowie albo opłacie w wyjątkowej sytuacji poinformujemy wraz z przyczyną i pouczeniem o prawach. Skargę można wnieść do Prezesa Urzędu Ochrony Danych Osobowych: https://uodo.gov.pl/.

12. Zmiany Polityki

Aktualizujemy Politykę, gdy zmienia się sposób przetwarzania, Aplikacja, dostawca albo prawo. Każda opublikowana wersja otrzyma numer oraz datę publikacji i obowiązywania, a jej treść zachowamy wewnętrznie do celów dowodowych. O istotnej zmianie celu, podstawy, kategorii danych, odbiorców, retencji lub praw poinformujemy odpowiednio wcześniej w Aplikacji lub pocztą elektroniczną i wskażemy najważniejsze różnice. Jeżeli zmiana wymaga nowej zgody, poprosimy o nią osobno; dalsze używanie Aplikacji nie zastąpi zgody.

1. Scope and controller

This policy applies to the Zuzdmi Studio application, including the account, sign-in, training profile, planner, training videos, payments, PDF exports, YouTube playlist features, technical telemetry, and user support. It does not cover separate provider websites or services, such as Stripe, Google, YouTube, Supabase, Vercel, Resend, GitHub Actions, or an external PDF rendering service.

The controller is Zuzanna Dmitruk conducting business under the name zuzdmi Zuzanna Dmitruk, ul. Zabielska 30C, 03-985 Warsaw, Poland, NIP: 9522246839, REGON: 526603688. Privacy and support contact: app.zuzdmi.admin@gmail.com.

The Controller has not appointed a Data Protection Officer. The application is intended mainly for users in Poland and Polish- or English-speaking users.

Zuzdmi Studio is not directed at people under 16. Only a person aged 16 or over may create an account. We do not ask younger people to create an account or provide data. If we learn that an account or data was created by a person below the permitted age, we will make contact to resolve the situation safely and apply the law.

2. Data we process

We process data needed to operate the application and the features you use. This includes in particular:

  • account and sign-in data, such as your email address, account verification, password reset, and information needed to protect your session;
  • minimal evidence of a Terms of Service decision: document type, version and SHA-256 digest, acceptance or refusal, decision time, flow source, and displayed language. This evidence does not contain an IP address or device fingerprint;
  • email settings in two groups: ‘Account and training’, including the voluntary plan-ready notification choice, and the independent ‘News and offers’ choice;
  • minimal evidence of a ‘News and offers’ decision: yes, no, or unsubscribed status, the version and SHA-256 digest of the displayed notice, language, source, and decision time. This evidence contains no IP address, device fingerprint, or training data;
  • training profile and preferences, such as age, height, weight, language, level, goals, available equipment, training frequency, and plan settings;
  • training plans and activity data, including progress, completed workouts, plan changes, and information visible in the dashboard;
  • data needed to prepare the next week's plan, such as the current preference version, job status, and generation result;
  • payment and subscription data needed to provide Premium, including discounts, trial period, and billing status. Stripe handles card details, while the application receives information needed to confirm the subscription. To prevent repeated use of the one-time introductory trial, we retain a pseudonymous identifier created from the email address. The ledger does not contain the email address itself;
  • technical, security, and support data, such as application logs, request time and result, IP address, errors, abuse-prevention safeguards, and — after consent — performance measurements;
  • minimized email-delivery data, such as message type and language, attempt state and time, a technical provider identifier, or a closed error code. The queue for a plan-ready message stores only the week start date; at send time the message may include a public, locally stored thumbnail of the most-liked workout from the plan's first day and a secure link to that workout. The workout selection and link are not stored in the queue. Billing messages contain only a necessary date or action notice, and a marketing message contains only a random unsubscribe capability whose digest is stored separately; the queue stores no workout details, card data, or raw provider error;
  • minimized information about feature operation, such as whether a requested operation started and ended successfully or with an error. It is linked to a pseudonymous account key and does not include your email address, profile answers, plan or PDF contents, video data, or a raw error message;
  • after optional analytics consent: general information about the device, performance, and use of primary features and the player. We do not record the video URL, title or identifier, exact position, watch time, or a detailed interaction history;
  • data used in the private owner dashboard and internal Microsoft Power BI reports, such as account and onboarding stages, aggregated activity, consent choices, workouts, subscriptions, discounts, and settlements. Reports use one governed population, exclude test and operator accounts and designated promotion codes, and are available only to authorized persons;
  • YouTube data only when you use optional YouTube features, meaning you click Play for a specific embedded video or start playlist creation through OAuth;
  • data needed to generate a PDF with the training plan, such as plan week, workouts, training days, video links and thumbnails, and completion status.

3. Purposes, legal bases, and required data

We use account, sign-in, profile and plan data to the extent necessary to create the account, perform the contract, prepare requested functions and provide Premium (Article 6(1)(b) GDPR). We process billing data and records required by law to comply with legal duties, particularly tax and accounting duties (Article 6(1)(c) GDPR). Necessary security logs, abuse prevention, diagnostics, establishment or defence of legal claims, and limited operational reporting rely on our legitimate interests (Article 6(1)(f) GDPR), after assessing necessity and the balance with user rights. Optional analytics measurements start only after consent (Article 6(1)(a) GDPR), which can be withdrawn as easily as it was given.

We send messages necessary for account security, subscription performance, the trial, payment, scheduled cancellation, and access ending only to the extent needed to perform the contract, comply with a legal duty, or protect our legitimate interests and user rights. We send the optional plan-ready message only after separate consent (Article 6(1)(a) GDPR). Withdrawing it does not restrict the account or Premium and does not disable messages necessary to provide the service.

We send optional “News and offers” only after voluntary, unambiguous consent to email marketing (Article 6(1)(a) GDPR and the applicable Electronic Communications Law rules). No choice, refusal, and unsubscribe all mean no sending. Consent is not required for registration, an account, a plan, or Premium and remains separate from the Terms, cookies, and the plan-ready notification.

An email address and authentication data are required for an account. Each profile field and preference is required only for the function that uses it. Payment is required for Premium. YouTube OAuth, YouTube playback, PDF export and optional analytics are not conditions of basic account operation. We do not make contract performance conditional on consent to processing that is not necessary for the contract. We process evidence of the Terms of Service decision to enter into and perform the contract and to establish, exercise, or defend legal claims (Article 6(1)(b) and (f) GDPR).

The private owner dashboard and internal Microsoft Power BI reporting are used to analyze the operation, use, and quality of the service and to improve it. They are carried out under the Controller's legitimate interest, with access restricted to authorized persons and approved analytics views.

4. Cookies, storage, and consent

The application uses necessary cookies and browser storage for sign-in, security, Supabase session handling, language selection, consent choices, password reset, onboarding completion, and requested app flows. These mechanisms work without separate consent because they are needed to provide the service or remember your choices.

Browser storage includes your language and optional analytics choices, short-lived password-reset state, and unfinished profile settings. After consent, we may also store short-lived data needed to measure navigation and performance in the current session.

The “Classic” or “Studio” appearance choice is stored only on this device in a necessary cookie and local browser storage. The value is limited to the theme name, is not saved to your profile or sent to an API, and can be changed immediately in the app menu.

Optional analytics and performance tools, including Vercel Speed Insights, Web Vitals, navigation-measurement reporting, and bounded primary-button and player measurements, are enabled only after analytics consent. Workout thumbnails are application assets stored in Supabase Storage. Displaying them does not connect the browser to YouTube.

Before you click Play, the application does not load the YouTube player or YouTube resources. Clicking Play for a specific workout loads an embedded player from youtube-nocookie.com and starts the video automatically. From that point, YouTube may receive technical request data and use its own mechanisms under its privacy policy. Moving to another workout removes the player; the next video requires another Play click.

You can change the optional analytics choice from the app menu or sign-in screen. Both entry points open the same consent panel without navigating to another page.

After sign-in, we store your current analytics choice, consent version, and change date on the server. Optional measurements are limited to general information about the device, performance, use of primary features, and the player. Withdrawal stops new measurements, and an older saved choice cannot turn consent back on. We do not record the video URL, title or identifier, exact position, watch time, or a detailed playback history.

Necessary operational information shows whether a requested feature started and how it ended. It helps us diagnose errors and protect the service. A server response does not prove that a screen was displayed, content was read, or a video was played. Usage history is linked to a pseudonymous account key and remains personal data. Account deletion removes this history and the key mapping. Billing data follows the separate retention rules described below.

Microsoft Power BI is used for internal reporting outside the user's browser. It does not load code or set cookies in the application. The optional analytics consent described above controls performance tools and optional usage measurements, not access to internal operational reports.

Scheduled next-week plan preparation runs server-side and does not add cookies, browser storage, or a new consent category.

In “Notifications”, the “Account and training” group shows messages necessary to provide the service and one separate plan-ready email switch. The switch is off by default, does not cover marketing, and can be turned off at any time in the same place.

The second and only other group, “News and offers”, contains one voluntary email-marketing switch. It is off when no decision exists, is not enabled for existing users, and does not affect the service. People we know are under 18 are not included in this channel.

The next-week plan message is scheduled for Sunday at 18:00 Europe/Warsaw time. If a complete plan is published later, the message is sent on the next pass between 08:00 and 21:00 or deferred until 08:00. Queue recovery runs every 15 minutes.

We determine eligibility for “News and offers” around noon Europe/Warsaw time. An incomplete-checkout reminder may be sent no earlier than 24 hours after checkout started. A re-engagement message requires at least 30 days since consent and no completed workout in the preceding 30 days. The limit is two marketing messages in any rolling 30 days, including at most one checkout reminder. We do not send an automatic marketing welcome message after consent.

5. Providers and recipients

We use technology providers only where needed to operate the application and selected features:

  • Supabase: sign-in, sessions, database, account data, auth email handling, and storage of local workout thumbnails. Owner-confirmed region: Europe / Hamburg.
  • Resend: email provider used for auth messages, approved service messages, and — only after consent — ‘News and offers’. It receives the recipient address, language, message content, the relevant link, and, in a plan-ready message, may receive a public URL for a locally stored thumbnail and a secure link to the selected workout. It also receives technical delivery data, but no card data or raw billing errors.
  • Vercel: application hosting, platform logs, and optional performance measurement after consent. Owner-confirmed region: Europe / Hamburg.
  • GitHub Actions: guarded scheduled preparation of next-week plans. The job processes user identifiers, current preferences and their revisions, and writes generated plans to Supabase; its operational report contains aggregates and only hashed identifiers for failures.
  • Railway: the selected provider of the external PDF rendering service. When configured, it receives the structured plan data needed to create the file requested by the user.
  • Stripe: checkout, billing portal, subscriptions, billing status, and webhooks.
  • Microsoft Power BI: internal analysis and operational reporting based on approved database analytics views. A dedicated read-only account and authorized persons have access; this mechanism does not expose data to anonymous or ordinary authenticated application users.
  • Google / YouTube: optional video playback only after you click Play for that workout, and optional playlist creation after you start OAuth. Displaying a local thumbnail does not send a request to YouTube.

6. Google API Services and YouTube OAuth

YouTube playlist creation is optional. The application requests access to the Google API Services scope https://www.googleapis.com/auth/youtube.force-ssl only when you start YouTube playlist creation.

This scope can technically include broad YouTube account permissions, but Zuzdmi uses it only to create a playlist and add the selected training videos to that playlist, and to verify the completeness and order of its items. Playlists created by the application are unlisted by default. In connection with this flow, the application processes the created playlist ID, selected video and playlist-item IDs, and the operation result and diagnostics.

Google user data is not sold, rented, or disclosed to advertisers, data brokers, or other unrelated parties. It is transferred to Google/YouTube only to perform the playlist operation requested by the user. To the extent technically necessary to operate and secure the application, data connected with this feature may be processed by Vercel as the hosting provider and Supabase as the database and application-infrastructure provider. These providers act on behalf of the Controller and may not use the data for their own unrelated purposes.

The application does not use Google access to read your private videos, delete content, manage comments, serve ads, build ad-targeting audiences, sell Google/YouTube data, train AI models, or pursue purposes unrelated to the playlist feature. You can avoid using this feature, delete the created playlist in your YouTube account, delete your account in the application, or revoke the application's access in your Google account settings.

Google OAuth authorization codes and access tokens are transmitted over encrypted HTTPS connections and processed only on the server. They are not stored in browser storage or in the database. The application requests online access, does not request offline access, and does not store Google refresh tokens. The access token is used only to complete the playlist operation initiated by the user.

We protect the confidentiality of Google data by restricting access to authorized personnel and necessary systems, keeping secrets in protected server configuration, validating a random OAuth state, applying secure flow-cookie settings, and minimizing stored data. Stored diagnostics may contain video, playlist, and playlist-item IDs and operation statuses, but do not contain Google access or refresh tokens.

The application's use and transfer of information received from Google API Services adheres to the Google API Services User Data Policy, including the Limited Use requirements where they apply to this feature.

Google's processing of data is described in the Google Privacy Policy. Use of YouTube is also subject to the YouTube Terms of Service.

7. Transfers outside the EEA

Because we use technology providers, in particular Supabase, Resend, Vercel, GitHub Actions, Stripe, Microsoft Power BI, Google/YouTube, Railway as the PDF rendering provider, and their subprocessors, personal data may be transferred outside the European Economic Area. In such cases, providers use appropriate legal mechanisms, including standard contractual clauses, adequacy decisions, or other safeguards provided by GDPR.

8. Automated plan personalization

The application may automatically personalize your training plan based on information you provide, such as preferences, level, goals, available equipment, training frequency, or other app settings. This personalization is used only to adapt app content and features. The Controller does not make decisions about you based solely on automated processing that would produce legal effects or similarly significantly affect you.

9. Medical data and special categories of data

Zuzdmi Studio is not a medical service and does not request diagnoses, treatment, medical records, injury, disability or other medical information. Do not put such information into ordinary Application fields or messages.

We use age, gender, height, weight, goals, preferences, activity and progress for the purposes described in this Policy: operating the account, personalizing a general activity plan and showing progress. The Application does not use this information for diagnosis, treatment, health prevention or medical inference and does not require medical information.

Before we add a feature that requires health information or change a purpose in a way that classifies data as health data, we will conduct a separate assessment, update the privacy information and apply an appropriate Article 9(2) GDPR condition. If explicit consent is appropriate, it will be separate from the Terms, voluntary, limited to the stated purpose and withdrawable. Until then, we do not collect that information or activate that purpose.

10. Retention and deletion

Account, training profile, plan, and progress data is kept while the account is active. After account deletion, we remove the external sign-in identity, block access, and replace the email address with a technical deleted-account marker. Other profile, plan, and progress data may remain under a pseudonymous identifier only where needed for billing, security, legal duties, or to establish, exercise, or defend legal claims. The periods for this data still require a final retention review.

After account deletion, the dashboard layer may retain a pseudonymous history key, aggregated facts, and a non-personal exclusion reason. It does not retain the email address, Stripe customer identifier, or another direct identifier in that layer. This remains pseudonymous history and is not a claim of anonymity.

To prevent repeated use of the one-time introductory trial, after account deletion we may retain a pseudonymous identifier created from the email address. The ledger contains no email address, account identifier, or Stripe identifier. The identifier is pseudonymous data, not anonymous data. We retain it only for as long as needed to enforce one introductory trial per email address, and no longer than we offer this promotion.

We keep the minimal evidence of accepting or refusing the Terms of Service while the account is active and, after account deletion, only to the extent and for the time needed to comply with a legal duty or to establish, exercise, or defend legal claims. We do not use this evidence as marketing consent.

Payment, invoice, settlement, complaint, tax, and accounting records are kept for the period required by law, generally for 5 years counted from the end of the calendar year in which the tax payment deadline expired, unless longer storage is required or justified by law.

Raw technical, flow, performance, security, and plan-change event data is assigned an expiry date, generally 12 months after the event or the end of the technical matter. After that date it becomes eligible for a controlled deletion process; reaching the date does not delete it automatically. Longer storage is permitted for a justified incident, dispute, legal duty, or claim. Pending YouTube OAuth state is short-lived and used to complete the flow you started. The scheduled plan-generation report contains aggregates and hashed failure identifiers and follows the same technical-data retention rules.

We keep the plan-ready email setting while the account is active. An email queue record remains until delivery, the bounded attempt limit, or cancellation by a later event. A minimized delivery outcome may then remain while the account is active to prevent duplicates and diagnose delivery. Account deletion also removes the related setting and queue records.

We keep the current “News and offers” choice and decision history while the account is active so that we can apply the choice and demonstrate its source. Random unsubscribe capabilities are stored in the private queue, while only their digests are kept separately. An unsubscribe or technical address suppression stops marketing but not service messages. Account deletion removes these settings, records, capabilities, suppressions, and related queue entries.

The PDF with the training plan is generated at your request and returned as a downloadable file. The application does not use the PDF as a permanent data store; related logs and diagnostics follow the retention rules for technical data.

11. User rights, contact, and complaints

You may request access, correction, deletion, restriction of processing, data portability, objection to processing, and withdrawal of consent where processing is based on consent. Withdrawal of consent does not affect processing that was lawful before the withdrawal.

You can sign out, manage payments through Stripe, delete your account from the app menu, and change optional analytics consent or the plan-ready email setting in the app. You can change “News and offers” in the same settings or withdraw without signing in by following and explicitly confirming the unsubscribe link in any such email. For privacy requests, contact app.zuzdmi.admin@gmail.com. You may also lodge a complaint with the Polish Data Protection Authority.

We will respond without undue delay, generally within one month after receipt. Where necessary, we will request only the information needed to verify identity. If the period is extended, a request is refused or a fee applies in an exceptional case, we will explain why and identify the available rights. A complaint may be lodged with the President of the Polish Personal Data Protection Office: https://uodo.gov.pl/.

12. Privacy Policy changes

We update this Policy when processing, the Application, a provider or the law changes. Each published version will have a version number, publication date and effective date, and we will retain its content internally as evidence. We will give appropriate advance notice in the Application or by email of a material change to purpose, legal basis, data categories, recipients, retention or rights, and summarise the key differences. If new consent is required, we will ask for it separately; continued use of the Application will not replace it.