Stash Note
Cross-platform rich-text notes, local-first

A cross-platform rich-text note app. The premise was to find out how far a single Expo Router codebase could go for a real editing surface — not "render some text" but the full set of conveniences people expect from Bear or Notion: rich formatting, inline code previews, link unfurling, alignment, image embedding, nested notes-within-notes, and inline Excalidraw drawings that round-trip back to an editable canvas. The interesting part is the editor architecture. The rich text core is Lexical, which is browser-native, so on the web that's straightforward. On iOS and Android the same Lexical editor runs inside Expo's new web-component bridge, with native gestures and inputs handling the parts that need to feel like a real mobile app. The result is one editor implementation across three platforms instead of three diverging ones. State and persistence are local-first via LegendState backed by Supabase — typing never waits on the network, and sync happens in the background. Auth supports Apple and Google sign-in; storage handles secure keys per-platform with separate web and native implementations.
Stack
- Expo
- React Native
- NativeWind
- Supabase
- Typescript