Introducing - 💸 ExTrack: Simple, private expense tracking

:money_with_wings: ExTrack

Your money. Your device. Your rules.

The privacy-first expense tracker that lives entirely in your browser : no accounts, no subscriptions, no surveillance.

Live Demo
GitHub Stars


License: MIT
Vite
React 18
Tailwind CSS v4
PWA Ready
Open Source


:triumph: The Problem With Every Other Expense App

You open the App Store. You find a nice expense tracker. You tap install.

Then it asks you to create an account. Fine. Then it wants access to your contacts “to help you split bills.” Sure. Then there are ads between every swipe. Oh, and the premium tier is $8/month to unlock CSV export. And six months later you find out they sold your spending patterns to a data broker.

Sound familiar?

Most expense apps treat you as the product. Your spending habits are valuable data, and they know it.

ExTrack does exactly none of that.

  • :x: No account required : not even an email address
  • :x: No server : there is no backend. Literally.
  • :x: No ads, no trackers, no telemetry whatsoever
  • :x: No App Store or Play Store needed
  • :white_check_mark: All your data lives in your browser, on your device, under your control

:rocket: What is ExTrack?

ExTrack is a privacy-first, fully offline, installable PWA (Progressive Web App) for tracking and analysing your personal expenses. It captures where your money goes, shows you rich visual insights, and backs up your data with military-grade encryption : all without ever sending a single byte to any server.

  • :zap: Capture fast : Smart suggestions, tags, categories, and receipt photos make logging take seconds
  • :bar_chart: See the story : Beautiful charts, monthly summaries, and trend lines reveal your spending patterns at a glance
  • :lock: Truly private : 100% offline-first; all data in your browser’s IndexedDB, never transmitted anywhere
  • :earth_africa: Run anywhere : iOS, Android, Windows, macOS, Linux : if it has a modern browser, ExTrack runs on it
  • :shield: Backup safely : End-to-end encrypted backups to your device or Google Drive; even Google can’t read them
  • :free: Forever free & open source : MIT licensed, no paywalls, no premium tier, no gotchas

:clapper: Key Experiences

1 : :zap: Logging Expenses & Organising With Categories + Tags

Logging an expense takes under 10 seconds : and ExTrack actively helps you do it faster every time.

Feature What it does
Description autocomplete Suggests past expense descriptions as you type (fuzzy matching, top 10 results)
Tag suggestions Frequency-ranked suggestions filtered to what you haven’t added yet
Category quick-create Create a new category without leaving the expense form
Smart defaults Pre-fills current date & time; remembers your most-used categories
Receipt photos Attach a photo directly from your camera or gallery (compressed, stored locally)

Categories are fully yours : pick from 100+ Lucide icons, choose any of 36 hand-picked colours, and name them whatever makes sense to you. Tags come with their own stats: how many expenses use each tag, when it was last used, and bulk rename/delete across all expenses.

Up to 4 tags per expense keeps things organised without turning into chaos.


2 : :bar_chart: Analysis, Charts & Spending Trends

The Analysis page turns your raw spending data into a story you can actually understand.

Period Selection & Navigation

Choose Week, Month, Year, or a Custom date range. Use the ← → arrows to navigate through time : watch your charts update live as you move between periods.

Category Breakdown

  • :pie: Pie chart : instant visual split of where money went
  • :bar_chart: Bar chart : compare categories side by side
  • Percentage distribution, total amount, and transaction count per category
  • Click any segment to highlight it

Spending Trend

  • :chart_with_upwards_trend: Line chart with smart granularity : shows daily data for a week, weekly for a month, monthly for a year
  • See exactly when in the month you tend to overspend

Summary Metrics

Total spend · Transaction count · Average expense · Top category : all at a glance, updating with your period selection.

Ad-hoc Expense Toggle

Mark one-off purchases (gifts, medical emergencies, flights) as ad-hoc at logging time. Toggle them out of the analysis view to see your regular spending baseline : not a distorted snapshot from that trip to the dentist.

Export Directly From Analysis

Hit Export right from the analysis view : get a CSV or JSON of the filtered data you’re looking at.


3 : :closed_lock_with_key: E2EE Backup via Google Drive & Restore on Any Device

This is the feature that makes ExTrack genuinely special.

Your backups are encrypted before they ever leave your device. Not “encrypted in transit.” Not “encrypted at rest on our servers.” Encrypted in your browser, using your passphrase, before the file is written anywhere. Not even a Google employee, or us can read it.

The Encryption Stack

Component Detail
Cipher AES-GCM 256-bit (authenticated encryption : tampering is detected)
Key derivation PBKDF2-SHA256 with 600,000 iterations (brute-force infeasible)
Implementation Pure browser-native Web Crypto API : zero third-party crypto packages
Passphrase storage Stored only in your IndexedDB; never transmitted, logged, or accessible to anyone else

The .extrack File Format

Every backup is saved as a .extrack file, a self-describing JSON envelope:

{
  "format": "extrack-encrypted-backup",
  "version": "1",
  "algorithm": "AES-GCM",
  "kdf": "PBKDF2-SHA256",
  "iterations": 600000,
  "salt": "<base64url : 16 bytes>",
  "iv": "<base64url : 12 bytes>",
  "ciphertext": "<base64url>"
}

Algorithm parameters are stored per file so future upgrades never break your old backups.

