The core idea is simple – instead of pagination, content is chunked and presented vertically. Swipe down for the next "page" of text. Add lo-fi ambient music and you get something surprisingly engaging.
Technical stack is React Native + Expo for true cross-platform (iOS/Android/Web from one codebase). EPUBs are parsed and chunked intelligently (trying to respect paragraph boundaries, not cut mid-sentence). PDF rendering was trickier than expected – ended up using page-by-page extraction.
Some things that worked well:
- The swipe mechanic does create a nice rhythm once you adjust
- Ambient sound + dark theme makes for focused reading sessions
- Offline-first architecture means no latency, everything feels instant
Honest limitations:
- Chunking algorithm isn't perfect – complex layouts break
- PDF rendering quality varies by source file
- The UX isn't for everyone (probably not great for technical books with diagrams)
- No social features yet (just the reading experience)
Would love feedback from HN readers who actually like reading. Is this solving a real problem or just novelty? Did I miss obvious UX issues? Technical critiques welcome.
iago-cavalcante•11h ago
Technical stack is React Native + Expo for true cross-platform (iOS/Android/Web from one codebase). EPUBs are parsed and chunked intelligently (trying to respect paragraph boundaries, not cut mid-sentence). PDF rendering was trickier than expected – ended up using page-by-page extraction.
Some things that worked well: - The swipe mechanic does create a nice rhythm once you adjust - Ambient sound + dark theme makes for focused reading sessions - Offline-first architecture means no latency, everything feels instant
Honest limitations: - Chunking algorithm isn't perfect – complex layouts break - PDF rendering quality varies by source file - The UX isn't for everyone (probably not great for technical books with diagrams) - No social features yet (just the reading experience)
Would love feedback from HN readers who actually like reading. Is this solving a real problem or just novelty? Did I miss obvious UX issues? Technical critiques welcome.
Demo: https://leaftok.github.io/site Built for learning – happy to discuss implementation details.