StoryLark is an open-source engine for building your own branded, installable reading app — a fast Progressive Web App for standalone stories, complete books, or a mixed library, online or off.
Publishing a polished reading experience usually means stitching together a reader, a narrator, offline support, sync, and push — and then rebuilding it for every brand. StoryLark packages all of that into one engine you configure rather than rebuild. A single codebase powers many distinct, branded reading apps, each with its own identity, content, and domain.
Read mode, listen mode with word-synced read-along, offline downloads, cross-device sync, and push notifications.
A per-brand token contract drives the entire look and structure — colors, type, logo, layout, and vocabulary.
The default Cloudflare deployment uses one Worker, D1, and R2; an Azure deployment path is supported too.
Publish a standalone story or a multi-chapter book from markdown, with optional narration and word timings.
StoryLark is in preview (v0.19.2). The engine ships today as installable npm packages (storylark-core, storylark-worker, storylark-pipeline) with a bundled free narrator (28 open voices, word-synced), a narrator picker for multi-voice libraries, and two sample public-domain stories — see it running at storylark.dev. Every build is traceable: the app's About screen shows the exact release version and build commit it's running. APIs and structure may still change before 1.0. See what shipped in the release notes and what's next on the roadmap.
StoryLark is released under the Apache License 2.0. The engine, its documentation, and the theme & template gallery are developed in the open. Explore the code, file issues, or contribute on GitHub.