Track every dollar you earn and spend — without sending a single byte to the cloud.
Works in any browser · Installable as an app · 100% offline-capable
A privacy-first PWA finance tracker for freelancers and individuals who refuse to hand their financial data to a cloud service. All data lives in your browser's localStorage — no account, no sync, no leak.
Every finance app wants to connect to your bank. The ones that don't still sync your transactions to their servers — meaning your salary, your recurring subscriptions, and your spending habits are sitting in a database you don't control.
Most finance trackers require:
✗ Account creation + email verification
✗ Bank login / OAuth / Plaid connection
✗ Data synced to their cloud
✗ Internet connection to view your own data
✗ Trusting a third party with your net worth
Submap stores everything in your browser's localStorage. Open the app, track your money, close it — nothing left your device.
Submap approach:
✓ Zero account required — open and use immediately
✓ All data stays in your browser
✓ Works 100% offline once loaded
✓ Installable to home screen like a native app
✓ Your financial data = your business only
| Platform | How |
|---|---|
| Live web app | submap.vercel.app |
| iOS (add to home screen) | Open in Safari → Share → Add to Home Screen |
| Android (install as app) | Open in Chrome → Menu → Install app |
| Self-host | Clone → npm run build → deploy to Vercel/Netlify/any static host |
⭐ Star on GitHub
| Feature | What it does |
|---|---|
| Local Storage Only | 100% browser-side — no database, no cloud sync, no account |
| Expense & Income Tracking | Add, edit, delete transactions with full category support |
| Recurring Transactions | Weekly / monthly / yearly recurrences with auto-generation |
| Custom Categories | Create categories with icons, colors, and monthly budget limits |
| Budget Alerts | Set per-category spending limits and see budget health at a glance |
| Analytics Dashboard | Interactive charts: net flow, category breakdown, multi-month trends |
| Multi-Currency | USD, EUR, INR, GBP with locale-correct number formatting |
| Dark Mode | Full dark / light / high-contrast theme support |
| PWA Ready | Installable on iOS and Android, works fully offline |
| Transaction Tags & Notes | Add freeform tags and notes to any transaction |
| Layer | Technology |
|---|---|
| Framework | React 18 + TypeScript |
| Build tool | Vite 6 |
| Styling | Tailwind CSS 4 |
| Charts | Recharts 3 |
| Animations | Motion (Framer Motion) |
| Icons | Lucide React |
| Storage | Browser localStorage |
Node.js v18 or higher.
git clone https://github.com/Rishiidev/Submap-App.git
cd Submap-App
npm install
npm run devApp runs at http://localhost:3000.
npm run build
# Output: dist/ — deploy to Vercel, Netlify, or any static host| Data | Where it lives |
|---|---|
| Transactions | localStorage in your browser |
| Categories & budgets | localStorage in your browser |
| Settings & theme | localStorage in your browser |
| Recurring rules | localStorage in your browser |
| Protected | Why |
|---|---|
| Your bank account | No bank sync, ever |
| A server database | Zero backend — pure frontend |
| Third-party analytics | No tracking scripts included |
| Your identity | No account, no email, no login |
iOS (Safari)
- Open submap.vercel.app in Safari
- Tap the Share icon at the bottom
- Scroll down and tap Add to Home Screen
Android (Chrome)
- Open submap.vercel.app in Chrome
- Tap the three-dot menu (top right)
- Tap Install app or Add to Home screen
MIT — see LICENSE