Milkteeth Gizlilik Politikası

Son güncelleme: 27 Ekim 2026

1. Kısaca

2. Biz kimiz

Veri sorumlusu:

3. Hangi verileri işliyoruz

Aşağıdaki tablo "ne, neden, ne kadar, kimle" sorusunu yanıtlar.

3.1 Yalnızca cihazında kalanlar (bize ulaşmaz)

Çocuğunun adı ve doğum tarihi (girdiysen doğum saati), tahmini doğum tarihi, elle girdiğin gebelik haftası, fotoğraf/video/ses kayıtları, başlıklar, notlar, mektuplar (yazılı ve sesli), zaman kapsülü ayarları, ilk kelimeler, kilometre taşları, kolajlar, albüm arşiv durumu, tercihler, uygulama kilidi ayarı ve hatırlatma bildirimleri cihazdaki veritabanında ve dosya alanında tutulur. Hatırlatma bildirimleri cihazda yerel olarak planlanır, bizim üzerimizden geçmez. Gönderdiğimiz tek uzaktan bildirim (push), izleyiciler için isteğe bağlı aile özetidir (§3.12). Ücretsiz planda bu verilerin tamamı yalnızca bu kategoridedir.

3.2 Hesap (isteğe bağlı: Apple ile giriş / Google ile giriş)

VeriNedenNot
Ad (sağlayıcı verirse), e-posta adresi, giriş sağlayıcısı, hesap kimliği (rastgele UUID)Hesabını tanımak, yedeği ve aboneliği hesaba bağlamak; silme öncesi hatırlatma e-postalarını göndermekApple ilk girişten sonra adı vermez, e-posta gizlenmiş olabilir. Parola tutmayız.

Hesap açmak zorunlu değildir. Hesap açmayan, ücretsiz kullanıcı için sunucuda anonim hesap da açılmaz (1.0.19 ve sonrası).

Bir davetle gelen izleyici de aynı iki yolla (Apple ya da Google) giriş yapar; anonim oturumla davet kabul edilemez. İzleyicinin görünen adı ve isteğe bağlı yakınlığı için bkz. §3.12.

3.3 Ücretli plan yedeği

VeriNedenKoşul
Çocuk adı, doğum tarihi (ve girildiyse doğum saati), tahmini doğum tarihi, albüm arşiv durumu ve aile erişiminin kapatılıp kapatılmadığı, anı kayıtları (tür, tarih, başlık/not, mektup metni, kelime ve bağlamı, süre, ses dalga biçimi, kilometre taşı, favori, elle girilen gebelik haftası), zaman kapsülü ayarları (açılma biçimi, tarih ya da yaş), kolaj tanımları, belirli tercihler (dil, hatırlatma sıklığı, video kalitesi vb. beyaz liste)Yeni telefonda geri yükleme, kayıp korumaGiriş yapılmış + geçerli ücretli abonelik
Fotoğraf, video, ses dosyaları, küçük resimler, çocuk avatarıAynıGiriş + ücretli plan (Gülümseme, Kıkırdama, Kahkaha; her birinin kendi yedek alanı var) + "Medya yedeği" anahtarı açık

3.4 Abonelik ve satın alma

VeriKaynakNeden
Satın alma/abonelik durumu, ürün kimliği, dönem ve bitiş tarihi, mağaza işlem kimliği, tutar ve para birimi, deneme/iade bilgisiApp Store / Google Play, RevenueCat üzerindenHangi plana hakkın olduğunu belirlemek, yedek kotasını açıp kapamak, muhasebe
RevenueCat müşteri kimliği (giriş yapmadan önce anonim; giriş sonrası hesap kimliğin)RevenueCatAboneliği hesabına bağlamak

Kart ve ödeme bilgilerini hiçbir zaman görmeyiz; ödeme Apple/Google tarafından alınır.

3.5 İndirim kodları ve ortaklık (influencer) kodları

3.6 Anonim ölçüm

Uygulama, kimlik taşımayan sayaçlar gönderir: onboarding tamamlandı, ilk anı eklendi, paylaşım yapıldı (tür), paywall açıldı (hangi ihtiyaçtan), satın alma başladı/tamamlandı/vazgeçildi, geri yükleme tamamlandı, yedek dosyası başarısız, çocuk profili silindi, giriş kapısı gösterildi. Aile özeti için de aynı biçimde açıklama ekranının gösterildiğini, sistem izninin verildiğini ya da reddedildiğini ve hangi seçimin (günlük / haftalık / kapalı) yapıldığını sayarız. Bebeğini beklerken kullandığın özellikler için de yalnız olayın türünü sayarız: beklenen bebek eklendi, doğuma geçildi, zaman kapsülü oluşturuldu, aile katkısı gönderildi ya da karara bağlandı, tahmin kaydedildi, albüm arşivlendi; bu olaylarda tarih, gebelik haftası, metin ya da medya adresi yoktur. Tabloda yalnızca olay türü ve zaman vardır; kullanıcı, çocuk ya da cihaz kimliği yoktur; çocuk adı, anı içeriği, e-posta ya da push jetonu gönderilmez. Bu veriyi hesap açmayan ücretsiz kullanıcıdan da alırız.

3.7 Hata (çökme) raporları

