App personal para leer libros EPUB en el teléfono. Se instala como PWA, funciona offline y guarda todo localmente en el dispositivo.
- Importar archivos
.epub(título, autor y portada se extraen automáticamente). - Biblioteca con portadas y progreso de lectura.
- Lector con navegación por capítulos e índice (TOC).
- Recordar la posición: cierras el libro y sigues donde ibas.
- Tema oscuro/claro y ajuste de tamaño de letra.
- PWA sobre Next.js 16 (App Router) + TypeScript + Tailwind CSS v4.
- Parseo del EPUB client-side con
epubjs(descomprime y renderiza capítulos sin servidor). - Datos locales en IndexedDB vía Dexie (
lib/db.ts): libros + posición de lectura (CFI). - Capa de repositorio agnóstica (
lib/repository.ts): la UI solo conoce la interfazReaderRepository. Si mañana se quiere sincronización/backend, se creaApiRepositoryy se intercambia sin tocar la UI. - Sin servidor ni cuentas: los libros viven solo en el dispositivo.
epubjs usa APIs del navegador (ArrayBuffer, Blob), por eso el componente lector se carga con next/dynamic + ssr: false.
npm install
npm run devnpm run build
npm startConectar el repo a Vercel (build automático).