04 · SYSTEM
The PWA is offline-first. A service worker caches the evening's story so bedtime is never held hostage by a flaky connection. Push arrives at the household's configured time, and the story is already on the device when the child taps the notification.
Personalization lives in Postgres, scoped per-tenant. Names, ages, favorite characters, and reading history are stitched into a prompt on the server, pseudonymized at the boundary, and only the sanitized version crosses the wire to GPT-4o. The model returns a narrative; the server rehydrates the real names before rendering.
Characters, themes, audio profiles, and parent controls are all per-tenant from day one. The product happens to have one household in production. It could have a thousand tomorrow without a schema change.