Hisab is a local-first expense splitter for trips, households, and personal budgets. It is a FOSS Flutter app for Android, iOS, and web.
The public build is intentionally self-contained:
- no account, server, subscription, ads, or app-initiated network requests;
- unlimited local groups, participants, expenses, balances, and settlements;
- local receipt OCR on supported mobile devices;
- local Android transaction scanning with drafts and history;
- JSON/CSV/ZIP backup export and import.
All records are stored in the device's local SQLite database. Use Settings → Data & Backup to move records between devices. Existing local records and legacy database tables are preserved during upgrades.
flutter pub get
flutter run -d chrome
flutter run --flavor fossWeb builds need the checked-in PowerSync worker and SQLite WASM assets. If a fresh checkout does not contain them, run:
flutter pub run powersync:setup_webNo keys, environment variables, or build-time defines are required.
bash scripts/ci/build_android.sh debug
bash scripts/ci/build_web.sh
bash scripts/ci/assert_offline_only.sh
bash scripts/verify_infra.sh
flutter analyze
flutter testAndroid has one public product flavor: foss. The iOS and web targets use the
same local-only application sources.
lib/domain/— local expense, participant, balance, and settlement models.lib/core/database/— PowerSync SQLite schema and startup.lib/core/repository/— local repository interfaces and implementations.lib/features/— groups, expenses, backups, scanner, and settings.assets/tessdata/— bundled OCR models.web/— Flutter web shell and local database assets.
Feature modules depend on repository interfaces. Local mutations are written to SQLite immediately; no remote queue or transport is required.
The release checks verify that the application remains self-contained. Keep generated build output outside the source tree when preparing a release.
See the Privacy Policy and local data deletion instructions. The app does not create an account or store records on a Hisab server.
See CONTRIBUTING.md, SECURITY.md, and LICENSE.