Skip to content

sanudin-dev/money-tracker

Repository files navigation

Money Tracker

Track personal expenses locally with optional sync to Zapier and/or Google Sheets. Works offline. Installable as a PWA on any device.

Live demo → mt.sanudin.dev


Features

  • Add expenses with category, date, and optional description
  • Browse history by month with per-category breakdown
  • Edit and delete past entries
  • Local-first — data lives on-device (IndexedDB); history always available offline
  • Optional sync to Zapier and/or Google Sheets (both can be active simultaneously)
  • Multi-currency support
  • CSV export — always available from local history
  • PWA — install on Android, iOS, or desktop; works fully offline
  • Offline sync queue — expenses saved to device and pushed when back online

Integrations

Both integrations are optional and independent — enable neither, one, or both at the same time.

Zapier Sheets API
Setup ~5 min ~2 min
What it does Sends each expense to any Zapier-connected app Writes directly to a Google Sheet
Cost Free tier (100 tasks/mo) Free

See the Compare page for details.


Stack

Next.js 16 App Router · TypeScript · Tailwind CSS · IndexedDB (idb) · Zod · @ducanh2912/next-pwa


Run locally

git clone https://github.com/sanudin-dev/money-tracker
cd money-tracker
npm install
npm run dev

Works immediately without any credentials — expenses save locally to IndexedDB.

To enable Google Sheets sync, create .env.local (see .env.example):

GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
ENCRYPTION_KEY=<output of: openssl rand -base64 32>

See the Developer page for the full Google Cloud setup guide (enable Sheets API, create OAuth client, add redirect URIs).


Deploy

Standard Next.js app — deploy to Vercel, Netlify, Render, or any Node.js host. No database required.

For Google Sheets sync, set these environment variables on your host:

GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
ENCRYPTION_KEY

Also add your production domain's callback URL to Google Cloud Console: https://your-domain.com/api/auth/google/callback


Install on your device

Open mt.sanudin.dev in a browser and follow the Install guide:

  • Android: Chrome → menu → Add to Home Screen
  • iOS: Safari → Share → Add to Home Screen
  • Desktop: Chrome or Edge → install icon in address bar

About

the appt to track your expenses

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages