Back to Portfolio

Storybook Reader

Tablet

iPad reading app purpose-built for visually impaired children

Description

A React Native iPad app purpose-built for use with the Storybook Library API. Its target audience is children with Cerebral Visual Impairment (CVI), enforcing a fixed 55/45 landscape image-text split for predictable, distraction-free reading. Connects to the serverless API hosted on Fly.io with content served from Supabase and Cloudflare R2.

Visual Demo

Key Technical Decisions

Native app over web PWA

Landscape orientation locking and full-screen control are impossible in mobile Safari. A native app was the only way to guarantee the controlled, distraction-free reading environment that CVI accommodation requires.

Fixed 55/45 image-text split

Not responsive to content length or image aspect ratio. This rigidity is intentional — CVI research shows that consistent, predictable layouts improve comprehension. The reading experience should be identical on every page.

Architecture

React Native app → Storybook Library API (Fly.io) → Supabase + Cloudflare R2

Tech Stack

React Native Expo TypeScript

By the Numbers

Custom Expo config plugin for iOS orientation enforcement

O(1) scroll-to-index via pre-computed getItemLayout

Comprehensive test suite covering series navigation, chapter dividers, accessibility