Loading WebGL Shader...

Back to React Native Projects
React Native Project

Fuzzy

A local-first task manager that turns blurry "stuff in my head" into prioritized, actionable items โ€” one Expo codebase shipping to iOS, Android, and the web.

View Live Demo

Overview

Fuzzy is the Eisenhower quadrant as a verb, not a four-box. Capture loose thoughts, crystallize them into clear next-actions with durations, due dates, and tags, then flow them through Today / Later / Complete. Daily rituals (Morning, Evening, Review) layer on top. Every wizard is durable โ€” its cursor lives in SQLite, not component state โ€” so hot reloads, route changes, and process restarts resume mid-flight.

The Challenge

Building one app for iOS, Android, and the web means storage and reactivity both have to bend to platform realities. Fuzzy uses WatermelonDB as the single source of truth, with a platform-gated storage backend (SQLite + JSI on native, LokiJS + IndexedDB on web) and a single dispatcher that writes every domain mutation alongside an event-log row in one atomic transaction. The result: one write path, one reactivity path, no second cache, no manual invalidation โ€” and a durable audit trail that makes revert and future sync sound.

Key Highlights

One Expo codebase deployed to iOS, Android, and the web (Cloudflare Pages)
WatermelonDB reactive layer โ€” components observe via withObservables HOCs, no manual refresh
Platform-gated storage: SQLite + JSI on native, LokiJS + IndexedDB on web; identical schema and ops above
Every domain mutation is an atomic data + event-log write, enabling revert and (eventually) multi-device sync
Durable wizards โ€” cursor state lives in SQLite so sessions survive reloads, navigation, and process restarts
FlashList v2 virtualization on every long list with two-column priority-grouped layouts on wide screens

Technology Stack

Expo / React Native
SDK 52+
Cross-platform runtime โ€” iOS, Android, web from one codebase
React
19.x
UI layer; reactivity via WatermelonDB observers
TypeScript
5.x
Strict mode (noUncheckedIndexedAccess, exactOptionalPropertyTypes)
WatermelonDB
0.27.x
Reactive data layer + SQLite source of truth
expo-router
Latest
File-based routing across native and web
@shopify/flash-list
v2
Virtualized lists with two-column grouped layouts
react-native-reanimated
4.1.x
Gestures, animated transitions, ticking clocks via shared values
Zustand
Latest
Ephemeral UI state only (drawer, menus, pick selections)
@shopify/react-native-skia
Latest
CRT shader overlay on native
Cloudflare Pages
Static web deployment