MontLivre
The context
Version 1 was 6,926 lines of Electron carrying its own layout engine and a 122 MB installer. Version 2 hands reading to foliate-js and the shell to Tauri 2, which rides the WebView2 already on every Windows machine: 3,626 lines, a 4.16 MB installer, around 30 MB of memory at rest. It reads EPUB, MOBI, AZW3, FB2 and CBZ, works offline, asks for no account and sends nothing anywhere.
The reasoning
Three rules hold the whole interface
No rounded corners, no blurred shadows, one bright colour on screen at a time. Shadows are solid offsets, rules are hairlines, and the palette — Yolk, Ochre, Violet, Moss on Coal, Ash and Cloud — never runs two accents at once. The result is a typographic poster you can operate.
The reading page gets none of it
Every decoration stops at the chrome. The page itself is a serif on paper: no accent, no shadow, no shape. The interface is allowed a personality precisely because the book is not asked to share it.
Covers are generated, not defaulted
A book with no cover does not get a grey rectangle. Colour, shape and tilt come from a hash of the title, so the poster is stable across launches and no two neighbours look alike — the shelf reads as a shelf rather than a spreadsheet.
Resume that survives a change of type size
Position is stored as a CFI, not a scroll offset. Change the text size, the margins or the number of pages, and the book still opens exactly where it was left.
No bundler, no Node
The front end is HTML, CSS and native ES modules served as they are written; the only toolchain is Rust. Nothing between the source and the running app means nothing to debug between them either.
The front end holds no keys
It has no filesystem permission at all. It passes identifiers, and store.rs turns them into paths under the application data folder — imported books are copied there rather than referenced in place.
What shipped
CNRS//FLUX