Uygulama çöktüğünde ya da beklenmeyen hata olduğunda yığın izi, hata kodu, uygulama sürümü, işletim sistemi/cihaz modeli gibi teknik bilgiler Sentry'ye gönderilir. Kullanıcı kimliği, e-posta, IP, ekran görüntüsü, ekran hiyerarşisi, gezinme izi ve ağ istekleri gönderilmez; hata iletilerindeki dosya yolu ve e-posta örüntüleri gönderilmeden önce temizlenir. Raporlar Sentry'nin AB bölgesinde (Almanya) tutulur ve 30 gün sonra silinir.

Her rapora bu kuruluma özel, rastgele üretilmiş bir destek kodu (ör. K7QX-M2PA) eklenir. Kod telefonda üretilir; hesabına, e-postana ya da cihazın reklam kimliğine bağlı değildir ve bizim sunucularımıza gönderilmez. Uygulamayı silip yeniden kurduğunda yeni bir kod oluşur. Kodu Ayarlar'da görebilirsin; geri bildirim formu onu mesajının sonuna ekler ve bunu formda gösterir. Bize bir sorunu bildirirken kodu yazarsan hata raporlarını bulup sorunu çözebiliriz; kodu paylaşmazsan raporlar seninle eşleştirilemez. Sentry projemizde IP adreslerinin saklanması kapalıdır; bağlantının IP adresi rapora kaydedilmez.

3.8 Reklamlar (yalnızca ücretsiz plan)

3.9 Geri bildirim formu

Yazdığın mesaj, isteğe bağlı e-posta adresin, uygulama sürümü ve platform (iOS/Android). Hesabın olsa bile hesap kimliğin gönderilmez. Yanıt istersen e-postanı yazarsın.

3.10 Destek yazışmaları

Bize e-posta atarsan adresin ve mesajın e-posta altyapımızda (alan adı yönlendirme + e-posta sağlayıcıları) işlenir.

3.12 Ailenle paylaş (isteğe bağlı; davet edilen izleyiciler)

Ücretli abone ("sahip"), seçtiği çocukların "Yalnız ben" olarak işaretlenmemiş anılarını davet ettiği kişilere ("izleyici") gösterebilir. İzleyici ücretsizdir, yalnızca Apple ya da Google ile giriş yapar ve yalnız görür: uygulama ona kaydetme, paylaşma ya da ekleme yolu vermez. Ekran görüntüsü engellenemez (sahibe uygulamada söylenir).

VeriKimin verisiNedenNot
Davet kaydı: bağlantı jetonu, 6 karakterli kod, paylaşılan çocukların kimlikleri, sahibin yazdığı isteğe bağlı etiket (en çok 40 karakter), oluşturma/bitiş/kabul/iptal zamanıSahipDavetin çalışmasıTek kullanımlık, 7 gün geçerli; kabul edilene kadar sahip iptal edebilir
Üyelik kaydı: sahip ve izleyici hesap kimlikleri, paylaşılan çocukların kimlikleri, durum (etkin / abonelik nedeniyle duraklatıldı / kaldırıldı), kabul ve kaldırılma zamanı, kimin kaldırdığı (sahip / izleyici / sistem)Sahip ve izleyiciKimin neyi göreceğini belirlemekİzleyici sınırı 4 / 6 / 10 (Gülümseme / Kıkırdama / Kahkaha)
İzleyicinin görünen adı (en çok 40 karakter) ve isteğe bağlı yakınlığı (büyükanne, büyükbaba — anne ya da baba tarafı —, hala/teyze, amca/dayı, diğer)İzleyiciSahibin listesinde kimin kim olduğu görünsünKabulde izleyici kendisi yazar; Apple/Google adı olmak zorunda değil. Sahip görür
İzleyicinin gördüğü içerik: paylaşılan çocuğun adı, doğum tarihi, avatarı; "Yalnız ben" olmayan anılar (fotoğraf, video, ses, başlık, not, kelime, kolaj)Çocuk ve sahipHizmetin kendisiYalnızca sunucuya yedeklenmiş içerik; ücretli planın bulut kopyasıdır, ayrı bir kopya yapılmaz. Medya dakikalar içinde süresi dolan imzalı bağlantılarla verilir
Sunucu tarafı ilk görüntüleme ve geri dönüş zamanı (ilk görüntülemeden 1 ila 7 gün sonra)İzleyiciToplu ölçüm: kaç izleyici arşivi açıyor ve geri dönüyorÜyelik satırında durur; sahibe gösterilmez, "son görülme" tutulmaz; panoya yalnız toplu sayı gider
Günlük okuma sayacı: sahip, izleyici, gün, verilen adres sayısı, bayt üst sınırıİzleyiciKötüye kullanımı ve olağan dışı yükü izlemekHangi anının açıldığı kaydedilmez
Dakikalık adres sayacıİzleyiciHız sınırı—
Davet kodu denemeleri: hesap kimliği, zaman, başarı, yol (kod / bağlantı)Deneyen hesapKod tahminini önlemekSaatte hesap başına 5 başarısız kod denemesi sınırı
Push kaydı (açan izleyiciler): Expo push jetonu, platform, uygulama dili, saat dilimi, oluşturulma/son görülme zamanlarıİzleyici cihazıAile özetini uygulamanın dilinde ve uygun yerel saatte iletmekHesap başına en çok 10. Jeton gizli sayılır (günlüğe yazılmaz, ölçüme gönderilmez). Aşağıdaki maddelere bak
Özet seçimi ve durumu: sahip başına günlük/haftalık/kapalı, son gönderim zamanı, sayılan en yeni anının işaretiİzleyiciKime ne zaman ne gideceğini belirlemek; çift bildirimi önlemekÜyelik bitince silinir
İzleyicilerin görebildiği her anının ilk paylaşılma zamanıSahibin anısıÖzet için neyin yeni olduğunu bilmekCihazın değil sunucunun saati; anıyla birlikte gider
İzleyici cihazında paylaşılan anıların önbelleğiİzleyici cihazıHızlı açılış, çevrimdışı görüntülemeBize ulaşmaz. Erişim kapanınca, çıkışta, hesap değişince ya da hesap silinince silinir; son başarılı erişim kontrolü 14 günden eskiyse gizlenir

