● Press · liveEdition 2026.09 · Los Angeles
Alexander Cannon
← Back to projects

App

✓ Shipped

VOLUME

A reading companion – sessions, shelf, streaks that do not stage a performance about it.

VOLUME

I kept losing the thread of what I was reading. Somewhere between the review-shaped apps and the ones that treat a missed day like a moral failure, I wanted somewhere quieter: log a session, see the shelf, know where I left off.

VOLUME does that. Timed reading blocks you can pause when life happens. Pages and pace on the books you are in the middle of. Streaks that celebrate showing up without inventing a personality crisis for Tuesday. Optional social layer – finish a book, hit a milestone – kept optional on purpose.

Built with

Expo / React Native (TypeScript) · Clerk (email OTP + Sign in with Apple) · Supabase Postgres with RLS · Supabase Edge Functions (Deno) · Zustand + TanStack Query · EAS Build / App Store

Where it got hard

  1. 01

    Bridging Clerk session JWTs into Supabase as third-party auth so PostgREST and RLS work without Supabase Auth users.

  2. 02

    Draft vs published reading sessions, plus an offline queue that replays end-session payloads when the app returns to the foreground.

  3. 03

    SQL trigger fan-out from feed events into a per-user inbox, with book search kept on an edge function so Google Books keys never sit in the binary.

  4. 04

    App Store account deactivation and permanent delete across Supabase data and Clerk.

Role

Solo — design, code, and shipping.