Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

    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

Layer Technology
Framework React Native 0.84
Language TypeScript 5.8 (strict)
Database WatermelonDB (SQLite + JSI)
State Redux Toolkit + Redux Persist
Validation Zod 4
UI Custom atomic components + Lucide icons
Navigation React Navigation 7
Lists FlashList (performant lists)
Storage MMKV (preferences & persistence)

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 (atomic design)
│   ├── atoms/         # Basic components (Button, Input, Text, ErrorBoundary)
│   └── molecules/     # Composite components
├── screens/           # App screens
│   └── ScreenName/
│       ├── index.tsx          # UI component
│       └── useScreenName.ts   # Business logic hook
├── watermelondb/      # Database layer
│   ├── models/        # WatermelonDB model classes
│   ├── services/      # CRUD operations
│   ├── schema.ts      # Database schema
│   ├── migrations.ts  # Schema migrations
│   └── database.ts    # DB initialization (lazy Proxy)
├── backend/           # Startup & data logic
│   ├── export/        # Export format, upgrader, validation
│   └── migrations/    # Sequential data migrations
├── redux/             # Redux Toolkit slices & store
├── navigation/        # React Navigation config
├── context/           # React Context providers (Theme, Dialog)
├── hooks/             # Global hooks
├── styles/            # Global styles (utility-first)
├── utils/             # Helper functions
└── sheets/            # Bottom sheet components

Getting Started

Prerequisites

  • Node.js >= 22.11.0
  • Bun (package manager)
  • Android Studio / Xcode

Installation

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

# Install dependencies
bun install

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

# Run the app
bun run android  # or bun run ios

# Type-check
bun run typecheck

Contributing

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

Legal

License

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


Built with ❤️ in India

Embrace the simplicity of zero

About

Track expenses effortlessly with zero - an open-source, lightweight app. No servers, no cloud - your data stays on your device using Watermelon DB. Choose themes, manage categories, and sync seamlessly. Features: account creation, expense tracking, category modification, insightful analytics, debt tracking.

Topics

Resources

Code of conduct

Stars

128 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages