Hi HN,
I’m the author of Prose, an MIT-licensed reading engine / SDK for building reading apps on the web and mobile:
The project has been around for about 6 years, but I’ve never really promoted it much. I’ve mostly been working on the architecture, compatibility, examples, and developer experience. I’m now trying to present it more publicly and hopefully find other developers interested in the problem space.
Prose is meant for developers who want to build their own EPUB/comic/document reader without having to implement the hard reading-system parts from scratch: rendering, pagination, navigation, zooming, gestures, search, annotations, archive handling, and so on.
It is written in TypeScript and web-based, so it can run in the browser or inside mobile apps through a WebView/React Native bridge. It supports EPUB and archive-style formats such as ZIP/CBZ/CBR, with a modular reader + streamer architecture so apps can decide how they want to load, cache, transform, and serve content.
One thing I’ve tried to make possible is using the same foundation for very different levels of complexity. You can use Prose to build a simple image-based reader for comics or manga, where the content is mostly pages from an archive, but you can also use it to build a much more complex EPUB reader with text layout, navigation, search, annotations, and custom reading behavior.
Prose is also used in Oboku, an open-source reading app I’ve been building:
One important part of the architecture is the enhancer system. Enhancers are Prose’s plugin mechanism: they let you add or modify reader capabilities without changing the core engine. Features like gestures, search, annotations, PDF support, gallery mode, refit behavior, or custom app-specific behavior can be implemented as enhancers. The goal is to make Prose flexible enough that developers can add virtually any capability they need on top of the same core reader.
A note on AI: I have about 15 years of experience as a developer, and I use AI as a tool to help me iterate faster and with higher quality. I don’t treat it as “vibe coding” or a replacement for engineering judgment. It has been useful for tackling many small problems, reviewing ideas, improving code paths, and generally helping me move the project forward faster.
I started Prose because most reading engines I found were either proprietary, app-specific, difficult to customize, or not designed as reusable developer infrastructure. I wanted something more modular: a reading system SDK that lets you design your own product while reusing the hard parts.
Some things already available:
- EPUB rendering in the browser
- Image/archive-based reading for comics and manga
- Archive support for formats like ZIP/CBZ/CBR
- Pagination, navigation, zoom, and gestures
- Search and annotations
- PDF/gallery/refit enhancers
- React and React Native examples
- MIT license
- Plugin-style enhancer system for extending reader behavior
- Used in Oboku, an open-source reading app
I’d love feedback from people who have worked on ebook readers, comic/manga readers, publishing tools, web rendering, accessibility, offline-first apps, or React Native/WebView integrations.
At this stage, I’m mostly looking for developers who are interested in giving ideas, trying it in their own projects, or providing feedback to help improve it.
GitHub: https://github.com/mbret/prose-reader
Docs: https://doc.prose-reader.com/
Demo: https://demo.prose-reader.com/
I’d love to hear what you think, what use cases this could support, and where the API/design could be improved.
Top comments (0)