YotoShelf

Public roadmap

What's shipped. What's next.

YotoShelf is an open-source project built to solve a real problem for one family and open-sourced for others in the same situation. This page is an honest accounting of what works today and what is still being built.

Shipped

Live today

These features are running on main and have been verified with real Yoto accounts.

In-browser recording

Record directly from your browser microphone. Built-in noise reduction via Fastenhancer. One tap to start, one to stop.

AI cover art and pixel icons

Generate full-bleed cover images and 16x16 pixel track icons. Multi-provider: OpenAI (DALL-E, gpt-image-1) and Ideogram. Bring your own API key or use the server default.

Text-to-speech tracks

Convert text to audio using OpenAI TTS. Choose from available voices, preview before committing, and the track is ready to add to any card.

Quick Story: per-child personalized cards

Set up a profile for each child (name, age, interests, themes to avoid). Hit Quick Story and YotoShelf writes, narrates, and illustrates a complete multi-chapter card in one pipeline. Powered by Claude.

Multi-account family publish

Link unlimited Yoto accounts. The publish matrix lets you choose which cards go to which accounts. One action, every linked account updated. Supports both device-code and redirect OAuth linking.

Library management

Search, sort (6 modes), filter by source, group into collections, and print labels. Batch operations for publish and labels.

Coming

What's next

These are not promises. They're the next logical pieces after the foundation stabilized.

Most wanted

A new bedtime story every day, automatically

Every ingredient is already built: the per-child story profiles, the full Quick Story pipeline, the multi-account delivery. The daily scheduler is the one missing piece. When it lands, YotoShelf will enqueue a fresh personalized story for each child every night without anyone pressing a button.

Status: pipeline complete. Scheduled job enqueue is the remaining work.

Track on GitLab →

Multi-level story context

A structured context system: account, child, collection, card, and track each carry their own metadata that the story generator can read. The "influence view" will show exactly which context layers shaped a given story, so you can tune what matters at each level.

Today profiles are collection-scoped only. This extends context to the full hierarchy.

Track on GitLab →

Multi-voice and multi-provider TTS

Today TTS uses OpenAI only. The plan is to add additional providers (ElevenLabs, others) and support assigning different voices to different characters or chapters within the same card.

Track on GitLab →

Bulk library management

Multi-select move, tag, and delete across the whole library. Today batch operations are limited to publish and labels. General-purpose bulk editing for large libraries is next.

Track on GitLab →

YotoShelf is open source under the MIT license. If something on the coming list matters to you, contributions are welcome.