3.11 İzinler

Fotoğraf erişimi yalnızca seçtiğin medyayı almak; kamera çekim için; mikrofon ses kaydı için; bildirim hatırlatmalar için ve seçen izleyicide aile özeti için (uygulama kısa bir açıklamadan sonra bir kez sorar, reddedersen ısrar etmez; telefon ayarlarından istediğin an değiştirebilirsin); Face ID/parmak izi uygulama kilidi için (biyometrik veriyi cihaz işler, bize gelmez); fotoğraf kitaplığına kaydetme kolaj dışa aktarımı içindir. Konum iznini istemiyoruz (Android'de konum ve genel depolama izinleri engellidir).

3.13 Bebeğini beklerken (isteğe bağlı)

Milkteeth'i bebeğin doğmadan önce de kullanabilirsin. Aşağıdakilerin hepsi isteğe bağlıdır; senin ya da senin izin verdiğin yakınlarının girdiği bilgilerdir.

VeriNedenNerede durur
Tahmini doğum tarihiBekleyiş zaman çizelgesi ve anıların hafta etiketleriTelefonunda; ücretli planda bulut yedeğinde de
Gebelik haftası (yalnız bir anıya elle girdiysen; girmezsen tahmini doğum tarihinden telefonda hesaplanır ve kaydedilmez)Anının hafta etiketiAnıyla birlikte: telefonunda; ücretli planda bulut yedeğinde de
Gerçek doğum tarihi ve, girdiysen, doğum saatiDoğuma geçiş; yaşa bağlı zaman kapsülünün açılma tarihiÇocuk profilinde: telefonunda; ücretli planda bulut yedeğinde de
Mektuplar (yazılı ya da sesli)Çocuğuna ileride okuyacağı ya da dinleyeceği bir mektup bırakmakDiğer anılar gibi; sesli mektubun dosyası, diğer ses kayıtları gibi “Medya yedeği” açıkken yedeklenir
Zaman kapsülü ayarları: açılma biçimi (sabit tarih ya da çocuğun yaşı), tarih ya da ay sayısı, açılma zamanıKilidin ne zaman kalkacağını belirlemekTelefonunda; ücretli planda sunucuda, yalnız senin okuyabildiğin bir tabloda
Aile katkıları: yazarın hesap kimliği (sana görünen adıyla gösterilir), mektup ya da dilek metni (en çok 4.000 karakter), sesli mektup kaydı, durum (bekliyor, onaylandı, reddedildi, gizlendi), oluşturma, düzenleme ve karar zamanıAilenin çocuğa mektup ve dilek bırakabilmesiSunucuda (Ailenle paylaş sunucu üzerinden çalışır); ses dosyası medya alanında
Aile tahminleri: isim fikirleri (en çok 5), doğum günü tahmini, “kime benzeyecek” seçimi, kısa not (en çok 280 karakter), yazarHafif, isteğe bağlı bir aile oyunuYakınlarının tahminleri sunucuda; aileyi davet etmeden girdiğin kendi tahminin diğer anıların gibi telefonunda (ücretli planda yedekte)
Albüm arşiv durumu ve o çocuk için aile erişiminin kapatılıp kapatılmadığıArşivlenen albümü ana ekrandan, hatırlatmalardan ve aile görünümünden çıkarmakTelefonunda; ücretli planda bulut yedeğinde de
Hatırlatma tercihleri (haftalık “yeni hafta” ve kapsül hatırlatması)Bildirimleri planlamakTelefonunda; bu bildirimler telefonunda kurulur, bizim üzerimizden geçmez

4. Çocuk verisi

5. Verilerini kimlerle paylaşıyoruz (alıcılar ve aktarım)

Verileri satmayız. Aşağıdakiler bizim adımıza işlem yapan hizmet sağlayıcılarıdır (Google AdMob hariç, o kendi amacı için de işleyebilir).

SağlayıcıNe içinHangi veriYerAktarım
SupabaseVeritabanı, giriş, sunucu fonksiyonlarıHesap, ücretli plan yedeği metin kayıtları (bekleyiş bilgileri ve zaman kapsülü ayarları dahil), aile katkıları ve tahminleri, abonelik hakkı, kod bağlantısı, anonim sayaçlar, geri bildirimSingapur (AWS ap-southeast-1)Türkiye ve AB dışına aktarım
Hetzner Online (Object Storage)Medya dosyası depolamaFotoğraf, video, ses, küçük resim, avatar (şifreli bağlantıyla, özel alan)Falkenstein, Almanya (AB)AB içi
RevenueCatAbonelik yönetimiMağaza satın alma verisi, müşteri kimliği, cihaz/IP bilgisiABD (RevenueCat Inc.)Yurt dışı aktarım
SentryHata raporlarıTeknik hata verisi ve rastgele destek kodu (§3.7)AB (Almanya; Sentry'nin AB veri bölgesi)Hizmet sağlayıcı ABD şirketi (Functional Software, Inc.)
Google (AdMob, UMP)Reklamlar, onay formuReklam/cihaz kimliği, yaklaşık konum, etkileşim (§3.8); yalnız ücretsiz planABD ve Google'ın diğer lokasyonlarıYurt dışı aktarım
Apple, Google (giriş ve mağaza)Giriş yapma, abonelik ödemesiSağlayıcıya bağlı—Kendi politikalarına tabidir
Expo (Expo Push Service; 650 Industries, Inc.)Aile özeti bildiriminin Apple/Google'a iletilmesi (açan izleyiciler)Expo push jetonu, başlık ve gövde (en çok üç çocuğun adı, sayı), sahibin hesap kimliğini taşıyan veri alanı, Android kanalı, geçerlilik süresiABDYurt dışına aktarım
Apple (APNs) / Google (Firebase Cloud Messaging)Bildirimin telefona ulaştırılmasıAynı ileti içeriği, cihaza giderkenABD ve diğer konumlarTelefonun bildirim kanalını sunan bağımsız sağlayıcılar; kendi koşulları
CloudflareAlan adı e-posta yönlendirme (destek kutusu), yönetim paneli barındırma.E-posta metadata/içerik (destek), panel trafiğiABD/küresel—
Resend + e-posta kutusu sağlayıcısıE-posta gönderme (silme öncesi hatırlatma e-postaları, destek yanıtı, yönetici daveti). Resend bizim adımıza işlem yapan e-posta sağlayıcısıdırE-posta adresi, mesaj (hatırlatma metni dahil)——

Davet ettiğin izleyiciler hizmet sağlayıcımız değil, senin seçtiğin alıcılardır: seçtiğin çocukların adı, doğum tarihi, avatarı ve "Yalnız ben" olmayan anıları (fotoğraf, video, ses, kelime, not, kolaj) onlara gösterilir; görünen adı ve yakınlığı senin listende görünür (§3.12). Katkı izni verdiğin yakınlarının bıraktığı katkılar önce yalnız sana gelir; sen onaylayıp ayrıca paylaşmadıkça başka izleyiciye gösterilmez (§3.13).

Hukuka uygun taleplerde yetkili mercilere veri verebiliriz. Şirket birleşme/devri halinde veri devralan tarafa geçebilir.

Yurt dışına aktarım

Hesap ve yedek verilerin Supabase altyapısında, Singapur’daki (AWS ap-southeast-1) sunucularda tutulur. Bu, verinin Türkiye ve Avrupa Birliği dışına aktarılması anlamına gelir. Medya dosyaları Almanya’daki (Hetzner) sunucularda tutulur.

Aşağıdaki tablo yukarıdaki sağlayıcı tablosuyla birebir eşleşir:

SağlayıcıVeri neredeTürkiye ve/veya AB dışına aktarım
SupabaseSingapur (AWS ap-southeast-1)Evet
Hetzner OnlineFalkenstein, Almanya (AB)Türkiye için evet, AB için hayır
RevenueCatABDEvet
SentryAB (Almanya)Türkiye için evet, AB için hayır
Google (AdMob, UMP)ABD ve Google'ın diğer lokasyonlarıEvet (yalnız ücretsiz plan)
Expo (aile özeti)ABDEvet (yalnız özeti açan izleyiciler)
Apple (APNs) / Google (FCM)ABD ve diğer konumlarEvet (yalnız özeti açan izleyiciler)
Cloudflare, ResendABD/küreselEvet

6. Ne kadar süre saklıyoruz

VeriSüre
Cihazdaki verilerSen silene veya uygulamayı kaldırana kadar
Hesap bilgisiHesabını silene kadar
Bulut yedeği (metin kayıtları ve medya)Aktif aboneliğin boyunca. Erişim bittikten sonra 60 gün; 14, 7, 3 ve 1 gün önce uyarılırsın (uygulama içi uyarı ve, izin verdiysen, telefonunda kurulan bildirim); ayrıca hesabında e-posta adresi varsa 30, 7 ve 1 gün önce o adrese e-posta gönderilir (Resend üzerinden; hesabına bildirim için kayıtlı son cihazın dilinde, kayıt yoksa İngilizce); bu hatırlatmalar için sunucudan push yok; sonra sunucudaki kayıtlar ve dosyalar silinir. Yenilenirsen sayaç iptal olur. Cihazdaki kopya silinmez.
Daha küçük pakete geçişte sığmayan bulut kopyaları90 gün okunur kalır; sonra sığmayan en eski bulut kopyaları kaldırılır. Telefondaki dosyalara dokunulmaz. Kota aşımında saklama süresi 90 gündür; paket küçültülürken ve süre boyunca uygulama içinde bildirilir.
Bekleyiş bilgileri, mektuplar, zaman kapsülü ayarları, arşiv durumuDiğer anılarla aynı: cihazda sen silene kadar; bulut yedeğinde yukarıdaki kurallar (erişim bittikten sonra 60 gün). Zaman kapsülü için ayrı ya da daha uzun saklama yoktur.
Aile katkılarıSahip kaldırana, yazar geri çekene ya da sahip hesabını silene kadar. Reddedilen, geri çekilen ya da 7 gün içinde onaylanmayan sesli katkının dosyası silinir. Üyelik bitince bekleyen katkılar reddedilmiş sayılır
Aile tahminleriYazar ya da sahip silene ya da sahip hesabını silene kadar
Hesap silme isteğiBulut kayıtları hemen silinir; medya dosyaları arka planda parça parça silinir (küçük yedekte normalde dakikalar; sunucu turda 25 nesne siliyor, günde yaklaşık 2.400, bu yüzden çok dosyalı hesapta günler sürer)
Abonelik, satın alma ve komisyon muhasebe kayıtlarıYasal saklama süresince; hesap silinince kişiye bağlantı koparılır
Ailenle paylaş: davet kaydıSüresi 30 günden fazla önce dolmuş tek kullanımlık davetler (kabul edilmişler dahil), sahip yeni davet oluşturduğunda silinir; sahip hesabıyla birlikte hepsi silinir
Ailenle paylaş: üyelik kaydıEtkin ve duraklatılmış üyelik: izleyici ayrılana, sahip kaldırana, çocuk silinene ya da biri hesabını silene kadar. Kaldırılmış üyelik kaydı (görünen ad, yakınlık, çocuk kimlikleri, kaldırma zamanı ve kimin kaldırdığı) iki hesaptan biri silinene kadar durur
Ailenle paylaş: ilk görüntüleme / geri dönüş zamanıÜyelik kaydıyla birlikte (aynı izleyici sahibin daveti ile yeniden katılırsa sıfırlanır)
Ailenle paylaş: günlük okuma sayacıHesap silinene kadar
Ailenle paylaş: dakikalık adres sayacıBir saatten eski satırlar izleyicinin sonraki okuma isteğinde silinir
Ailenle paylaş: davet kodu denemeleriBir günden eski satırlar bir sonraki başarısız denemede silinir (çağrı başına en çok 50)
Ailenle paylaş: push kaydı (jeton, platform, dil, saat dilimi)İzleyici çıkış yapana ya da hesabını silene kadar (ya da aynı telefonda başka bir hesap aynı jetonu kaydedene kadar). Expo'nun artık geçerli olmadığını bildirdiği jeton bir sonraki gönderimde silinir. Özeti "Kapalı"ya almak jetonu silmez. Uygulama her açılışta (günde en çok bir kez) kaydı tazeler; 30 gündür görülmeyen cihazın jetonu kullanılmaz ve sunucudan silinir (çıkış sırasında çevrimdışı kalınan durum dahil)
Ailenle paylaş: özet seçimi ve durumu (sahip başına)Üyelik bitene kadar (sonra silinir) ya da hesap silinene kadar
Ailenle paylaş: anının ilk paylaşılma zamanıAnıyla birlikte (anı, çocuk ya da hesap silinince gider)
Ailenle paylaş: özet günlük sayacıToplu; hesap/çocuk/jeton yok;
Ailenle paylaş: izleyici cihazındaki önbellekErişim kapanınca, çıkışta, hesap değişince ya da hesap silinince cihazdan silinir; çevrimdışıyken son başarılı erişim kontrolünden 14 gün sonra gizlenir
Hata raporları (Sentry)30 gün

7. Güvenlik

Aktarım TLS ile şifrelenir. Sunucu verileri satır düzeyinde yetki kurallarıyla korunur: hesap sahibi kendi verisine erişir; davet edilen izleyici yalnızca etkin üyeliği olduğu sahibin paylaştığı anılara erişir. Medya alanı özeldir; erişim kısa ömürlü imzalı bağlantılarla verilir. Yönetim paneli yalnız yetkili yöneticilere açıktır ve işlemler denetim günlüğüne yazılır. Hiçbir sistem tamamen güvenli değildir; ihlal halinde yasal bildirimleri yaparız.

8. Haklarınız (özet)

Verine erişme, düzeltme, silme, işlemeyi kısıtlama, itiraz, taşıma ve onayı geri çekme haklarına sahipsin; şikâyet hakkın vardır. Bu hakları kullanmak için support@milkteeth.app adresine yaz; talebin sana ait olduğunu doğrulamanı isteyebiliriz. Çocuğun verisi için başvuruyu velisi yapar. Türkiye'de ikamet ediyorsan KVKK m.11 kapsamındaki haklarını da aynı adresten kullanabilirsin; şikâyet için ülkendeki veri koruma otoritesine (Türkiye'de Kişisel Verileri Koruma Kurulu, AB/AEA/Birleşik Krallık'ta kendi ülkenin otoritesi) başvurabilirsin.

9. Verilerini nasıl silersin / dışa aktarırsın

10. Reklam ve ölçüm tercihleri

11. Değişiklikler

Önemli değişiklikleri uygulama içinde bildiririz. Güncel metnin tarihi başlıktadır.

12. İletişim

Milkteeth · support@milkteeth.app

Milkteeth Privacy Policy

Last updated: 27 October 2026

1. In short

2. Who we are

Controller:

3. What data we process

The table answers "what, why, how long, with whom".

3.1 Only on your device (never reaches us)

Your child's name and date of birth (and birth time, if you entered it), the estimated due date, pregnancy weeks you entered yourself, photos/videos/audio, titles, notes, letters (written and voice), time-capsule settings, first words, milestones, collages, the album archive status, preferences, the app-lock setting and reminder notifications live in the on-device database and file area. Reminder notifications are scheduled locally on the device and do not pass through us. The only remote (push) notification we send is the optional family summary for viewers (3.12). On the free plan all of this data falls in this category only.

3.2 Account (optional: Sign in with Apple / Sign in with Google)

DataWhyNote
Name (if the provider gives it), email address, sign-in provider, account ID (random UUID)Recognise your account, link backup and subscription to it; send the deletion-reminder emailsApple does not give the name after the first sign-in; the email may be hidden. We store no password.

Creating an account is not required. For a free user who does not sign in, no anonymous account is created on the server either (1.0.19 and later).

A viewer who arrives through an invite signs in the same two ways (Apple or Google); an invite cannot be accepted with an anonymous session. For the viewer's display name and optional relationship see 3.12.

3.3 Paid-plan backup

DataWhyCondition
Child name, date of birth (and birth time, if entered), estimated due date, album archive status and whether family access is switched off, memory records (type, date, title/note, letter text, word and context, duration, audio waveform, milestone, favourite, pregnancy week if entered by hand), time-capsule settings (unlock mode, date or age), collage definitions, certain preferences (language, reminder frequency, video quality etc., allow-list)Restore on a new phone, loss protectionSigned in + valid paid subscription
Photo, video, audio files, thumbnails, child avatarSameSigned in + a paid plan (Smile, Giggle, Laughter; each with its own backup space) + "Media backup" switch on

3.4 Subscription and purchases

DataSourceWhy
Purchase/subscription status, product ID, period and expiry, store transaction ID, amount and currency, trial/refund infoApp Store / Google Play via RevenueCatDetermine your plan entitlement, open/close backup allowance, accounting
RevenueCat customer ID (anonymous before sign-in; your account ID after)RevenueCatLink the subscription to your account

We never see your card or payment details; Apple/Google take the payment.

3.5 Discount codes and partner (influencer) codes

3.6 Anonymous measurement

The app sends counters that carry no identity: onboarding completed, first memory added, share made (type), paywall opened (from which need), purchase started/completed/cancelled, restore completed, backup file failed, child profile deleted, sign-in gate shown. For the family summary we count in the same way that the explanatory screen was shown, that the system permission was allowed or declined, and which choice (daily / weekly / off) was made. For the features you use while expecting a baby we likewise count only the type of event: expected baby added, birth recorded, time capsule created, family contribution sent or decided, guess saved, album archived; these events carry no date, pregnancy week, text or media address. The table holds only the event type and time; there is no user, child or device ID, and no child name, memory content, email or push token is sent. We collect this from free users who have no account too.

3.7 Error (crash) reports

When the app crashes or hits an unexpected error, technical information such as stack trace, error code, app version and OS/device model is sent to Sentry. No user ID, email, IP, screenshot, view hierarchy, navigation trail or network requests are sent; file paths and email patterns in error messages are scrubbed before sending. Reports are stored in Sentry's EU region (Germany) and deleted after 30 days.

Each report carries a randomly generated support code unique to this installation (e.g. K7QX-M2PA). The code is created on the phone; it is not tied to your account, your email or the device's advertising ID, and it is never sent to our servers. Reinstalling the app creates a new code. You can see the code in Settings; the feedback form adds it to the end of your message and shows you that it does. If you include the code when reporting a problem, we can find the matching error reports and fix the issue; if you don't share it, reports cannot be matched to you. IP address storage is turned off in our Sentry project, so the connection's IP address is not recorded with the report.

3.8 Ads (free plan only)

3.9 Feedback form

The message you write, your optional email address, app version and platform (iOS/Android). Even if you have an account, your account ID is not sent. If you want a reply, you add your email.

3.10 Support correspondence

If you email us, your address and message are processed in our email infrastructure (domain forwarding + email providers).

3.12 Share with family (optional; invited viewers)

A paying subscriber (the "owner") can show the memories of the children they choose, other than those marked "Only me", to people they invite ("viewers"). A viewer is free of charge, signs in only with Apple or Google, and can only look: the app gives them no way to save, share or add anything. Screenshots cannot be blocked (the owner is told so in the app).

DataWhoseWhyNote
Invite record: link token, six-character code, IDs of the shared children, an optional label the owner types (up to 40 characters), created/expiry/accepted/cancelled timesOwnerMake the invite workSingle-use, valid for 7 days; the owner can cancel until it is accepted
Membership record: owner and viewer account IDs, IDs of the shared children, status (active / paused because of the subscription / removed), accepted and removed times, who removed it (owner / viewer / system)Owner and viewerDecide who sees whatViewer limit 4 / 6 / 10 (Smile / Giggle / Laughter)
The viewer's display name (up to 40 characters) and optional relationship (grandma, grandpa — mother's or father's side —, aunt, uncle, other)ViewerSo the owner can tell who is who in their listThe viewer types it when joining; it need not be their Apple/Google name. The owner sees it
What a viewer sees: the shared child's name, date of birth and avatar; memories not marked "Only me" (photo, video, audio, title, note, word, collage)Child and ownerThe service itselfOnly content already backed up to the server (the owner's paid-plan cloud copy); no separate copy is made. Media is served through signed links that expire within minutes
Server-side first-view and return times (a return one to seven days after the first view)ViewerAggregate measurement: how many viewers open the archive and come backHeld on the membership row; not shown to the owner, no "last seen" is kept; only aggregate counts reach the dashboard
Daily read counter: owner, viewer, day, number of links issued, byte upper boundViewerWatch for abuse and unusual loadWhich memory was opened is not recorded
Per-minute link counterViewerRate limit—
Invite-code attempts: account ID, time, success, route (code / link)Account tryingPrevent code guessingAt most 5 failed code attempts per account per hour
Push registration (viewers who opt in): Expo push token, platform, app language, time zone, created/last-seen timesViewer's deviceDeliver the family summary in the app's language at a suitable local timeUp to 10 per account. The token is treated as secret (not written to logs or sent to measurement). See the bullets below
Summary choice and state: daily/weekly/off per owner, last-sent time, marker of the newest memory countedViewerDecide who gets what and when; avoid duplicatesDeleted when the membership ends
First-shared time of each memory viewers can seeOwner's memoryTell which memories are new for a summaryServer time, not the device's; goes with the memory
Cache of shared memories on the viewer's deviceViewer's deviceFast opening, offline viewingDoes not reach us. Deleted when access closes, on sign-out, on account change or account deletion; hidden if the last successful access check is older than 14 days

3.11 Permissions

Photo access only to import what you pick; camera to capture; microphone to record audio; notifications for reminders and, for a viewer who chooses it, for the family summary (the app asks once, after a short explanation, and does not keep asking if you decline; you can change this in the phone's settings at any time); Face ID/fingerprint for the app lock (the device handles biometrics, they never reach us); save-to-library permission only to export collages. We do not request location permission (location and broad storage permissions are blocked on Android).

3.13 While you are expecting (optional)

You can use Milkteeth before your baby is born, too. Everything below is optional; it is information entered by you or by relatives you have allowed to contribute.

DataWhyWhere it is kept
Estimated due dateThe waiting timeline and the week labels on memoriesOn your phone; on a paid plan also in the cloud backup
Pregnancy week (only if you entered it on a memory by hand; otherwise it is worked out on your phone from the due date and not stored)The memory's week labelWith the memory: on your phone; on a paid plan also in the cloud backup
Actual date of birth and, if you entered it, the time of birthRecording the birth; the opening date of an age-based time capsuleIn the child profile: on your phone; on a paid plan also in the cloud backup
Letters (written or voice)Leaving your child a letter to read or hear laterLike your other memories; the file of a voice letter is backed up, like other audio, while "Media backup" is on
Time-capsule settings: unlock mode (fixed date or the child's age), the date or number of months, the time it openedDeciding when the lock liftsOn your phone; on a paid plan on the server, in a table only you can read
Family contributions: the author's account ID (shown to you with their display name), letter or wish text (up to 4,000 characters), voice-letter recording, status (pending, approved, rejected, hidden), created, edited and decided timesLetting family leave letters and wishes for the childOn the server (Share with family works through the server); the audio file in the media area
Family guesses: name ideas (up to 5), a birthday guess, a "who will they look like" choice, a short note (up to 280 characters), the authorA light, optional family gameRelatives' guesses on the server; your own guess, entered without inviting anyone, on your phone like your other memories (in the backup on a paid plan)
Album archive status and whether family access is switched off for that childTaking an archived album off the home screen, out of reminders and out of the family viewOn your phone; on a paid plan also in the cloud backup
Reminder choices (weekly "new week" and time-capsule reminders)Scheduling notificationsOn your phone; these notifications are set up on your phone and do not pass through us

4. Children's data

5. Who we share data with (recipients and transfers)

We do not sell data. The following are service providers acting on our behalf (except Google AdMob, which may also process for its own purposes).

ProviderPurposeDataLocationTransfer
SupabaseDatabase, sign-in, server functionsAccount, paid-plan backup text records (including pregnancy information and time-capsule settings), family contributions and guesses, subscription entitlement, code link, anonymous counters, feedbackSingapore (AWS ap-southeast-1)Transfer outside Türkiye and the EU
Hetzner Online (Object Storage)Media file storagePhotos, video, audio, thumbnails, avatar (over an encrypted connection, private area)Falkenstein, Germany (EU)Inside the EU
RevenueCatSubscription managementStore purchase data, customer ID, device/IP infoUSA (RevenueCat Inc.)International transfer
SentryError reportsTechnical error data and random support code (section 3.7)EU (Germany; Sentry's EU data region)Provider is a US company (Functional Software, Inc.)
Google (AdMob, UMP)Ads, consent formAd/device ID, approximate location, interactions (section 3.8); free plan onlyUSA and other Google locationsInternational transfer
Apple, Google (sign-in and store)Signing in, subscription paymentProvider-dependent—Governed by their own policies
Expo (Expo Push Service; 650 Industries, Inc.)Relaying the family summary notification to Apple/Google (viewers who opted in)Expo push token, title and body (first name of up to three children, count), data field with the owner's account ID, Android channel, time-to-liveUSAInternational transfer
Apple (APNs) / Google (Firebase Cloud Messaging)Delivering the notification to the phoneThe same message content, in transit to the deviceUSA and other locationsIndependent providers of the phone's notification channel; their own terms
CloudflareDomain email forwarding (support inbox), admin panel hosting.Email metadata/content (support), panel trafficUSA/global—
Resend + mailbox providerSending email (deletion-reminder emails, support replies, admin invitations). Resend is an email provider that handles them on our behalfEmail address, message (including the reminder text)——

Viewers you invite are not our service providers but recipients you choose: the chosen children's name, date of birth, avatar and memories not marked "Only me" (photos, video, audio, words, notes, collages) are shown to them; their display name and relationship appear in your list (3.12). Contributions from relatives you allowed to contribute come to you first; they are not shown to any other viewer unless you approve them and also share them (3.13).

We may disclose data to competent authorities on lawful request. In a merger or transfer of the business, data may pass to the acquirer.

International transfers

Your account and backup records are kept on Supabase infrastructure, on servers in Singapore (AWS ap-southeast-1). This means the data is transferred outside Türkiye and the European Union. Media files are kept on servers in Germany (Hetzner).

The table below matches the provider table above one to one:

ProviderWhere the data isTransfer outside Türkiye and/or the EU
SupabaseSingapore (AWS ap-southeast-1)Yes
Hetzner OnlineFalkenstein, Germany (EU)Yes from Türkiye, no from the EU
RevenueCatUSAYes
SentryEU (Germany)Yes from Türkiye, no from the EU
Google (AdMob, UMP)USA and other Google locationsYes (free plan only)
Expo (family summary)USAYes (only viewers who opt in)
Apple (APNs) / Google (FCM)USA and other locationsYes (only viewers who opt in)
Cloudflare, ResendUSA/globalYes

6. How long we keep data

DataPeriod
Data on your deviceUntil you delete it or uninstall the app
Account informationUntil you delete your account
Cloud backup (text records and media)During your active subscription. 60 days after access ends; you are warned 14, 7, 3 and 1 day before (an in-app notice and, if you allowed notifications, a notification set up on your phone); in addition, if your account has an email address, we email it 30, 7 and 1 day before (through Resend, in the language of the last device registered for notifications on your account, English if there is none); no server push; then server records and files are deleted. If you renew, the countdown is cancelled. The copy on your device is not deleted.
Cloud copies that don't fit after moving to a smaller planStay readable for 90 days, then the oldest cloud copies that don't fit are removed. Files on your device are not touched. The retention period when over the limit is 90 days; you are told inside the app when you shrink the plan and during the period.
Pregnancy information, letters, time-capsule settings, archive statusSame as your other memories: on the device until you delete it; in the cloud backup, the rules above (60 days after access ends). There is no separate or longer retention for time capsules.
Family contributionsUntil the owner removes them, the author withdraws them or the owner deletes their account. The file of a voice contribution that is rejected, withdrawn or not approved within 7 days is deleted. When a membership ends, pending contributions count as rejected
Family guessesUntil the author or the owner deletes them, or the owner deletes their account
Account deletion requestCloud records are deleted immediately; media files are removed by a background cleanup that works in batches (normally minutes for a small backup; the server deletes 25 objects per run, about 2,400 a day, so a backup with many files takes days)
Subscription, purchase and commission accounting recordsFor the statutory retention period; the link to you is severed when you delete your account
Share with family: invite recordSingle-use invites that expired more than 30 days ago (including accepted ones) are deleted when the owner creates a new invite; all go with the owner's account
Share with family: membership recordActive and paused memberships: until the viewer leaves, the owner removes them, the child is deleted, or either deletes their account. A removed membership record (display name, relationship, child IDs, removal time and who removed it) stays until either account is deleted
Share with family: first-view / return timesWith the membership record (reset if the same viewer rejoins through a new invite from the owner)
Share with family: daily read counterUntil the account is deleted
Share with family: per-minute link counterRows older than one hour are deleted on the viewer's next read request
Share with family: invite-code attemptsRows older than a day are deleted on the next failed attempt (at most 50 per call)
Share with family: push registration (token, platform, language, time zone)Until the viewer signs out or deletes their account (or the same token is registered by another account on that phone). A token Expo reports as no longer valid is deleted at the next send. Switching the summary to "Off" does not delete it. The app refreshes the registration when opened (at most once a day); a device not seen for 30 days is no longer used and its token is deleted from the server (this also covers a phone that was offline at sign-out)
Share with family: summary choice and state (per owner)Until the membership ends (then deleted) or the account is deleted
Share with family: first-shared time of a memoryWith the memory (deleted with the memory, child or account)
Share with family: summary daily counterAggregate, no account/child/token;
Share with family: cache on the viewer's deviceDeleted when access closes, on sign-out, on account change or account deletion; hidden 14 days after the last successful access check while offline
Error reports (Sentry)30 days

7. Security

Transmission is encrypted with TLS. Server data is protected with row-level access rules: an account owner reaches their own data, and an invited viewer reaches only what an owner with an active membership has shared. The media area is private; access is granted through short-lived signed links. The admin panel is open only to authorised administrators and actions are written to an audit log. No system is fully secure; in case of a breach we make the legally required notifications.

8. Your rights (summary)

You have the rights to access, rectify, delete, restrict processing, object, port your data and withdraw consent, and you may complain to an authority. To use these rights, write to support@milkteeth.app; we may ask you to verify that the request is yours. For a child's data the request is made by the parent or guardian. If you live in Türkiye you can also exercise your rights under Article 11 of the KVKK at the same address; you can complain to your local data protection authority (in Türkiye the Personal Data Protection Board; in the EU/EEA/UK the authority in your country).

9. How to delete or export your data

10. Ad and measurement choices

11. Changes

We tell you about important changes inside the app. The date of the current text is in the heading.

12. Contact

Milkteeth · support@milkteeth.app

Datenschutz: wenn du ein Baby erwartest

Hier steht das Wichtigste dazu, wie Milkteeth mit den Angaben umgeht, die du während der Schwangerschaft machst.

Die vollständige Datenschutzerklärung und die Nutzungsbedingungen gibt es auf Türkisch und Englisch.

Confidentialité : si tu attends un bébé

Voici l’essentiel sur la façon dont Milkteeth traite les informations que tu saisis pendant la grossesse.

La politique de confidentialité complète et les conditions d’utilisation sont disponibles en turc et en anglais.

Privacidad: si esperas un bebé

Esto es lo esencial sobre cómo trata Milkteeth la información que introduces durante el embarazo.

La política de privacidad completa y las condiciones de uso están disponibles en turco e inglés.