MontessoriArc

Product Requirements Document

Calm Coloring — A Low-Stimulation, Tap-to-Fill Coloring App for Young Children

Status: Draft v1 — for build handoff Author: Atul (compiled from stress-tested product discussion) Target platforms: Android + iOS (phone & tablet), via Kotlin Multiplatform / Compose Multiplatform


1. Background & Why This Product Exists

An initial idea evaluation of “AI photo-to-coloring-page app for babies” scored 3.8/10 against the Minimalist Entrepreneur framework. Two disqualifying findings drove the pivot documented in this PRD:

The validated wedge instead: a genuinely calm, low-stimulation coloring experience. This is not a hunch — it’s a documented product category:

This PRD scopes a product built around that wedge: calm, tap-to-fill, low-stimulation, ad-free, privacy-first, age-appropriate coloring — nothing more for v1.


2. Goals

3. Non-Goals (v1)


4. Target User

Primary: Parents of children roughly 2.5–5 years old who are fatigued by ad-heavy, overstimulating, data-hungry kids’ apps and are willing to pay a small one-time or annual price to avoid that (validated pattern: Pok Pok’s pricing and press reception).

End user: The child, interacting via tap only — no drag, no multi-step gestures, no reading required.


5. UX & Interaction Design

5.1 Core interaction: tap-to-fill vector regions (not freehand, not raster flood fill)

5.2 Calm-design constraints (apply to every screen, not just the canvas)

Derived directly from the four-axis calm framework (sound / animation / reward / brightness):

Axis Rule
Sound No sound effects on fill, no background music by default, no sudden audio of any kind
Animation No unprompted motion anywhere in the UI; the only animation is the deliberate, slow color-settle on tap
Reward No confetti, no completion badges, no streaks, no “you did it!” popups engineered to prolong sessions
Brightness A small, fixed, muted/low-saturation color palette used everywhere — chrome, UI, and fill colors — no neon or high-contrast swatch grids like the happyclicks.net reference

Palette: define one small, fixed set of muted colors (target: 6–8 total swatches system-wide) rather than a large, saturated picker grid. Only the subset appropriate to the active age tier (§5.3) is shown to the child at once — this directly satisfies the requirement that the child never sees an overloading color selection.

5.3 Age-tiered complexity — two independent dials, not one

Earlier framing conflated “number of colors” with “template complexity” as a single age variable. These are two separate developmental axes and should be tuned independently:

Grounded against actual child-development and touch-UX research (NN/g; color-development literature):

Tier Region design Palette size Evidence basis Build priority
3–5 years Moderate region count; minimum touch target 2cm × 2cm (NN/g’s own minimum for this age, 4x adult recommendation) 3–6 muted colors This is the only age band with solid both motor-precision and color-naming research behind it — children reliably name multiple colors by 3–4, and NN/g’s touch-target research is built on this age group Build and validate first
2–3 years Very few, very large regions (1–3 per scene); oversized targets, no precision demanded ~2 colors Color-matching emerges 24–36 months; correct color identification ~30 months. Targeting precision below 3 has no solid research backing it, so this tier compensates by removing precision demands entirely Second phase, after 3–5 tier is validated with real users
1–2 years Not a targeting task — one giant region covering nearly the whole canvas so any tap anywhere succeeds 1 color No reliable touchscreen-targeting research exists below age 3. This tier is closer to a cause-and-effect toy than a “coloring” task Deferred / research spike only — do not commit to this tier in the v1 build plan

Recommendation: build the 3–5 tier as the actual MVP, get it in front of real children and parents, and only then decide whether to invest in the 2–3 and 1–2 tiers, rather than building all three up front.

5.4 Print


6. Technical Architecture

Stack: Kotlin Multiplatform + Compose Multiplatform, targeting Android and iOS (phone and tablet form factors), Skia-backed rendering on both platforms for consistent low-latency touch response.

Rationale (vs. WebView / React Native): the product’s entire value proposition depends on smooth, non-jarring touch response. WebView-based rendering introduces input latency and inconsistent fill/animation performance, especially on older Android tablets — directly undermining the calm-design thesis. React Native offers no advantage here either: custom region-fill rendering still requires native/Skia-level work regardless of framework, and there’s no existing investment in that stack to leverage. Compose Multiplatform lets the same touch-handling and canvas expertise already in-house (custom Android view systems) transfer directly, in one codebase, across both platforms.

Content pipeline:

  1. Templates are authored as SVGs with each fillable area as a separate closed <path>.
  2. SVGs are converted at build time to Compose Path/ImageVector objects using svg-to-compose (actively maintained, purpose-built for this).
  3. Each region is rendered from its Path, with per-region Color state driving the fill.

Interaction/animation:

Print/export: platform-native PDF generation via expect/actual (Android PdfDocument, iOS PDFKit/UIGraphicsPDFRenderer), rendering directly from the same vector path data used on-screen.

Backend: none required for v1. The app is fully offline — no server, no accounts, no analytics SDKs that collect device identifiers. This is a deliberate architectural choice that also substantially reduces COPPA compliance burden (see §8).

Before committing: do a final, current check of Compose Multiplatform’s iOS production maturity immediately before build start — it is broadly reported production-ready through 2026, but verify against the latest JetBrains release notes rather than taking this PRD’s snapshot as permanently current.


7. Content Requirements & Licensing


8. Privacy & Compliance


9. MVP Scope Summary

In scope for v1:

Explicitly out of scope for v1: AI photo-to-art, freehand drawing, confetti/reward effects, accounts/cloud sync/social sharing, 1–2 and 2–3 year tiers.


10. Validation Plan

Before full build investment, per the Minimalist Entrepreneur framework this product was evaluated against:

  1. Low-fidelity test of the tap-to-fill mechanic and muted palette with real 3–5 year olds and their parents — confirm the core interaction and calm-design choices land before building the full template pipeline.
  2. Mine actual 1–3 star App Store reviews of existing baby/toddler coloring apps to validate (or correct) the specific complaints this product is designed against, rather than relying on impression alone.
  3. Post-launch: track organic download response to “ad-free / no data collection” positioning specifically, since that is the differentiated value claim the pricing model depends on.

11. Open Risks & Unresolved Questions

These are carried forward deliberately rather than smoothed over — they need explicit decisions before or during build, not after: