React Native · SQLite · Local-First

Offshelf

Offshelf is a reading tracker. No accounts, no servers, no social features — just you and your books. Everything stays on your device.

I built it because every reading app I tried wanted me to be social about reading. Goodreads wants you to rate, review, compare. I just wanted to track what I read without the noise.

Flip the phone face-down to start a session, lift it to log it. Under the hood: SQLite for local-first storage, book search through the Hardcover GraphQL API, and a pure-function face-down detection system (accelerometer + state machine + grace period). The goal is for the app to be as quiet as reading itself — and eventually, for you to outgrow it.

Status
Live on the App Store
Platform
iOS (React Native + Expo)
Stack
React Native, Expo, SQLite, Hardcover GraphQL API
Role
Solo developer — design, engineering, product