Khoa
Ngo.
Back

LUMI

An AI-powered lofi reading platform that combines EPUB reading, synchronized TTS audiobook playback, relaxing music, and personalized reading progress.

TechStack
Next.js
React
TypeScript
TailwindCSS
Zustand
Node.js
Express.js
MongoDB
Google OAuth
Hugging Face
AI Text-to-Speech
Github
Repository
Demo
View site
01

Purpose of the project

I built LUMI because I wanted a reading platform that combines books, relaxing music, and AI-generated audiobooks into one seamless experience.

Instead of simply displaying EPUB files, my goal was to create a cozy reading environment where users can switch naturally between reading and listening while keeping their progress synchronized across sessions.

02

The Process

I designed both the frontend and backend architecture from scratch using Next.js and Node.js.

The reading engine was built around EPUB.js, with custom handling for themes, bookmarks, reading progress, page restoration, and persistent local caching.

To improve accessibility, I integrated an AI Text-to-Speech streaming service hosted on Hugging Face. The frontend streams audio while intelligently prefetching upcoming chapters to provide uninterrupted playback.

A large amount of time was spent optimizing the user experience by reducing unnecessary EPUB reloads, restoring reading state instantly, adding smooth page transitions, and synchronizing user data with the backend.

03

Lesson learned

Learned how to architect a full-stack application using Next.js, Node.js, and MongoDB.

Improved state management skills using Zustand for handling books, reading progress, player state, and UI preferences.

Built a streaming AI Text-to-Speech pipeline and optimized audio buffering for smooth playback.

Learned performance optimization techniques such as client-side caching, state persistence, and minimizing unnecessary EPUB rendering.

Integrated Google OAuth authentication and implemented user-specific reading history and bookmarks.

Improved responsive UI design with TailwindCSS and Framer Motion while maintaining a clean and scalable component structure.

Gained practical experience deploying production services on Vercel and Hugging Face Spaces while managing environment variables and cloud integrations.


Next
Solfive