App  by Expensify

Financial collaboration app built around chat

Created 5 years ago
4,663 stars

Top 10.5% 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

1 day ago

Responsiveness

1 day

Pull Requests (30d)
926
Issues (30d)
2,609
Star History
77 stars in the last 30 days

Explore Similar Projects

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%
87k
AI assistant for web, iOS, MacOS, Android, Linux, and Windows
Created 2 years ago
Updated 1 month ago
Feedback? Help us improve.