MI©
EN/PL
01Mobile App2025—26

Libriv

A game economy you can't cheat — Strava meets Duolingo, for reading.

Year
2025—26
Role
Solo — product design, mobile, backend & release
Stack
React Native 0.81 · Expo SDK 54 · TypeScript · Firebase · Auth · Firestore · Functions · Zustand · Kotlin native module

Libriv turns reading into a ranked game — XP, 50 levels, streaks, book clubs and leagues from Iron to Grandmaster. I designed and shipped it solo, from the mascot to a 2,700-line Firebase backend, now live on Google Play at versionCode 158.

01

The loop

Every reading session runs a timer, banks XP, feeds daily quests and moves you up the leagues. A social layer — feed, followers, book clubs, real-time chat and leaderboards — wraps the core habit so progress is something you share, not just track.

Home dashboard: level, XP, streak and today's goal
League leaderboard with ranked readers and rank frames
02

Trust the server, not the client

When XP and a paid subscription have real value, nothing the client says can be trusted. The app submits only raw session data; a Cloud Function computes every stat behind layered defenses — page-rate clamps, per-day caps, and an adaptive check that learns each reader's pace and rejects anything 3× their norm. Firestore rules make premium and XP fields unwritable from the client, and receipts are verified server-side against both Google Play and the App Store.

03

Native when it matters

Some features can't be faked in JavaScript. Libriv ships a hand-written Kotlin Expo module wrapping Google ML Kit for on-device OCR — snap a page, capture the quote. An ISBN scanner falls back across four metadata sources so international titles still resolve, and an Android home-screen widget syncs current book and daily progress in the background.

Inky, the Libriv octopus mascot, reading a book
Engineering Notes
  • 0117 cloud functions · 2,700 loc backend
  • 02Server-validated sessions · adaptive anti-cheat
  • 03IAP: Play Billing + App Store receipts, verified server-side
  • 04AdMob interstitials + GDPR/UMP consent
  • 05~1,600 i18n keys × EN/PL
  • 06Custom Kotlin Expo module — ML Kit OCR
  • 07Android home-screen widget · 30-min background sync
Next project02
Libriv Web