Welcome to FollowTheMoney
FollowTheMoney is a privacy-first money tracking app designed for simplicity and clarity. Track income and expenses, explore visual insights, and choose between Budget Mode for daily tracking or Seasonal Budget Mode for off-season planning. All your data stays on your device—no cloud, no tracking.
Quick Start
- Tap the green circle (Income) or red circle (Expense) on the Home screen.
- Prefer a single control? Enable Single button mode in Settings → General. Tap once for an expense, or press & hold for ~1 second—the button will fade from red to green as confirmation—then release to add income.
- Enter the amount using the numeric keypad (stored as cents with two decimals).
- Choose or type a Category (required) and Name (optional but recommended).
- Optionally tap "Add note" to include additional context.
- Tap Add to save the transaction.
Home Screen
Balance: Shows your current total (income minus expenses).
Badge: Displays "Budget mode" by default, or "Off-season"/"Season active" when Seasonal Budget Mode is enabled.
Input Buttons: The default layout shows two circles (green for income, red for expense). If you enable Single button mode, only the red button remains—tap for expense, or press and hold until it morphs to green to submit an income entry.
Dashboard Cards:
- Budget Mode (default): Cards show Today, This Week, and This Month with income (green) and expenses (red) totals.
- Seasonal Budget Mode: Cards display Daily, Weekly, and Monthly allowances with actual spending during off-season periods.
Recent Transactions: Quick view of your latest entries. Tap any item to edit.
History Screen
Type Filters: Use the Income, All, or Expense pills at the top to filter transactions by type.
Category & Name Chips: Filter by category or name by tapping the chips below the type filters. Tap "All categories" or "All names" to clear the filter.
Group Summary: A blue summary card shows totals and entry count for your current filter selection. Long-press to open detailed breakdown.
Editing Transactions:
- Tap the pencil icon on any transaction to edit.
- Swipe left or right to delete (disabled when History Lock is on in Settings).
- When editing, you can modify amount, category, name, note, date/time, and set recurring frequency.
Recurring Transactions: When editing a transaction, enable "Repeat this transaction" and choose Weekly, Monthly, or Yearly frequency.
Insights Screen
Best viewed in landscape mode. The Insights screen visualizes your financial data with interactive charts.
Classic View (Donut Chart)
- Breakdown Card (left): Lists categories or names with percentages and amounts.
- Donut Chart (right): Visual pie chart showing proportions of each category/name.
- Center Overlay: Shows total amount and current scope (e.g., "Expense · by categories").
- Controls: Toggle between Income/Expense and group by Categories or Names.
Timeline View
Tap the bar chart icon at the top to switch to Timeline mode.
- Line Graph: Shows income (green) and expense (red) trends over time.
- Inspect Mode: Tap the "Inspect" button to enable interactive cursor.
- Draggable Cursor: Drag the vertical line across the timeline to view transactions for specific days.
- Popup Details: Shows date and transaction list. Scroll indicators (arrows) appear when there are more than 2 transactions:
- Down arrow (▼): More content below
- Up arrow (▲): More content above
- Both arrows visible when in the middle of the list
- Scroll inside the popup to view all transactions for that day.
Settings
General
- Theme Toggle: Switch between Light and Dark themes (top-right).
- Date Format: Choose Day/Month/Year, Month/Day/Year, or Year/Month/Day.
- Currency Symbol: Customize the symbol displayed after amounts (€, $, etc.).
- Home Input Buttons: Swap between two-circle layout (default) and Single button mode (tap for expense, hold for 1s to add income).
Seasonal Budget
- Toggle Switch: Turn Seasonal Budget Mode on or off.
- Off (default): Dashboard shows Today/This Week/This Month totals.
- On: Dashboard shows Daily/Weekly/Monthly allowances during off-season.
- Season Dates: When enabled, set working season start/end dates to calculate off-season allowances.
History Lock
Enable to prevent accidental swipe-to-delete in History. You can still edit transactions using the pencil icon.
Data Export & Import
- Share backup: Creates a JSON file you can share via your device's share sheet.
- Import backup: Restore data from a JSON backup file. Warning: This replaces all current data—export first!
- Automatic local backups are saved in browser storage as a safety net.
Advanced
Clear All Data: Deletes all transactions and resets settings. A confirmation dialog will appear before deletion.
Adding & Editing Transactions
When creating:
- Amount: Use the numeric keypad (stored internally as cents).
- Category: Required field. Used for grouping in Insights and filtering in History.
- Name: Optional. Becomes required once you enter a category. Helps identify specific sources or payees.
- Note: Optional. Tap "Add note" to include free-text details.
When editing:
- All above fields plus:
- Date/Time: Adjust to backdate entries.
- Recurring: Enable "Repeat this transaction" and select frequency (Weekly/Monthly/Yearly).
Tips & Best Practices
- Use consistent categories: Autocomplete suggestions help you reuse existing categories and names.
- Add names for clarity: While optional, names make it easier to identify transactions later.
- Long-press for details: In History, long-press the group summary card to see detailed breakdowns.
- Long-press to delete chips: Remove unwanted categories or names from suggestions by long-pressing chips.
- Export regularly: Back up your data periodically via Settings → Share backup.
- Use Budget Mode for simplicity: If you don't need seasonal tracking, keep Seasonal Budget Mode off for straightforward daily/weekly/monthly summaries.
Troubleshooting
- Q: The donut chart says "No data to visualize yet" but I have transactions.
- A: Ensure you've selected the correct type (Income or Expense). The app auto-switches if the opposite side has data, but zero-value transactions won't render.
- Q: Dashboard cards aren't updating after toggling Seasonal Budget Mode.
- A: Close and reopen Settings, or navigate to another screen and back. The cards should refresh automatically.
- Q: I can't delete transactions in History.
- A: Check if History Lock is enabled in Settings. Disable it to allow swipe-to-delete.
- Q: Recurring transactions aren't being created automatically.
- A: Recurring frequency is stored with the transaction for reference but doesn't trigger automatic creation yet. This feature is planned for future updates.
- Q: Timeline graph arrows aren't showing.
- A: Arrows only appear when there are more than 2 transactions for the selected day. Enable "Inspect" mode and drag to a busy day.
- Q: Where is my data stored?
- A: All data is stored locally in your browser's IndexedDB and localStorage. Nothing is sent to external servers.
- Q: I imported a backup but don't see my data.
- A: Reload the app after importing. Ensure the JSON file is a valid backup created by this app's export feature.
Privacy & Security
- No cloud sync: Your data never leaves your device.
- No tracking: The app doesn't collect analytics or usage data.
- Local storage only: Uses browser IndexedDB and localStorage.
- Export control: You control all backups—share them only with trusted parties.
- PWA support: Install as a Progressive Web App for offline access and a native-like experience.
Keyboard Shortcuts & Accessibility
- Press Tab to navigate between buttons and inputs.
- Press Escape to close modals and sheets.
- Large touch targets for mobile-friendly interaction.
- High-contrast Light theme available for improved visibility.
- Aria-live regions announce changes in History and Insights.
Technical Details
- Data structure: Transactions stored as { id, amountCents, createdAt, name, category, note, recurringFrequency }.
- Color system: Chart colors derived deterministically from category/name labels using a hash-based palette.
- Service Worker: Caches app shell for offline use. Updates trigger automatic reload when available.
- No dependencies: Built with vanilla JavaScript—no external frameworks.