DoggyWalky Privacy Policy
This is a translation of the Ukrainian original. If the two versions differ, the Ukrainian version prevails.
Last updated: 9 November 2026
Operator (data controller): Dmytro Khait (an individual), Kyiv, Ukraine
Contact for data matters: privacy@doggyapps.com
1. In brief
- We record walks to show the route, the distance, and the “fog over the city” for your dog and your family.
- Your home address does not reach the server. The app creates a “privacy zone” (up to three — for example after moving house) with an offset centre and a random radius; only these zones go to the server, and the routes you share are clipped by them — by yours and by the zones of the other family members of the dog you walked.
- Only you and the family members you invited to the dog can see exact routes.
- Friends (who are not family) see your dog's name and mascot and — unless you turn it off — the day and length of your walks; your own name only if you allow it. They do not see routes, places or the time of walks (sections 2 and 5).
- Until a walk is saved, it lives only on your phone; another account on the same phone cannot see it (section 2a).
- We do not sell data and do not show ads.
- Crash reports are sent without coordinates, addresses, or photos; usage statistics — and with them the linking of reports to your account's pseudonym — can be turned off in the settings (section 3a).
- You can delete your account in the app, together with its data (see section 7).
- The doggyapps.com website sets no cookies and runs no analytics. If you sign up for the beta, we keep only your email (section 11).
2. What data we process and why
| Data | Purpose | Who sees it |
|---|---|---|
| Email (for sign-in by code) or an Apple / Google identifier together with the email that Apple or Google passed on (with Apple, this may be a private address that forwards mail) | Signing in to your account | Only you; the operator, for support |
| The name that Apple or Google passed on at sign-in (Apple passes it only at the first sign-in and only if you chose to share it); from Google, also a link to the Google profile photo | Signing in to your account. The name is only prefilled in the field on the Як тебе звати? (What's your name?) screen — it gets into your profile only if you confirm it. The app does not download or show the Google profile photo | Only you; the operator, for support. Not shown to the family |
| The name you provide | Shown to family members (“Maksym has already walked…”) | You and the dog's family |
| The dog's name | Profile, family notifications | You and the dog's family |
| Dog card: mascot look (size, coat, ears, mixed breed), breed, “mixed breed”, month and year of birth, weight, personality traits, “Yellow Ribbon” marker | Dog profile, mascot, choosing the look | You and the dog's family |
| “Who is walking the dog now” (a record of an active walk: who and since when; disappears after the finish or after 3 hours) | Letting the family know the dog is already being walked | The dog's family |
| Walks: start and end time, distance, number of “toilet” marks, route, unlocked map cells (H3), the walk's name (the app makes it up; you don't type it) | History, calendar, Paw Streak, unlocked map cells, Park Passport | You and the dog's family |
| Finds from walks: which item was found, which family member found it, on which walk and when — no coordinates | The dog's collection of finds | You and the dog's family |
| Anonymous count of cities where dogs walk: once a week the server rolls the unlocked map cells it already has up into large cells of about 250 km² (Ukraine only, only outside the cities the app already covers) and keeps a cell only if at least 3 different dogs walked in it on at least 2 different days in 28 days. What is stored: the cell, the number of dogs rounded down to 5 (3 means "3–4") and the dates of the first and last time — no account or dog id, no names, no points | To decide which cities to add to the app next. The app sends nothing extra for this | The operator only |
| Friends: the “you — friend” pair and the exact date and time you became friends (friends are shown only the month); a friend code (8 characters, valid for 7 days, up to 10 joins by code, up to 50 friends); your choices: “Show my name to friends” (off by default), “Show my walks to friends” (on by default), “Paw notifications” (on) | The friends list, invitations by link or code, your visibility choice | Someone who opened your code sees, before becoming a friend, only the name and mascot look of your main (first) dog. A friend sees the same plus that dog's AI portrait (while you are friends), the month the friendship began, and your name only if you allow it; a friend does not see your other dogs. Friends do not see routes, the map, cells, places or the time of walks |
| Paws: who gave a paw (the account) and for which walk; the number of paws | The friends feed (“today · 2.1 km · 3 paws” — the day, the length to 100 m), the notification “Bublik gives Luna a paw” | A friend sees the day and length of only those walks of your main dog that you walked yourself, from the last 48 hours (unless you turn the switch off); a walk appears in the feed in groups — not before its 3-hour interval has ended — and without a time; in the notification you see the friend's dog name and the number of paws, not a name. A paw can only be given to a friend |
| Privacy zones — up to three (for example after moving house, or for a country house): each has an offset centre and a radius of 200–400 m (not your address); each is created once and never changes, and a new one must be at least 1 km from the existing ones | Clipping routes in the cards you share and in the cards shared by the other family members of your dogs | You; the apps of the other family members of your dog receive all your zones (without your name) as soon as you join the family and for as long as you stay in it — only to clip the cards they share; nobody sees them on screen |
| Dog photo and walk memory photo | Avatar and memories | You and the dog's family |
| Device token for notifications | “The dog has already been walked” notifications | Nobody; used only for delivery |
| AI recognition log: date, status (succeeded / not a dog / error), cost (without the photo) | Attempt limit and budget | Only you (your own records) |
Geolocation. During a walk, the app records coordinates, including in the background (when the screen is locked) — only between “Start” and “Finish”. Outside a walk, your location is not recorded. Points with poor accuracy do not unlock fog; signs of GPS interference (jamming, spoofing) are stored only as a flag on the walk.
2a. What is stored only on your phone
So that a walk is not lost when the app is closed or the connection drops, some data lives on the phone. Walks and the queue are stored on iPhone in the app's private folder, which is not included in the iCloud backup; on Android, in the app's data folder, which is not included in the Google backup; in the web version, in the browser storage.
| What | Purpose | How long |
|---|---|---|
| Current walk: route points (coordinates, time, accuracy), start time, “Toilet” marks | The recording survives closing the app; the summary after the finish | Until you start a new walk or delete the account — including after it has been saved to the server |
| Finds of the current walk: up to three points on the map where items lie (never closer than your home zone + 100 m), and which of them you have picked up; how many items of the set the dog had when the walk began (item names and a number only) | To show the finds on the map and keep what you picked up if the app is closed; to count for the statistics which item of the set was picked up | Erased as soon as the walk is saved on the server or you discard it, and when you sign out or delete the account. Only the names of the items picked up go to the server, never where they were |
| Memory photo of the current walk (already without EXIF) and its upload queue: the photo stays on the phone until the walk itself is saved and the photo is uploaded | A photo can only be added to a walk that is already on the server; without a connection it waits | Until the server accepts or rejects it; until the account is deleted on this phone |
| Queue of walks waiting for a connection | Offline saving (blackouts, no network) | Until the server accepts them |
| Walks the server has permanently rejected | So they are not lost without a trace | Until the account is deleted on this phone |
| A “parked” walk of your account — when you signed out or another account signed in on the phone | Another person on this phone cannot see it or save it for themselves; it returns to you when you sign in | Until you sign in again or delete the account |
| Identifier of the last account on the phone and whether it is signed in | So that a new walk belongs to the right account; a walk recorded without signing in on a phone where someone has already signed in is confirmed manually by the account | While the app is on the phone or until this account is deleted |
| Sign-in session (tokens) — on iPhone and Android in the app's settings (on iPhone they may end up in the iCloud backup) | Not having to sign in every time | Until you sign out |
| The Анонімна статистика (Anonymous statistics) switch and, while it is on, random statistics identifiers (device and session) | Remembering your choice; counting sessions, not people | The choice — while the app is on the phone; the identifiers are erased as soon as statistics are turned off, and a new anonymous one appears after signing out |
| Sunrise and sunset times where the phone last was: two numbers accurate to 10 minutes, without coordinates; only while Авто (Auto) is selected for Світло (Light) in Налаштування (Settings) | So that Авто (Auto) switches on the night theme right after launch, before the app finds out where you are | While Авто (Auto) is selected and the app is on the phone; erased as soon as you choose День (Day) or Ніч (Night), and when the account is deleted. Not sent anywhere |
| Where the Safari twin last stood on the home map: one point accurate to about 1 m (the end of the dog's latest walk, or where the phone was before the first walk) and the dog's and the account's identifiers. On iPhone, in the app's private folder, outside the iCloud backup; on Android, outside the Google backup | So that after launch the map opens right on the dog instead of somewhere else first | Until you sign out, delete the account or another account signs in on the phone; a new walk replaces it. Not sent anywhere |
| What the profile shows for each dog on this phone — a photo or a Safari lookalike: only the identifiers of dogs for which a photo is chosen (a dog's first photo added from this phone is chosen at once) | So that the profile opens with your choice, and the dog looks the same on your maps (home, walk, walk summary) | While the app is on the phone; a dog's identifier is erased as soon as you return its Safari lookalike, and the whole list when the account is deleted. Not sent anywhere |
| A copy of the dog's mascot drawn by AI (a sticker or a parts sheet; a picture the AI drew from the dog's photo or from a description of its look — the photo itself and the place are not in it) and when it was last compared with the server. On iPhone in the app's private folder outside the iCloud backup, on Android outside the Google backup | So that the dog keeps its own look on the maps, in the walk summary and on the cards without a connection, without downloading the picture every time; once a day the app checks whether the server has a newer mascot | Until you sign out or delete the account; also erased when the dog's mascot is no longer on the server. Not sent anywhere |
| First-run markers: whether location is allowed and whether only approximately (no coordinates), whether the fog hint was shown, whether the card about parks and districts outside the larger cities was closed (no place), whether you were offered to create a home zone, and when you closed the zone reminder | Not to ask or show the same thing again | While the app is on the phone. Not sent anywhere |
Keys of the cities from our coverage list (for example kyiv) where the dog has been, and a marker that it has been outside coverage; no coordinates and no time |
To show the "Now here too" card once when parks and districts appear in the city where you walk | While the app is on the phone; erased on sign-out and with the account. Not sent anywhere |
| How you started signing in (Apple, Google or an email code) and when | So that the statistics (section 3a) count the sign-in method when you return from the browser | Erased as soon as the sign-in completes; an entry older than 30 minutes is ignored |
| Identifiers of walks that included a ride on transport | The “with transport” note in the calendar on this phone | While the app is on the phone; erased when the account is deleted. Not sent anywhere |
| Your settings on this phone: the look (Стиль (Style) and Світло (Light)), Купки на карті (Poops on the map), Кнопки зліва (Buttons on the left); whether you have already made a “big” toilet mark and on how many walks the Туалет (Toilet) hint was shown | So the app looks and works the way you chose and hints are not repeated | While the app is on the phone. Not sent anywhere |
| The last notification token this phone registered, and for which account | Not registering the phone for notifications again every time (the token itself is on the server, section 2) | Erased when you sign out or delete the account |
| A scheduled «… вже вдома?» ("… home already?") reminder: the dog's name (if there is one) and the time to show it; only if notifications are allowed. It sits in the phone's notification system, and on Android also in the app's private folder; no coordinates | Reminding you to finish the walk after 10 minutes without movement | Only while a walk is recording: moving on moves it later, and finishing or Не зберігати (Don't save) cancels it. Once shown, the app removes it as soon as you return to the app, move on or finish the walk. Not sent anywhere: the phone shows it itself |
| The walk reminder, if you turned it on: your choice (Як зазвичай (As usual) or a time you picked), whether you answered the offer on the home screen, and the scheduled reminders — the dog's name and the time, a few days ahead. The phone works out your usual time itself from the start times of your walks of the last 14 days (it reads them from the server, like the calendar); no coordinates | Reminding you about a walk at your usual time, once a day and not when the dog has already been walked | While the app is on the phone; the scheduled reminders are erased when you turn the reminder off, sign out or delete the account. Not sent anywhere: the phone shows the reminder itself |
| The Monday weekly summary, if you turned it on: the switch, the scheduled notification — the dog's name, the week's totals (number of walks, kilometres, days with a walk, new cells) and the time — and the day a summary was last shown. The phone works out the totals itself from the dog's walk calendar (all family members' walks, as in the calendar); no coordinates | Showing how the dog's week went, once a week, and not sending a walk reminder on the same day as well | While the app is on the phone; the scheduled notification is erased when you turn the summary off, sign out or delete the account. Not sent anywhere: the phone shows the notification itself |
| A crash report that has not been sent yet (for example, the app crashed without a connection), and a random installation identifier for crash reports | Sending the report when the app opens again; telling one recurring crash from many | The report — until it is sent; the identifier — while the app is on the phone |
GPX export and the walk card are created on the phone. A GPX file contains exact coordinates and goes only where you yourself save or send it; the walk card is clipped by the privacy zones — yours and those of the other family members of the dog you walked; without a zone of your own it will not be created. To draw a map on the card, the app downloads map tiles around the route from OpenFreeMap; the areas of your home zones are covered with fog on the card — neither the map nor the route shows there. Without a connection the card has no map.
Android backups. The app does not hand its data to the Google backup: unsaved walks, the queue, the sign-in session and the settings on the phone do not go there. After reinstalling you sign in again, and everything saved on the server comes back. When you move data from an old Android phone to a new one directly (by cable or wirelessly, Android 12 and newer), the app's data moves along with the rest — from phone to phone, without the cloud.
Photos. Before uploading, the app re-encodes the photo on the device (up to 1080 pixels, up to 120 KB), which removes all EXIF metadata, including the GPS coordinates of the shot. Coordinates are not stored together with the photo.
3. Who the data is shared with (processors)
| Service | What it receives | Purpose | Where |
|---|---|---|---|
| Supabase (database, sign-in, file storage, server functions) | All data from section 2; the IP address and technical data of every request from the app (see below) | Storage and operation of the app; logs — security and troubleshooting | EU, Frankfurt (Germany) |
| Google Vertex AI (Gemini) | A dog photo — only if you run AI recognition, without EXIF; it is sent over an encrypted connection to two Gemini models | (1) Determining the size, ears, coat and probable breed; (2) drawing the dog's mascot from the photo and those attributes (a sticker, and later a parts sheet for the animated mascot). Vertex AI does not use customer data to train models; we do not store the copy sent to the AI — it does not stay on our servers after processing (the photo you added to the dog's card as its avatar is kept under section 2). The drawn mascot picture is stored in private storage accessible to the dog's family (friends see it as the dog's AI portrait — section 2) and is deleted with the dog or the account | Google; processing takes place in the EU multi-region. The feature is enabled; if AI is unavailable, the size and coat can be chosen manually |
| Google Firebase Cloud Messaging / Apple Push Notification service | The device token and the notification text (dog's name, name, time, “toilet”) — without coordinates | Delivering notifications | Google / Apple |
| MET Norway (api.met.no) | Only a ~10 km cell (coordinates rounded to 0.1°), without your IP address — the request comes from our server | Weather for the mascot | Norway |
| OpenFreeMap (tiles.openfreemap.org) | Your app downloads map tiles directly: the service sees your IP address and the map area you are viewing | Showing the map and the map on the walk card | Under the OpenFreeMap policy: no cookies and no tracking, IP addresses are not logged by default, logs are deleted after 7 days |
| Apple / Google (sign-in) | Only if you choose to sign in through them | Authentication | Apple / Google |
| Resend (Plus Five Five, Inc.) — email | Your email and the email with the sign-in code (the code and the sign-in link) | Delivering sign-in emails; the email and its delivery log are kept under Resend's rules — up to 30 days | EU (Ireland) |
| Sentry (Functional Software, Inc.) — crash reports | A technical report of a crash, an error, or an app hang, or of the app being force-terminated by the system (for example, for lack of memory): the type and text of the error (with the removals described in section 3a), the call stack, the phone's technical characteristics (model, system, memory and storage, battery charge, screen resolution, language, time zone), the app version, the latest technical steps before the crash (screens, taps without button labels, request addresses without parameters), a random installation identifier of the app; while statistics are on — also the account pseudonym and technical sessions (when the app was opened and closed and whether a crash happened) | Finding and fixing crashes and hangs | EU (Germany, Sentry EU region) |
| PostHog (PostHog Inc.) — usage statistics | Only the events from section 3a with predefined values; the account pseudonym, if you are signed in; random device, session, and window identifiers; the system and its version, device type and model, the web view engine and its version, screen size, language, time zone, library version, event time | Understanding what is convenient in the app and what is not | EU (Germany, PostHog EU Cloud) |
IP addresses in Supabase logs. Like any server, Supabase sees the IP address of every request from the app and records it in technical logs together with the time, the request address, the account identifier, and a technical description of the device and browser (user agent), as well as the approximate location that Cloudflare (which requests to Supabase pass through) derives from the IP address (country, city, postal code, approximate coordinates) and the name of your internet provider. The sign-in log is kept there too (when you signed in, signed out, or deleted the account), with the email and the name from Apple / Google, if there is one. The logs are needed for security (protection against abuse and break-ins) and to troubleshoot server failures; they are erased automatically — after 7 days at most (the log retention period on our Supabase plan). In addition, the sign-in system remembers the IP address and a technical description of the device for each sign-in session — until you sign out of the account or delete it. We do not use either the IP addresses or the location derived from them to track where you are or to build a profile of you, and we do not pass them on to anyone.
3a. Crash reports and usage statistics
What is not there. The statistics contain no free text — only the events from the list below with predefined values, so there can be no coordinates, map cells, addresses, names, dog names, photos, or invitation codes. From crash reports, the app removes, on the phone and before sending, coordinates, map cells, encoded routes, email, sign-in tokens, and request parameters, as well as the dog's name, your name, the names of family members, and the invitation code, if they ended up in the error text. Sentry and PostHog see your IP address while the request is made but do not store it (the projects are configured that way); city detection by IP is turned off in the statistics. For IP addresses in Supabase logs, see section 3.
A pseudonym, not anonymity. The switch is called Анонімна статистика (Anonymous statistics), but more precisely it is pseudonymised: while you are signed in, the services see not your account but a pseudonym — an irreversible hash (SHA-256) of the account identifier. Without the DoggyWalky database, a person cannot be found from the pseudonym; after you sign out, statistics on this phone are anonymous again. Crash reports receive the pseudonym only while statistics are on.
Installation identifier. Every crash report contains a random installation identifier of the app (on iPhone, a hash of the app identifier on this device), to tell one recurring crash from many. It is not linked to the account and disappears together with the app.
Which events the statistics count: opening the app; the steps of the first setup (sign-in, name, «Як почнемо?», dog, mascot, manual choice, family code) and the sign-in method (Apple, Google or an email code); the result of the location permission request (granted, denied, or approximate location only); completing the first setup (your own dog or a family code; mascot look from AI or chosen manually); starting a walk; finishing a walk — only ranges of duration and distance, numbers of new cells and “toilet” marks, whether there was a photo, and whether GPS was disrupted (jamming, spoofing); sharing a walk card; a family invitation sent and accepted (joining by code counts both as completed setup and as an accepted invitation); the notification permission (granted, denied or not asked yet; and what showed the request — a saved walk, the family or the reminder — or a check at start-up); opening the app by tapping a notification (the family's «… вже вигуляно» ("… already walked"), the walk reminder, «… вже вдома?» or the weekly summary); the reminder offer on the home screen (shown, accepted or dismissed) and turning the reminder on or off (from the offer or from settings; «Як зазвичай» ("As usual") or a time of your own — without the time itself); the «Explorer Pro — готуємо» ("Explorer Pro — in the works") card — where it was shown (a walk older than 30 days, a full family, all the dog's free AI portraits already drawn, or settings) and whether «Мені цікаво» ("I'm interested") was tapped (no price, no payment, none of your contacts); finds on a walk — which catalogue item was picked up, which of the dog's sets it is and how many of the set's 10 items are collected, and a completed set (only its number) — never where the find was, map cells, the district or the landmark; the weekly stamp earned for three walks in a week (the event alone, no values). Friends and paws — how a friend invitation was sent (the system sheet or copying), the result of a friend code entered (accepted, invalid, expired, used up, your own, from your family, list full or too many attempts), a friend added or removed, a paw given, the “Спільнота” (Community) tab opened (no friends, with friends or failed to load), the switches “Show my name to friends”, “Show my walks to friends” and “Paw notifications” turned on or off, and the app opened from a tap on a paw notification — only these values, without the codes and links themselves, names, friends' dog names, identifiers or places. There is no automatic collection of taps or screen views and no screen recording. To switch new features on gradually, the app (only while statistics are on) asks PostHog whether a feature flag is on: that request carries the same pseudonym and technical device data as the events, and nothing more; PostHog may work out an approximate location from the IP only to answer that request, without storing it.
How to turn it off. Профіль (Profile) → ⚙ Налаштування (Settings) → Анонімна статистика (Anonymous statistics) (the switch is present in builds where these services are connected). Turning it off takes effect immediately: statistics no longer send anything, its identifiers on the phone are erased, and crash reports no longer contain the account pseudonym; technical sessions in crash reports are turned off from the next launch of the app. The choice is remembered on this phone. The crash reports themselves are always sent: without them we would not know that the app crashes. You can object to them too — by writing to privacy@doggyapps.com.
4. Legal bases for processing
- Performance of a contract (the Terms of Use): account, walks, family, notifications.
- Your consent: access to geolocation (including in the background), photos, notifications, AI recognition. You can withdraw consent in the phone or app settings.
- Legitimate interest: protection against abuse (limits, AI budget accounting); server technical logs — security and troubleshooting; crash reports — stable operation of the app; usage statistics — development of the app (they can be turned off in the settings, section 3a).
5. Family
When you invite a person to a dog (a one-time code, valid for 48 hours), you give them access to the raw routes of that dog's walks, the calendar, photos, and the name of whoever walked. A family member can leave; the owner can remove a participant. If you join another family while you already have your own dog of which you are the only member, after you confirm, the app deletes that dog together with its walks, fog, stamps, and photos.
Friends are not family. A friend does not see the routes, the map, the cells or the time of your walks and cannot walk your dog in the app. Friendship is mutual and starts when someone opens your /f/<code> link or enters your code and taps “Дружити” (“Be friends”); you cannot become friends with your own family or with yourself. You can remove a friend at any time on the friend's profile — the friend is not notified, and afterwards no longer sees your dog's name, mascot or walks. A code lets anyone who has it become your friend, so share it only with people you want to add; an expired code stops working.
6. How long we keep data
- Sign-in data (email, the identifier and data from Apple / Google) — as long as the account exists.
- Walks, fog, and photos — as long as the account exists (in the free version, routes older than 30 days are hidden, not deleted, so that they open up after subscribing). The author of a walk or the dog's owner can delete a walk, with its photo, within 24 hours after it ends; the fog cells it opened remain. To prevent abuse, the server remembers for 2 days who deleted walks and when (only the account identifier and the time).
- Finds (item, who found it, walk, time) — together with the walk and the dog: a deleted walk takes its finds with it, a deleted dog all of them. After an account is deleted, its finds stay in the dog's collection for the rest of the family, like walks, but no longer linked to you; a dog with no other family members is deleted together with them.
- The notification queue — up to 7 days.
- Friends: a friend code is valid for 7 days and is kept with the account; a friendship lasts until either of you removes it or deletes the account; paws last while the walk and the account of whoever gave the paw exist; paw notifications are not sent from 22:00 to 07:00 Kyiv time. The log of code attempts (an hourly counter) and the log of friends-feed calls (only the account and the time of the call, for the rate limit; entries older than an hour are erased at the next call) are kept no longer than the account exists.
- City count: a cell's row disappears if it has not been confirmed for 8 weeks; it holds no data about people, so it does not depend on account deletion — afterwards the dog is simply not counted in the next weekly run.
- The AI recognition log after account deletion is kept de-identified (not linked to you) — only to control the monthly budget.
- The weather cache contains only ~10 km cells and the forecast — there is no personal data in it.
- Supabase technical logs with IP addresses and the sign-in log — up to 7 days; a sign-in session with its IP address — until you sign out or delete the account (section 3).
- Emails with the sign-in code and their delivery log in Resend — up to 30 days.
- Crash reports in Sentry — up to 90 days; statistics events in PostHog — up to 1 year.
- Data on the phone — according to the periods in section 2a.
7. Account deletion and your rights
- To delete the account: in the app — Профіль (Profile) → ⚙ Налаштування (Settings) → Видалити акаунт… (Delete account…) → confirm by holding the button Утримуй, щоб видалити (Hold to delete). Deleted: the account (together with the email and the data from Apple / Google), profile, privacy zones, family memberships, friendships, friend codes, your paws, visibility settings for friends and the “Paw notifications” switch, the logs of code attempts and feed calls, sign-in sessions, notification tokens, your photos; dogs for which you were the only member — together with their walks, fog, and photos. For shared dogs, your walks remain in the family history without your name. If you sign in with Apple, on iPhone Apple will ask you to confirm it is you before the deletion, and the app asks Apple to revoke its access to your Apple ID. If you delete the account from a device other than an iPhone or closed the Apple window (the account is deleted all the same), you can remove DoggyWalky from the list yourself: on iPhone — Settings → your name → Sign-In & Security → Sign in with Apple.
- On the phone from which you delete the account, the following are erased: the queue and rejected walks of your account, the current unsaved walk on this phone and its finds, your “parked” walks, the marker of your account, the remembered sunrise and sunset times, the “photo or Safari lookalike” choice for dogs, the list of walks “with transport”, the last registered notification token, the scheduled walk reminders and weekly summary; the session ends. If something could not be erased, the app will tell you — then delete the app. On other phones where you signed in, local data remains until the app is deleted there.
- Crash reports and statistics are linked at most to a pseudonym (section 3a) and are deleted within the periods in section 6; on request, we will delete them earlier — we can compute the pseudonym of your account.
- Supabase technical logs (section 3) and the emails with the sign-in code in Resend are not deleted separately — they are erased on their own, after 7 and 30 days at most respectively.
- Without the app — a request to privacy@doggyapps.com from the address linked to the account (see How to delete your account).
- You have the right of access, rectification, erasure, restriction of processing, data portability, and objection, as well as the right to complain to the Ukrainian Parliament Commissioner for Human Rights, and, if you are in the EU, to the data protection supervisory authority of your country.
8. Children
The app is not intended for children under 16. If you learn that a child under 16 has created an account, write to us — we will delete it.
9. Security
Access to data is restricted by database-level rules (row-level security): every request checks that you are a family member of the relevant dog. Photos are stored in private storage and are served only through temporary links (1 hour). Connections are encrypted (HTTPS).
10. Changes
We will notify you of material changes in the app before they take effect.
11. Website and beta waitlist
The doggyapps.com website uses no cookies, browser storage, analytics or trackers. To serve a page, our host Cloudflare processes your IP address and the technical data of the request. A family invite link carries the code in the address itself (doggyapps.com/join/CODE), so the code, as part of the page address, ends up in Cloudflare Pages' technical logs; the code works once and only for 48 hours.
Waitlist. On the home page you can leave your email to get into the closed beta.
| What we keep | Why | How long |
|---|---|---|
| Your email; the language of the page (Ukrainian or English); where the link came from, if it says so (for example, from a walk card — only from a short fixed list, never page addresses); when you gave consent and to which edition of this policy | To invite you to the beta and to write once when the app is released on the App Store | Until you ask us to delete it, but no longer than 12 months from sign-up; after the release email we delete the list |
| A one-way hash of your IP address (made with a secret key; the address itself is not kept; for IPv6, only its network part — the first four groups) and the time of the attempt | Protecting the form from spam: no more than 5 attempts from one network per hour | 1 day |
- Legal basis — your consent: the box under the form, which you tick yourself. You can withdraw it at any time by writing to privacy@doggyapps.com — we will delete the address without undue delay and within a month at the latest.
- Who receives it: Supabase stores the list (EU, Frankfurt; on IP addresses in Supabase logs see section 3). When we invite you to the beta, we enter your email in App Store Connect and Apple sends the TestFlight invitation; from then on Apple processes that address under its own terms. Any other emails we write from privacy@doggyapps.com.
- No newsletters: we send no ads or news and share the list with no one.
- No confirmation email: we do not verify the address with a separate email. If someone entered your address without your knowledge, simply ignore the invitation or write to us and we will delete it.
- The form is for people aged 16 and over.