Google Drive Integration (No Backend Required)

  • PKCE OAuth 2.0 : the login is between you and Google. ExTrack never sees your Google credentials.
  • Scope: drive.file only : the app can only access files it created, nothing else in your Drive
  • Auto-creates an ExTrack Backups folder on first use
  • Same-day backups replace the previous file (no duplicates building up)
  • Access tokens auto-refresh silently : no repeated login prompts
  • Unlink at any time; your Drive files are not deleted

Restore on Any Device

Move to a new phone? Reinstall the app? Just:

  1. Import your .extrack file
  2. Enter your passphrase (auto-filled if stored on this device)
  3. Preview: “312 expenses, 8 categories, Jan 2025 → Mar 2026”
  4. Choose Override (replace everything) or Merge (add to existing data, skip duplicates)
  5. Done. Your data is back.

4 : :iphone: Install as a PWA : No App Store. No Play Store. Just a Browser.

ExTrack is a Progressive Web App : which means it installs and runs like a native app without going anywhere near an app store.

Platform How to install
Android (Chrome) Tap the “Add to Home Screen” banner or the install icon in the browser menu
iOS (Safari) Tap Share → “Add to Home Screen”
Desktop (Chrome / Edge) Click the install icon in the address bar
Any other modern browser Works perfectly as a browser tab : install is optional

Why this is a big deal:

  • :no_entry_sign: No App Store review process : updates ship the moment they’re deployed
  • :no_entry_sign: No Play Store : no region restrictions, no approval delays
  • :white_check_mark: Works offline immediately after first load (Service Worker + Workbox caches everything)
  • :white_check_mark: Launches in standalone mode : looks and feels like a native app
  • :white_check_mark: When a new version ships, a non-intrusive “Update available” banner appears : tap to reload

“If it has a modern browser, it runs ExTrack.”
Chrome, Firefox, Safari, Edge : on iOS, Android, Windows, macOS, Linux. All of them.


:lock: Privacy & Security: The Full Picture

ExTrack was designed from the ground up around one principle: your financial data is yours alone.

Zero-Knowledge Architecture

Claim Reality
No backend server The app is pure static HTML/JS/CSS. There is no API, no database, no server to hack.
No accounts You never create a username or password with us. There’s nothing to breach.
No telemetry Zero analytics, zero crash reporting, zero “anonymous usage data.” Nothing is sent anywhere.
No ads The app is open source and MIT licensed. There is no business model that monetises you.
IndexedDB storage All expenses, categories, tags, and settings live in your browser’s local IndexedDB. Clearing site data wipes it; you are in full control.

Backup Security In Depth

  • Backups are always encrypted — the .extrack backup pathway has no plaintext option. Every backup file is encrypted in your browser before it is saved anywhere.
  • Exports are plaintext by choice — the separate Export feature (CSV / JSON) gives you your raw data with no strings attached. It’s your data, and you can take it wherever you want. Encryption is available as an opt-in for exports, but never forced.
  • AES-GCM is authenticated : if anyone tampers with the file, decryption fails. You’ll know.
  • 600,000 PBKDF2 iterations : at modern GPU speeds, brute-forcing a strong passphrase would take thousands of years.
  • The Web Crypto API is browser-native : no third-party library means no supply-chain risk. The same crypto engine that banks use.
  • Google Drive scope is drive.file : the app can only see files it created. It cannot browse or read any other file in your Drive.
  • OAuth tokens never leave your device : stored in IndexedDB, only used for authenticated Drive API calls over HTTPS to googleapis.com.

Data Lifecycle

  • Factory Reset : one button wipes expenses, categories, tags, settings, passphrase, and OAuth tokens. IndexedDB is cleared completely. Default categories are re-seeded. A fresh start.

:earth_africa: True Cross-Platform Freedom

Most apps are prisoners of their platform. iOS apps need App Store approval. Android apps need Play Store review. Desktop apps need installers and admin rights.

ExTrack has none of those constraints.

iOS Safari  ✅     Android Chrome ✅     Desktop Chrome ✅
Firefox     ✅     Safari macOS   ✅     Edge           ✅

Any device. Any OS. Any browser. Open https://extrack.madhukm.com and you’re running the full app : no download, no install, no permission prompt from an app store gatekeeper.

Install it as a PWA in 10 seconds for the native-app experience. Or keep it as a browser tab. Either way, all features work, offline works, and your data never leaves the device.

When we ship an update, it goes live immediately : no waiting for App Store review, no forcing users to update, no version fragmentation. Everyone gets the latest version automatically.


:toolbox: Tech Stack

ExTrack is built on a modern, lean, open-source stack with deliberate choices at every layer.

Layer Technology Why
Build tool Vite Sub-second HMR, optimised production bundles
UI framework React 18 (TypeScript) Concurrent features, strict type safety
Styling Tailwind CSS v4 CSS-first config, zero runtime
UI components shadcn/ui + Radix UI Accessible, unstyled primitives you own
Local database Dexie.js Elegant IndexedDB wrapper with reactive queries
Charts Recharts Composable, responsive SVG charts
Animations Framer Motion Smooth page transitions and microinteractions
Cryptography Browser Web Crypto API Native AES-GCM 256 : zero third-party crypto packages
PWA vite-plugin-pwa + Workbox Service worker, offline caching, install prompt
Forms React Hook Form + Zod Performant forms with runtime validation
Icons Lucide React 100+ consistent, accessible icons
Date utils date-fns Tree-shakeable, immutable date manipulation
Package manager Bun Blazing fast installs and scripts

No backend. No database server. No cloud service. Statically deployable on any CDN.

1 Like