Expensify - A finance app open-sourced its frontend
Snaplyze Digest
Tech Products advanced 2 min read Apr 15, 2026

Expensify - A finance app open-sourced its frontend

“A publicly traded company open-sourced its entire frontend — 246K commits, 2,340 contributors, and they'll pay you $250 to fix bugs.”

In Short

Expensify open-sourced the entire React Native frontend for its expense management platform — 246,354 commits, 2,340 contributors, MIT-licensed — but the backend stays closed, so you can read and contribute but not self-host. It implements an offline-first architecture with four distinct UX patterns for handling network failures, powered by a custom persistent state library called Onyx. The repo is one of the largest commercially-backed open-source React Native codebases in production, maintained by a publicly traded company (NYSE: EXFY) that pays external contributors via Upwork for accepted...

react-nativeopen-sourceoffline-firsttypescriptexpense-management
Why It Matters
The practical pain point this digest is really about.

You know that feeling when your app breaks the moment you step into a subway tunnel or a dead zone? Most expense apps force you to wait for a connection — your receipt scan hangs, your report won't submit, and you're stuck refreshing. Expensify's frontend tackles this head-on with an explicit classification system: every feature gets assigned one of four offline handling patterns, from silent optimistic updates to full-screen blocking, so the app keeps working even when the network doesn't.

How It Works
The mechanism, architecture, or workflow behind it.

Think of it like writing checks from a checkbook — you write the check immediately (optimistic update) and trust the bank will process it later. When the server pushes data, it flows through Pusher (real-time WebSocket) into Onyx (a custom key-value store that persists everything to disk), then into React components via the useOnyx() hook. When you take an action, it flows back through an Action → XHR → Server loop. Every feature is classified into one of four offline patterns: Pattern A assumes success silently (like sending a chat message), Pattern B shows a loading indicator but proceeds optimistically, Pattern C blocks the form until confirmation, and Pattern D blocks the entire page. A decision flowchart in the repo's philosophy docs determines which pattern applies.

Key Takeaways
6 fast bullets that make the core value obvious.
  • Offline-first with four UX patterns — you get a documented decision framework for handling every feature's offline behavior, from silent optimistic updates to full blocking, so you stop guessing and start classifying
  • Custom Onyx state management — persistent key-value store with automatic disk writes, optimistic updates, collection subscriptions, and storage eviction gives you offline-first state without hand-rolling persistence log...
  • Paid open-source contributions — Expensify pays contributors via Upwork ($250 per Help Wanted issue), giving you a direct path from reading the code to earning money for fixes
  • Cross-platform 99.9999% rule — features must work on iOS, Android, Web, and mWeb without platform-specific hacks, so you learn how to ship truly universal React Native code
  • 18+ philosophy documents — the repo includes explicit design philosophy docs on topics like data flow, offline, routing, security, and over-engineering, teaching you how a production team makes architectural decisions
  • React Native New Architecture — runs on Fabric renderer with Hermes engine and TurboModules, so you see a real production codebase using RN's latest architecture rather than a toy example
Should You Care?
Audience fit, decision signal, and the original source in one place.

Who It Is For

If you're a React Native developer who wants to study how a production-grade offline-first app handles state, networking, and cross-platform complexity — this is your reference codebase. Also valuable if you're building a financial or messaging app and need a proven pattern for offline data sync. Not useful if you want a self-hostable expense solution — the closed-source backend makes that imposs...

Worth Exploring?

Worth studying as a reference architecture if you build React Native apps, especially for the offline-first patterns and Onyx state management. It is production-proven — 15 million+ users, publicly traded company, daily releases. However, you cannot self-host it or use it independently because the backend is proprietary. Treat it as a learning resource and contribution opportunity, not a framework to install.

View original source
What the full digest unlocks

There is more here than the public preview.

This page gives you the hook. The full Snaplyze digest goes deeper so you can move from curiosity to decision with less noise.

Open the full digest to read the deeper breakdown, compare viewpoints, and get the practical next-step playbooks.

Open the full digest

Snaplyze

Go beyond the preview

Read the full digest for deep-dive insight, Easy Mode, Pro Mode, and practical playbooks you can actually use.

Install Snaplyze