# expensify/app

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/expensify-app).**

4,725 stars · 3,569 forks · TypeScript · mit

## Links

- GitHub: https://github.com/Expensify/App
- Homepage: https://new.expensify.com
- awesome-repositories: https://awesome-repositories.com/repository/expensify-app.md

## Description

Expensify App is a cross-platform collaborative expense management platform that combines receipt capture, expense tracking, and shared bill splitting for groups and teams. Designed as an offline-first application, it applies user actions optimistically to local state and queues them for server synchronization, with automatic rollback if the server rejects an operation.

The application is built on a reactive client-side key-value store called Onyx that broadcasts changes to subscribed components and persists data to disk for offline access. Its cross-platform TypeScript and React codebase compiles for web and mobile using platform-specific build configurations, while page layouts and form fields are defined by JSON schemas fetched from the backend, enabling dynamic UI updates without app store releases.

The platform covers expense management across personal and business contexts, including business expense reporting with policy compliance checks, expense reimbursement workflows, personal expense tracking and categorization, receipt capture and digitization via mobile camera, and shared expense splitting among groups. Expenses, messages, and metadata are nested under report objects that define participant context and state machine transitions, providing a unified document hierarchy for all financial interactions.

## Tags

### Business & Productivity Software

- [Expense Trackers](https://awesome-repositories.com/f/business-productivity-software/expense-trackers.md) — A collaborative expense management platform for splitting bills, managing shared expenses, and handling reimbursements. ([source](https://cdn.jsdelivr.net/gh/expensify/app@main/README.md))
- [Offline-First Expense Managers](https://awesome-repositories.com/f/business-productivity-software/expense-trackers/offline-first-expense-managers.md) — Ships an offline-first expense manager that applies actions optimistically to local state and queues them for server synchronization with automatic rollback.
- [Receipt Capture and Digitization](https://awesome-repositories.com/f/business-productivity-software/payment-receipts/receipt-capture-and-digitization.md) — Provides a mobile camera-based receipt capture and digitization feature that automatically extracts expense details for digital record-keeping.
- [Receipt-to-Bill Conversion](https://awesome-repositories.com/f/business-productivity-software/payment-receipts/receipt-to-bill-conversion.md) — Ships a receipt digitization tool that uses mobile camera scanning to automatically record expense details and convert them into digital records.
- [Collaborative Finance Managers](https://awesome-repositories.com/f/business-productivity-software/personal-finance-management/collaborative-finance-managers.md) — Enables groups to split bills, track budgets, and manage shared expenses collaboratively.
- [Receipt Digitization Tools](https://awesome-repositories.com/f/business-productivity-software/receipt-digitization-tools.md) — Captures receipts via mobile camera and automatically extracts merchant, amount, and date for digital record.
- [Shared Expense Contributions](https://awesome-repositories.com/f/business-productivity-software/shared-expense-contributions.md) — Splits bills and shared costs among groups with clear tracking of who owes what.
- [Business Expense Reports](https://awesome-repositories.com/f/business-productivity-software/expense-trackers/business-expense-reports.md) — Supports creating, reviewing, and submitting expense reports with policy compliance checks for corporate reimbursement.
- [Personal](https://awesome-repositories.com/f/business-productivity-software/expense-trackers/personal.md) — Tracks and categorises daily personal expenses to help understand spending habits.
- [Reimbursement Management](https://awesome-repositories.com/f/business-productivity-software/expense-trackers/reimbursement-management.md) — Provides a reimbursement workflow for submitting approved expenses for direct reimbursement or credit card reconciliation.

### Data & Databases

- [Nested Set Modeling](https://awesome-repositories.com/f/data-databases/nested-set-modeling.md) — Structures expenses, messages, and metadata under report objects in a nested document hierarchy.

### Development Tools & Productivity

- [Cross-Platform](https://awesome-repositories.com/f/development-tools-productivity/native-compilation/cross-platform.md) — Ships a shared TypeScript and React codebase compiled for web and mobile with platform-specific build configurations.

### Software Engineering & Architecture

- [Reactive Data Stores](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/reactive-subscription-systems/reactive-data-stores.md) — Implements a reactive client-side key-value store that broadcasts changes to subscribed components and persists to disk for offline access.
- [Report-Based Document Hierarchies](https://awesome-repositories.com/f/software-engineering-architecture/report-based-document-hierarchies.md) — Nests expenses, messages, and metadata under report objects that define participant context and state machine transitions.

### System Administration & Monitoring

- [Optimistic Offline Queues](https://awesome-repositories.com/f/system-administration-monitoring/background-job-queues/offline-request-queues/optimistic-offline-queues.md) — Applies user actions optimistically to local data with automatic rollback when the server rejects an operation.

### Web Development

- [Optimistic Update Engines](https://awesome-repositories.com/f/web-development/optimistic-update-engines.md) — Applies user actions optimistically to local state and queues them for server sync with automatic rollback on failure.
- [JSON-Based Page Schemas](https://awesome-repositories.com/f/web-development/json-apis/json-based-page-schemas.md) — Fetches page layout and form field definitions as JSON schemas for dynamic UI updates without app store releases.
- [JSON Schema-Driven UI Compositions](https://awesome-repositories.com/f/web-development/server-side-ui-composition/json-schema-driven-ui-compositions.md) — Ships a server-driven UI architecture where page layouts and form fields are defined by JSON schemas fetched from the backend.

### User Interface & Experience

- [Native Rendering Bridges](https://awesome-repositories.com/f/user-interface-experience/native-rendering-bridges.md) — Serializes UI updates over a JSON message bridge to a native host that manages the real view hierarchy.
