Tuniri
A fully offline, privacy-first learning app for children aged 2–6. Alphabet, phonics, numbers, stories, a pet companion that grows with progress, and a Parent Dashboard — all with zero tracking and no internet required.
Problem
Children’s education apps in the 2–6 age range share a recurring pattern: they require internet, ask for an account, ship analytics SDKs, and frequently serve ads. Parents who want screen time that is genuinely safe — particularly for under-6s — are left choosing between paid walled gardens and apps whose data practices they cannot verify.
Tuniri’s design brief was simple: build a learning app that works from the first tap in airplane mode, collects nothing, and never shows an ad. The privacy promise had to be enforced by the architecture itself, not by a policy page.
Constraints
- COPPA & GDPR compliant by architecture — no telemetry, no identifiers, no PII collected at any point. Compliance is the absence of code, not a paragraph in a privacy policy.
- 100% offline — every feature, including the Parent Dashboard, must work with airplane mode on. No “lite” online fallback.
- Age 2–6 UX — users cannot read instructions. Every interaction has to communicate through visuals, audio, and touch alone.
- Cross-platform parity — single codebase to ship to both App Store and Google Play with no platform-specific feature drift.
- Multi-child households — one device, multiple kids. Per-child data must be cleanly separable and individually deletable by parents.
Key decisions
- Flutter for one codebase — single Dart codebase ships native-quality builds to both iOS and Android. The animation and gesture work needed for ages 2–6 (large tap targets, immediate visual feedback, sensory canvases) was straightforward in Flutter’s widget model.
- SQLite + AES-256 on-device — all learning data sits in a local SQLite database, encrypted at rest with AES-256. There is no server. Parents can wipe a child’s data per-profile with a single confirmation.
- Zero SDK rule — no analytics SDK, no ad SDK, no crash reporter that sends telemetry. The build is auditable by checking the dependency tree.
- Pet companion as progress metaphor — five animal companions (puppy, kitten, bunny, dragon, panda) grow through five visible stages as the child learns. Concrete progress beats abstract metres for a 3-year-old.
- 20 challenge types instead of one mechanic — letter find, word builder, rhyme time, number ordering, simple addition, and more. Variety keeps mastery from plateauing on a single pattern.
- Play Mode as a release valve — full-screen sensory canvas with nine effects (Bubbles, Fireworks, Paint Splat, Sparkle Trail, Confetti, Ripple, Stars, Rainbow, Animals). Pure tactile feedback, no learning load. Important counterweight to structured challenges.
- Calm & Bedtime Mode — muted palette, slower animations, ambient audio, gentle review of the day. Designed to end sessions, not extend them.
- Math gate on the Parent Dashboard — a simple arithmetic challenge separates the child-facing app from session history and weekly reports. No PIN to forget, no biometric to set up — just a problem most under-6s cannot solve yet.
Outcome
Tuniri ships on both the App Store and Google Play, runs entirely offline on either platform, and requires no signup. Mastery tracking, the pet companion, the Parent Dashboard, and per-child data deletion all run on-device.
The privacy guarantee is verifiable: flutter pub deps shows no analytics SDKs and no ad SDKs in the build graph. Compliance review for COPPA and GDPR is short because there is no data flow to assess.
The marketing site at tuniri.com summarises the position succinctly: we can’t misuse data we don’t collect.
What I’d do differently
The current build asset-bundles all challenge content, which keeps the offline guarantee simple but grows the install size linearly with content additions. The next architectural step is splitting the core app from a one-time content pack downloaded post-install — still offline after the first fetch, but with a much leaner initial install. Doing that without weakening the “works in airplane mode from the first tap” promise is the design challenge for the next major version.