Skip to main content
All projects
Personal projectImmersive reading · EPUB

Lyreah

A library of French-language classics where a responsive EPUB reader meets fully optional soundscapes and visual atmospheres.

Preview of Lyreah
Scope
An independent personal project spanning catalog to back office. Sources and licenses for texts, covers, and atmospheres are documented in the product and public repository.
My role and contribution
Product design, architecture, and full-stack developmentI designed the reading experience, data and storage architecture, synchronized progress, import back office, and EPUB security controls.
Main stack
Next.jsTypeScriptepub.jsDrizzleNeonSupabase

Case study

From context to design decisions

01

Context

Lyreah treats digital reading as a complete product: curated catalog, personal library, accessible reader, synchronized progress, and a publishing back office.

02

Challenge and constraints

Offer immersive reading without compromising accessibility, exact resume position, EPUB file security, or the provenance of texts, covers, and audio tracks.

03

Approach

The reader uses epub.js with synchronized CFI positions. Neon and Drizzle structure the data, Neon Auth protects accounts, and Supabase Storage keeps EPUB files and atmospheres private behind signed URLs.

04

Decisions and tradeoffs

Signed URLs keep files private but require server mediation and access renewal. Atmospheres remain optional so immersion never imposes sound, animation, or visual overload.

05

Observable outcome

The live version offers 13 French classics, up to 11 atmospheres per reading session, themes and typography settings, a controlled import pipeline, and test scenarios across desktop, mobile, and tablet.

Key points

What the project demonstrates

Reading

Exact resume position

CFI progress restores the precise reading position regardless of screen format.

Immersion

Optional atmospheres

Layered soundscapes and visual effects can accompany the text without ever being imposed on the reader.

Security

Validated EPUB files

The import process validates format, structure, paths, size, and language before publishing to private storage.

Critical perspective

Limitations and next steps

Current limitation

The demo is accessible, but a sustainable public launch still requires finalized legal identity information and renewed authenticated-journey testing in a dedicated staging environment.

Next step

Stabilize automated validation, complete the legal information, then validate the full import, sign-in, and reading-resume journey on staging.