Production
Live on the App Store Case study

Bedtime Snuggles

An AI children’s storytelling app for iPhone and iPad. Stories are generated on-device with Apple Intelligence, with privacy built into the architecture rather than promised in a policy.

PlatformiPhone · iPad StatusLive · App Store GenerationOn-device StackSwiftUI · Foundation Models · SwiftData
Bedtime Snuggles app screen showing a generated children's story

01Problem

Parents want fresh, personalized bedtime stories, but a children’s app that sends a child’s name, interests, and prompts to a cloud service raises real privacy concerns — and depends on connectivity at the exact moment a child is going to sleep. The challenge was to deliver personalized, on-demand stories without collecting data or requiring an account or network connection.

02Product

Bedtime Snuggles generates personalized bedtime stories on the device. A parent provides a few inputs; the app produces a complete, age-appropriate story locally. There are no accounts, and the app does not collect or upload personal data.

03Architecture

The privacy boundary is the device. No story content, inputs, or identifiers cross the network.

04Engineering decisions

Why on-device generation?

The users are children. Keeping generation local removes an entire class of data-handling and compliance risk, and keeps the app working offline at bedtime.

Why Apple Foundation Models?

Apple Intelligence provides a system-level, on-device language model, so the app ships without bundling or downloading its own weights, and inference uses the device’s existing acceleration.

Why SwiftData for storage?

Saved stories are structured local records with a simple object model. SwiftData keeps persistence native and on-device, with no server to synchronize.

What happens when the model is unavailable?

On-device model availability depends on device and OS support. The app checks capability up front and communicates clearly rather than silently failing when generation can’t run.

What are the privacy boundaries?

Everything — inputs, generation, and saved stories — stays on the device. There are no accounts and no analytics collecting personal data.

How is output kept appropriate?

Generation is guided with structured prompting and constrained output so stories stay age-appropriate and consistently formatted.

05Implementation

  • Generation — guided prompting against Apple’s Foundation Models with constrained, structured output.
  • UI — built in SwiftUI, with a reading flow designed for a calm bedtime context.
  • Persistence — saved stories modeled and stored locally with SwiftData.
  • Capability handling — on-device model availability is detected and handled explicitly.

06Production

  • Published and live on the App Store.
  • Runs entirely on-device; no backend to deploy or operate.
  • No accounts and no personal data collection.

07Current status

Live production   Available on the App Store and in active maintenance.