Install dependencies

January 7, 2026 · View on GitHub

    zero logo light

zero - Minimal Expense Manager

Zero is a lightweight, open-source expense tracking app for Android & iOS. Built with privacy-first approach — all your financial data stays on your device. No servers, no tracking, no data collection.

Screenshots

What's New in v2.0

  • WatermelonDB + SQLite — Migrated from Realm to WatermelonDB for better performance and long-term support
  • Faster load times — Lazy loading and optimized queries
  • Improved UI — Bottom sheets, better animations, refined design
  • Better data export — Export/import your data seamlessly across devices

Features

Expense Tracking

Add, edit, and delete transactions with customizable categories.

Category Management

Create your own categories with custom icons and colors.

Insights & Reports

  • Monthly spending breakdown with pie charts
  • Heatmap calendar showing daily expenses
  • Average per day calculations

Debt Tracking

Track money you owe or are owed. Manage debtors and individual debts.

Customization

  • Light & Dark themes (+ system default)
  • Multiple currency symbols
  • Personalized username

Data Control

  • Export all data as JSON
  • Import on new device
  • Delete all data option

Privacy First

  • 100% offline — no internet required
  • All data stored locally on device
  • Zero data collection

Tech Stack

LayerTechnology
FrameworkReact Native
DatabaseWatermelonDB (SQLite)
StateRedux + Redux Saga
UICustom components + Lucide icons
NavigationReact Navigation
ListsFlashList (performant lists)

Why WatermelonDB?

We migrated from Realm to WatermelonDB because:

  • Realm is deprecated — MongoDB announced end of support
  • SQLite is battle-tested — Powers millions of apps
  • Lazy loading — Only loads data when needed
  • Better React Native integration — Built specifically for RN
  • Smaller bundle size — Less bloat

Project Structure

src/
├── components/        # Reusable UI components
│   ├── atoms/         # Basic components (Button, Input, Text)
│   └── molecules/     # Composite components
├── screens/           # App screens
│   └── ScreenName/
│       ├── index.tsx      # UI component
│       ├── useScreenName.ts  # Business logic hook
│       └── style.ts       # Styles
├── watermelondb/      # Database layer
│   ├── models/        # Data models
│   ├── services/      # CRUD operations
│   ├── schema.ts      # Database schema
│   └── database.ts    # DB initialization
├── redux/             # State management
├── navigation/        # Navigation config
├── hooks/             # Global hooks
├── utils/             # Helper functions
└── sheets/            # Bottom sheet components

Getting Started

Prerequisites

  • Node.js 18+
  • Yarn or npm
  • Android Studio / Xcode

Installation

# Clone the repo
git clone https://github.com/indranilbhuin/zero.git
cd zero

# Install dependencies
yarn install

# iOS only
cd ios && pod install && cd ..

# Run the app
yarn android  # or yarn ios

Contributing

Contributions are welcome! Please read our Code of Conduct first.

License

This project is licensed under the BSD 2-Clause License.


Built with ❤️ in India

Embrace the simplicity of zero