Glint — parent-first family utility для екранного часу
!Release correction — 2026-08-15
Наведені нижче рішення замінюють усі суперечливі вимоги історичного ТЗ v1.1 для поточного source candidate 1.0 (63). A63 має статус development-artifact-ready-hold, а публічний реліз — HOLD. Старі розділи про A61/A62, launch Premium, платні Screen Time рівні та спільний cross-product runtime зберігаються лише як historical-only discovery/source record і не є поточним release scope.
Build 63 — Family Review. RevenueCat 5.80.3 обслуговує
Family Review, а Screen Time залишається безкоштовним. Поточний статус —
development-artifact-ready-hold; реліз — HOLD.
лише опціональну щотижневу Family Review для підтвердженого guardian у
host apps GlintKids і GlintParent. Child runtime та extensions не мають
commerce. Усі Screen Time можливості, вибір app/category bucket, shield,
квести, схвалення, зароблені хвилини, запуск сесії, денні правила та
автоматичне повторне блокування безкоштовні й не залежать від entitlement.
Текст Family Review зберігається лише на guardian device, current + 11
записів, виключений із backup і не надсилається до RevenueCat, Supabase чи
child. Неактивний або недоступний entitlement зберігає read/export; active
entitlement дозволяє write. Release RevenueCat public SDK key порожній,
тому Distribution archive/upload/submission заборонені до його перевіреного binding і
всіх поточних distribution/privacy/deletion доказів. Один signed
Development artifact з exact clean source
d2cc8d9551a45b1b1f02f0a4d80e344ab6863c47 незалежно READY, але
не встановлений. It is not a Distribution archive or
TestFlight/App Store evidence. Production aligned:
24 migrations, pairing v15, sync v7, lifecycle v11; schema-13 smoke PASS
із шістьма нульовими residue counters. Physical R0–R8 лишається 0/2,
A63 install/device proof відсутній, guardian deletion та active-commerce
schema-6 лишаються HOLD. Screen Time і всі
пов'язані функції безкоштовні. Статус кандидата —
development-artifact-ready-hold; реліз лишається HOLD.
Device-neutral proof. Поточна операторська мова: guardian/adult device та adult-operated managed-child iPhone or iPad. Другий iPhone, Face ID або участь неповнолітньої дитини в TestFlight не є вимогою.
DuetNest/API bridge — post-v1 architecture only. Можливий consented read-only family-time summary проходить лише через company-owned Integration Gateway. Public v1 не містить DuetNest runtime, спільної бази, service-role ключів, user tokens або спільного App Group. DuetNest не може approve, block, unlock чи змінювати Screen Time rules; opaque Apple tokens, readable app identity, raw DeviceActivity та PII не виходять за межі Glint. Реалізація можлива лише після окремого consent, deletion, revocation, privacy та rollout review.
Shipping contour. Публічний продукт — один app
com.160418.glint.kids з Guardian і Child modes.
GlintParent є development/UI-test harness і не входить до
App Store binary. Консультація Apple є advisory input, а не preapproval;
реліз визначається точним signed/uploaded artifact і перевіреними gates.
!Release correction — 2026-08-11
Наведені нижче рішення замінюють усі суперечливі вимоги історичного ТЗ v1.1 для поточного source candidate 1.0 (62). A62 має статус source-ahead-hold, а реліз — HOLD. Старі розділи про launch Premium, платні Screen Time рівні та спільний cross-product runtime зберігаються лише як історія discovery та не є поточним release scope.
Build 62 — Family Review. RevenueCat 5.80.3 обслуговує
Family Review, а Screen Time залишається безкоштовним. Поточний статус —
source-ahead-hold; реліз — HOLD.
лише опціональну щотижневу Family Review для підтвердженого guardian у
host apps GlintKids і GlintParent. Child runtime та extensions не мають
commerce. Усі Screen Time можливості, вибір app/category bucket, shield,
квести, схвалення, зароблені хвилини, запуск сесії, денні правила та
автоматичне повторне блокування безкоштовні й не залежать від entitlement.
Текст Family Review зберігається лише на iPhone guardian, current + 11
записів, виключений із backup і не надсилається до RevenueCat, Supabase чи
child. Неактивний або недоступний entitlement зберігає read/export; active
entitlement дозволяє write. Release RevenueCat public SDK key порожній,
тому archive/upload/submission заборонені до його перевіреного binding і
всіх поточних distribution/privacy/deletion доказів. Screen Time і всі
пов'язані функції безкоштовні. Статус кандидата —
source-ahead-hold; реліз лишається HOLD.
DuetNest/API bridge — post-v1 architecture only. Можливий consented read-only family-time summary проходить лише через company-owned Integration Gateway. Public v1 не містить DuetNest runtime, спільної бази, service-role ключів, user tokens або спільного App Group. DuetNest не може approve, block, unlock чи змінювати Screen Time rules; opaque Apple tokens, readable app identity, raw DeviceActivity та PII не виходять за межі Glint. Реалізація можлива лише після окремого consent, deletion, revocation, privacy та rollout review.
Shipping contour. Публічний продукт — один app
com.160418.glint.kids з Guardian і Child modes.
GlintParent є development/UI-test harness і не входить до
App Store binary. Консультація Apple є advisory input, а не preapproval;
реліз визначається точним signed/uploaded artifact і перевіреними gates.
01Decision memo
Bottom line. Glint має сильний wedge: дитина заробляє екранний час реальними справами. Це сильніше за chore-app і тепліше за control-app. Але без gates, distribution і moat це шлях до хорошого B2C exit, не до великої сімейної платформи.
Рекомендація. Йти далі, але не будувати повний MVP до Phase 0. Рішення є Type 1-ish через нативний стек, Apple entitlement, дитячі фото і COPPA. Phase 0 перетворює ризик на набір Type 2 gates.
Перший артефакт продукту — не polished app, а доказ, що Apple Family Controls entitlement, real-device enforcement і parental-consent/privacy model не блокують концепцію.
ТЗ переписано навколо gates: parent-first позиціонування, Family OS амбіція, урізаний MVP, AI fallback, ephemeral photo processing, окрема модель screen-time credits і явний distribution/moat шар.
02Продуктова теза
Проблема. Щоденні конфлікти за iPad/Roblox/YouTube виснажують сім'ю. Apple Screen Time технічно існує, але він складний, каральний і не створює у дитини відчуття agency.
Рішення. Glint переводить екранний час із поля бою у сімейну економіку: дитина заробляє хвилини реальними справами, батько задає межі, система застосовує правила локально на пристрої.
Wedge. Головна валюта MVP — не абстрактні бали, а хвилини бажаного екрану. У дитячому UI це може називатися іскрами, але продуктова правда така: 1 spark = 1 minute або нагорода прямо показується як +15 min.
Амбіція. Glint стартує як screen-time wedge, але проектується як Family OS: screen time → відповідальність → allowance/fintech → autonomy/trust ledger. Без цього він лишається маленьким subscription app.
Glint — parent-first family utility. Дитина має теплий companion loop, але покупець, довіра, consent, privacy і value prop сидять у батька.
03Цілі та метрики
North Star
Кількість сімей, де Glint щотижня реально enforcement-регулює екранний час: active enforcing families.
Phase 0 gates
| Gate | Поріг | Чому |
|---|---|---|
| Entitlement / App Review feasibility | Не блокує real-device TestFlight spike | Без цього core продукт не існує |
| Real-device enforcement | Authorize → select bucket → shield → unlock → offline reset працює | Це єдиний технічний moat MVP |
| Guided setup completion | ≥ 50% у 10–15 concierge families | Setup — найбільша точка втрати |
| D7 active families | ≥ 40% | Чи входить у побут |
| Parent daily workload | ≤ 2 хв/день на approvals | Батько не має стати оператором системи |
| Willingness to pay | Вибір $6.99/mo або $49.99/year після annual-only 14-day trial | Без WTP це feature, не бізнес |
MVP operating metrics
| Метрика | Ціль | Сенс |
|---|---|---|
| Onboarding completion | ≥ 55% | Parent → kid device paired → enforcement live |
| D7 active families | ≥ 40% | Раннє утримання |
| Trial → paid | ≥ 8–10% | Початковий paid signal |
| Auto / parent-approved completion | ≥ 80% без конфлікту | Система знижує тертя, навіть якщо AI не завжди вирішує |
| Monthly churn | ≤ 8% | Категорія тримається на retention |
04Користувачі та позиціонування
| Роль | MVP | Права |
|---|---|---|
| Primary Guardian | MVP | Створює сім'ю, додає одну дитину, налаштовує device pairing, бакети, ліміти, approval queue і підписку. |
| Child | MVP | Бачить доступні хвилини/іскри, виконує квести, надсилає proof, витрачає час у дозволених бакетах. |
| Co-Guardian | v1 | Другий батько/опікун, approvals, перегляд, часткове керування. Не входить у MVP. |
Не позиціонувати як child-first Kids Category без окремого рішення. У v1.1 Glint є parent-first utility з child companion, parental gates, мінімальним data collection і корисністю для батька незалежно від дитячого entertainment шару.
MVP — діти 6–12. 13–14 можна підтримати тоном і налаштуваннями, але основний loop має працювати для молодших сімей, де конфлікт за екран найбільш повторюваний.
05Scope: gates / MVP / v1
| Модуль | Фаза | Рішення |
|---|---|---|
| Family Controls entitlement + real-device enforcement spike | Phase 0A | Бінарний gate перед UI/MVP |
| 10–15 сімей concierge desirability test | Phase 0B | Перевірити setup, D7, конфлікти, WTP |
| One guardian, one child, one paired device | MVP | Скоротити координаційну складність |
| Screen-time rewards: base+bonus до daily cap | MVP | Earned-only надто каральний |
| Bedtime/downtime override | MVP | Здоровий sleep boundary сильніший за earned time |
| Quest templates + custom quest | MVP | Швидкий старт без довгого setup |
| Approval queue + optional AI assist | MVP | AI не є єдиною опорою core loop |
| Subscription trial after enforcement live | MVP | Paywall тільки після доказу value |
| Dream goals | v1 | Винести з MVP, щоб не розмити валюту часу |
| AI parenting copilot | v1 | Sticky layer після core retention |
| Graduation, levels, badges, streaks | v1 | Не до доказу loop |
| Full co-parent / multi-home | v1 | Складність ролей після single-family MVP |
| Android | Phase 3 | Окремий слабший enforcement path |
| Fintech / card / allowance | Phase 3 | Потенційний Family OS expansion, не початковий proof |
| Бал слухняності, рейтинг дитини, соц-стрічка | Never | Токсично для довіри і brand promise |
06Ключові сценарії
6.1 Phase 0A: technical spike
Подати Family Controls entitlement з чітким use case: parent-approved screen-time management for family wellbeing.
На реальному дитячому пристрої пройти FamilyControls authorization через guardian approval.
FamilyActivityPicker → opaque tokens → локально зберегти bucket label і token selection.
ManagedSettings блокує обраний bucket після base limit або schedule rule.
Додати earned minutes, зняти shield до cap, потім повернути shield.
Offline, new day reset, app reinstall, permissions revoked, tamper/uninstall behavior.
6.2 Parent onboarding
Apple Sign-In або email. Створюється primary guardian і family.
Ім'я, вік, avatar/card color. Мінімум персональних даних.
Рекомендований Protected Family використовує child Apple Account + Family Sharing. Cooperative Device дозволяє звичайному iPhone добровільно авторизувати Glint локально, але без anti-tamper гарантії.
Guided flow із чіткими failure states: Family Sharing missing, permissions denied, unsupported iOS, authorization revoked. Product pairing не замінює системний дозвіл Apple.
Батько називає бакети: Games, Videos, Social. Сервер не показує ідентичність apps дитині чи аналітиці.
Base daily limit, bonus cap, bedtime/downtime, weekday/weekend profiles.
3 шаблони з default minutes. Trial/paywall активується тільки після enforcement live.
6.3 Child daily loop
Бачить available minutes, today cap, іскри як skin, Glo як companion.
Шаблон або призначений квест. Reward показується як конкретні хвилини.
Для MVP proof може бути фото, parent check або lightweight self-report залежно від task type.
High-confidence AI → auto suggest; low-confidence або sensitive image → parent approval. Parent can override.
Після approval: +N minutes, локальний unlock bucket, але не вище daily cap і не під час downtime.
6.4 Parent daily use
Parent dashboard: “All on track”, minutes earned, approvals waiting, no surveillance wall.
Edge cases з before/after або short proof, one-tap approve/reject, reason optional.
Parent changes limits, pause/unpause bucket, bedtime remains override.
07Функціональні вимоги
7.1 Onboarding & setup
- must Apple Sign-In + email auth для primary guardian.
- must Створення family, додавання однієї дитини в MVP.
- must Два явні режими: Protected Family через
FamilyControlsMember.childі Cooperative Device черезFamilyControlsMember.individual. - must Protected Family є default і єдиним режимом із anti-circumvention claim. Cooperative Device не можна називати tamper-proof parental control.
- must Guided failure states: Family Sharing missing, permission denied/revoked, unsupported iOS, entitlement unavailable, cooperative device offline/deleted.
- must Consent capture до збору child personal data або фото.
7.2 Screen-time economy
- must Головна валюта — хвилини. Іскри в MVP є visual skin, не окрема економіка.
- must Default conversion:
1 spark = 1 minute, якщо UI використовує іскри. - must Base daily limit + earned bonus + daily cap.
- must Bedtime/downtime override сильніший за earned minutes.
- must Screen-time credit ledger окремо від cosmetic spark ledger.
7.3 Quests
- must Бібліотека шаблонів: room reset, homework, teeth, dishes, reading, outdoor time.
- must Кастомний quest: title, icon, reward minutes, recurrence, proof type.
- must Default reward suggestions rules-first; AI calibration optional, not blocking.
- must Proof type: none/self-report, parent approval, single photo, before/after photo.
7.4 Enforcement
- must FamilyActivityPicker для bucket selection.
- must ManagedSettings для shield/unshield selected buckets.
- must DeviceActivityMonitor для limit reached, new day reset, schedule boundaries.
- must Shield screen з Glint brand і дією “earn more”.
- must Local enforcement працює offline; server sync не має бути single point of failure.
7.5 Subscription
- must Launch pricing: $6.99/mo або $49.99/year; 14-day trial лише на annual.
- must Trial/paywall після enforcement live і першої зрозумілої перемоги, не на старті setup.
- must RevenueCat поверх StoreKit 2: offering, entitlement, purchase, restore і server-notification path.
08Архітектура
8.1 Клієнти
| Застосунок | Технологія | Причина |
|---|---|---|
| Glint Parent | Native SwiftUI | Довіра, permissions, RevenueCat/StoreKit, consistency з child app. |
| Glint Kids | Native SwiftUI + Family Controls extensions | Enforcement, Shield Configuration, DeviceActivityMonitor. |
Core enforcement залежить від FamilyControls, ManagedSettings і DeviceActivity. Web wrapper не є технічним шляхом для MVP.
8.2 Opaque tokens
FamilyActivityPicker повертає opaque app/category/web tokens. Glint не має будувати value prop на знанні конкретних apps.
- Батько створює людські labels: Games, Videos, Social.
- До Phase 0 не припускати, що token sets треба або можна безпечно зберігати на backend.
- Default architectural stance: token selection зберігається локально на child device; server зберігає label, policy metadata і enforcement status.
- Якщо sync token sets потрібен, рішення приймається тільки після spike і privacy review.
8.3 Backend
- Supabase Postgres для family, child, quest, credit, consent, audit data.
- Supabase Auth для guardian accounts; child device session має бути scoped і мінімальний.
- Supabase Storage лише для короткого photo-processing window; retention/deletion status обов'язковий.
- Edge Functions для reward rules, AI calls, APNs payloads, retention jobs.
- APNs для parent/child notifications.
8.4 Модель даних
| Сутність | Ключові поля / рішення |
|---|---|
family | id, primary_guardian_id, subscription_status, created_at |
guardian | id, family_id, role, auth_provider, email, consent_contact |
child | id, family_id, display_name, age_band, card_theme, created_at |
child_device | id, child_id, platform, os_version, enforcement_mode, family_sharing_ok, authorization_status, enforcement_active, last_seen_at, last_sync_at |
managed_bucket | id, child_id, label, local_token_reference, sync_policy, active |
screen_rule | child_id, base_limit_minutes, bonus_cap_minutes, daily_cap_minutes, bedtime_schedule |
quest | id, family_id, title, icon, reward_minutes, recurrence, proof_type, assignee_id |
submission | id, quest_id, child_id, status, proof_type, submitted_at, approved_by |
screen_time_credit | id, child_id, delta_minutes, source_type, source_id, expires_at, consumed_at |
spark_ledger | id, child_id, delta, reason, cosmetic_only, ts |
consent_record | id, guardian_id, child_id, consent_type, notice_version, granted_at, revoked_at |
photo_processing_job | id, submission_id, storage_ref, provider, status, ai_result, delete_by, deleted_at |
retention_event | id, entity_type, entity_id, action, scheduled_for, completed_at, result |
approval | id, submission_id, guardian_id, decision, reason, ts |
09AI та фото
9.1 AI stance
AI photo verification is useful, but it must not be the only support beam. Third-party vision over children's room photos is compliance and App Review risk; MVP must work with parent approvals if AI is delayed, rejected, inaccurate, or expensive.
9.2 Verification paths
| Path | Коли | Рішення |
|---|---|---|
| Parent approval | Default fallback, low confidence, sensitive photo | One-tap approve/reject, ≤2 хв/день target |
| AI assisted | Low-risk photo tasks, consent present | Returns {verified, confidence, reason}; parent can override |
| No-photo proof | Reading, outdoor time, teeth, tiny chores | Self-report + parent spot-check або timer |
9.3 Photo handling
- must In-app camera для photo proof; no gallery upload in MVP.
- must Explicit parental consent before photo processing.
- must Ephemeral storage: process → approve/queue → delete by policy.
- must Retention/deletion status visible in backend audit tables.
- must Child-safety filter before AI result is used in product flow.
10Compliance & privacy
Дані дітей + фото кімнат + AI provider = не деталь реалізації. Це core architecture. Продукт має збирати мінімум даних, мати батьківську згоду, deletion flow і зрозумілу політику third-party sharing.
- COPPA: direct notice, verifiable parental consent where required, parent review/delete rights, no unnecessary data collection.
- Apple Kids/privacy: parental gates for child actions that leave safe child experience; privacy policy; no behavioral ads; third-party SDKs only if compatible with kids/privacy constraints.
- GDPR-K: потрібен перед EU launch або якщо EU users потрапляють у продукт.
- No ads: жодної поведінкової реклами, жодного продажу даних.
- Opaque tokens: не перетворювати app usage на surveillance продукт. Це family boundaries utility, не monitoring dashboard.
- Security: encryption in transit/at rest, scoped child sessions, audit logs для consent/deletion/admin actions.
11Distribution & moat
11.1 GTM thesis
Distribution message стартує з однієї гострої обіцянки: stop daily screen-time fights. Не “family productivity”, не “chores”, не “better habits” як головний message.
| Channel | MVP test | Why it might work |
|---|---|---|
| Parent creators / TikTok / Reels | Before/after conflict story + waitlist | Проблема емоційно видима, shareable, повторювана |
| Parenting newsletters / communities | Concierge cohort recruitment | Дає якісний feedback і WTP interviews |
| App Store search | Screen time / parental control intent | Низька масштабність, але зрозумілий demand capture |
| School / therapist partnerships | Не MVP | Може стати trust channel, але довгий sales cycle |
11.2 Moat path
- Data effect: anonymized quest/reward calibration by age/task/family pattern, без surveillance data.
- Behavioral moat: screen-time rules become household operating rhythm.
- Trust brand: parent-first, anti-surveillance, no ads, minimal data.
- Platform expansion: allowance/fintech and trust ledger only after screen-time wedge proves retention.
Screen-time subscription alone is not a $100B path. Family OS might be. The wedge is valid only if it compounds into trust, money, responsibility and autonomy infrastructure.
12Roadmap & validation
| Фаза | Орієнтир | Вихід |
|---|---|---|
| Phase 0A · Technical | 2–3 тижні | Entitlement request + real-device enforcement spike: authorize, bucket, shield, unlock, offline, tamper. |
| Phase 0B · Desirability | Паралельно | 10–15 сімей concierge test, script: “your kid earns Roblox/YouTube time by doing real things”. |
| Phase 1 · MVP | 10–12 тижнів після gates | One guardian/child/device, base+bonus, buckets, quests, approvals, optional AI assist, subscription trial. |
| Phase 2 · v1 Platform | 8–10 тижнів | Co-parent, dream goals, graduation, gamification, copilot, richer notification intelligence. |
| Phase 3 · Expansion | Після retention | Android, allowance/fintech, trust ledger, school/partner distribution. |
Go / no-go до MVP
- Apple entitlement і TestFlight не блокують core enforcement.
- Real-device enforcement працює offline і переживає common edge cases.
- ≥50% concierge families проходять guided setup.
- ≥40% сімей активні на D7.
- Parent approval workload ≤2 хв/день.
- Є чіткий WTP signal на $6.99/mo або $49.99/year після annual-only trial.
Monday morning
- Подати Family Controls entitlement.
- Створити bare SwiftUI spike без UI polish.
- Запустити 10-family concierge test з одним message: “Stop daily screen-time fights”.
13Ризики та джерела
Pre-mortem
| Як це помре | Сигнал | Мітигація |
|---|---|---|
| Apple не дає entitlement або App Review блокує flow | Delay/rejection у Phase 0 | Не писати MVP до spike; alternative concept: parent-approved rewards без hard enforcement |
| Setup занадто складний | <50% completion | Guided setup, concierge onboarding, cut scope to one child/device |
| AI фото створює compliance risk | Parent distrust або review concern | Parent approval fallback, limited photo tasks, ephemeral processing |
| Дитина обходить систему | Frequent permission revoke/uninstall/tamper | Measure in spike, parent alerts, no promise beyond Apple enforcement limits |
| Retention слабкий після novelty | D30 low, churn high | Family OS v1: co-parent, graduation, allowance/trust expansion only after retention proof |
| Distribution не масштабується | CAC вище LTV | Creator-led conflict storytelling, parent communities, sharp promise, annual plan |
What would change the plan
Якщо Apple/App Review не приймає third-party AI photo flow або Family Controls entitlement затягується/відхиляється, Glint треба різко перезібрати: parent-approved rewards без AI, або інший wedge поза hard enforcement.
Sources
- Apple Family Controls entitlement — distribution requires requesting Family Controls entitlement.
- Apple authorization request — Family Controls supports child and individual authorization contracts.
- Apple individual member — ordinary-device authorization is local and does not add child anti-circumvention restrictions.
- Apple child member — managed child authorization uses the Family Sharing guardian flow.
- Apple Kids guidance — age-appropriate experiences, parental gates, child-data expectations.
- App Review Guidelines 5.1.4 — privacy and kids data constraints.
- FTC COPPA Rule amendments — parental notice/consent, review/delete rights, retention controls.