App  by Expensify

Financial collaboration app built around chat

Created 5 years ago
4,431 stars

Top 11.1% on SourcePulse

GitHubView on GitHub
Project Summary

This repository contains the codebase for Expensify's new financial collaboration platform, built around a chat-centric interface. It targets developers looking to contribute to or understand a large-scale, cross-platform financial application with an offline-first architecture. The project offers a comprehensive suite of tools for local development, testing, and debugging across web, iOS, and Android platforms.

How It Works

The application is built using React Native and leverages React Native Onyx as its primary state management and offline data persistence layer. Data flows from the server via Pusher events or XHR requests into Onyx, which then pushes updates to the UI components. The UI layer is responsible for reflecting data and triggering actions, while "Actions" handle business logic, server interactions, and data updates in Onyx. This separation ensures an offline-first experience and organized data management.

Quick Start & Requirements

  • Installation: Follow detailed instructions for nvm, node, npm, watchman, and mkcert for HTTPS setup.
  • Prerequisites: Node.js (specific version required), Watchman, mkcert for HTTPS. iOS development requires Xcode tools and CocoaPods. Mapbox tokens are needed for map SDKs.
  • Running: npm run web for web, npm run ios for iOS simulator, npm run android for Android emulator.
  • Docs: Local Development: https://github.com/Expensify/App/blob/main/README.md#local-development

Highlighted Details

  • Offline-First Architecture: All necessary data is stored locally using AsyncStorage via Onyx.
  • HybridApp Structure: Supports both standalone NewExpensify and a hybrid approach integrating with older Expensify mobile codebases via Git submodules.
  • Cross-Platform Focus: Emphasizes writing platform-independent code, with specific file extensions for platform-specific implementations.
  • Internationalization: Built-in support for i18n/l10n with a useLocalize hook and translation files.

Maintenance & Community

The project is actively maintained by Expensify. Community interaction is encouraged via their Slack channel.

Licensing & Compatibility

The repository does not explicitly state a license in the provided README. Compatibility for commercial use or closed-source linking would require clarification on licensing.

Limitations & Caveats

Developing the HybridApp requires specific access to the Mobile-Expensify Git submodule. Some setup steps, particularly for native mobile development and HTTPS configuration, can be complex. The README mentions potential issues with system Ruby installations for CocoaPods.

Health Check
Last Commit

20 hours ago

Responsiveness

1 day

Pull Requests (30d)
1,117
Issues (30d)
1,731
Star History
72 stars in the last 30 days

Explore Similar Projects

Starred by Tobi Lutke Tobi Lutke(Cofounder of Shopify), Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), and
24 more.

open-webui by open-webui

0.6%
110k
Self-hosted AI platform for local LLM deployment
Created 1 year ago
Updated 1 day ago
Starred by Sourabh Bajaj Sourabh Bajaj(Cofounder of Uplimit), Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), and
3 more.

NextChat by ChatGPTNextWeb

0.1%
86k
AI assistant for web, iOS, MacOS, Android, Linux, and Windows
Created 2 years ago
Updated 3 days ago
Feedback? Help us improve.