Inspiration

A first visit to the dentist. A new classroom. A change in the morning routine. Each everyday moment can come with details a family wants to explain in advance.

For a caregiver of an autistic child, preparing a personal story means finding the right words, choosing familiar pictures, and thinking carefully about what their child already knows and what remains uncertain.

Mystoria began as my master's research project at the University of Washington. I wanted to make that preparation more approachable while keeping caregivers involved in every decision. The people who know a child best should be able to bring their knowledge, photographs, and voice into the story.

That idea became Mystoria, a native iPhone and iPad app for creating and reading personalized social stories together.

What it does

Mystoria brings the process from an everyday situation to a finished, personal story into one place.

  • Describe the moment. A guided brief collects the situation, relevant details, and what the story should explain.
  • Shape the words. AI provides an editable draft, and the caregiver reviews and changes the details before using it.
  • Make the pictures familiar. Add personal photos, turn familiar objects into cutouts, arrange them on the page, or generate illustrations and review each one.
  • Add a familiar voice. Record narration so the story can be read in the caregiver's own voice.
  • Read together. A calm reader presents one page at a time, with optional narration and a small practice activity after the story.
  • Return to the story. Organize stories in a library, plan reading, revisit reading history, and export stories as PDFs or editable files.

A story about school can include the child's actual backpack. A story about a new place can use words chosen by their caregiver. These details make personalization part of the whole experience.

How I built it

I built the native app with Swift, SwiftUI, and SwiftData. Stories save locally, with optional private cloud sync. I use Supabase to support authentication and backend services, while Cloudflare R2 stores cloud media.

Cloud writing and illustration generation use OpenAI through authenticated backend requests. Caregivers explicitly allow cloud generation and review the resulting text and pictures.

I also developed a task-specific model based on Google's Gemma 4 E2B, using LoRA supervised fine-tuning, quality-filtered refinement, and preference optimization. The app integrates an on-device model through Apple's MLX. It requires download a model and compatible hardware. Illustration generation remains a separate cloud feature.

RevenueCat manages Mystoria Plus subscriptions, entitlements, and purchase restoration. Families can begin with included cloud credits, while Plus adds recurring cloud-writing and illustration allowances. The backend checks entitlements and usage, connecting subscription access to the services that have ongoing generation costs.

Challenges I ran into

One challenge was handling what AI does not know. A fluent draft can invent a detail, assume how a child feels, or suggest a response that does not fit the situation. I built the creation flow around confirmed details, editable language, and visible review steps.

Visual personalization brought another challenge. A generated picture might look appealing while including an unfamiliar or incorrect object. Photo cutouts, page composition, and picture review give caregivers practical ways to shape what appears.

On-device generation required careful work on model size, memory pressure, downloads, cancellation, and recovery. Bringing a research model into a mobile app made device testing an essential part of the work.

Accomplishments I'm proud of

I am proud of bringing writing, familiar photos, illustrations, recorded narration, and shared reading into a connected native experience.

An earlier Mystoria prototype was explored in a formative study with four parents. Its mean System Usability Scale score was 95.6 out of 100. This was a small study of caregiver authoring and usability.

The study also revealed a gap between how usable the tool felt and how well generated drafts followed the assessed writing criteria. That finding made editing, review, and careful evaluation central to the project's direction.

What I learned

Personalization depends on knowing which details matter and giving people meaningful control over them. A familiar object, a carefully chosen sentence, and a recognizable voice each offer a different way to make a story personal.

I also learned to evaluate the interface and the generated content separately. An easy-to-use app still needs thoughtful content review, and a model that performs well in research still needs testing on the devices people will use.

What's next for Mystoria

My next priorities are continued caregiver feedback, improvements to drafting and illustration consistency, and broader device testing for the local LLM.

Longer-term evaluation will explore how families use and adapt stories over time, with child understanding and everyday usefulness treated as questions to study carefully.

Built With

  • ai
  • cloudflare-r2
  • gemma
  • llm
  • mlx
  • openai
  • revenuecat
  • storekit
  • supabase
  • swift
  • swiftdata
  • swiftui
Share this project:

Updates

Submission history