BoxBudget: A Local AI-Assisted Personal Finance Tracker
Introduction
BoxBudget is an offline-first, privacy-focused budgeting app designed to give users complete control over their finances without ever needing an internet connection. By leveraging local AI to extract and organize financial data from PDF statements, BoxBudget transforms tedious manual tracking into an effortless and intelligent experience—all inside a beautifully designed, cross-platform desktop app.
Overview
BoxBudget is a containerized personal finance application that empowers users to manage their spending without sacrificing privacy. It uses a local large language model (LLM) to intelligently parse bank statements and store transactions in a lightweight, embedded SQLite database.
The user interface is built using Tauri + SvelteKit, a modern, performant framework optimized for building cross-platform desktop applications. Users can interact with their transactions, categorize them, flag anomalies, and visualize their financial trends—all in a clean, reactive interface that runs entirely offline.
The app follows an MVC-style architecture with FastAPI for backend APIs, all wrapped in Docker containers for easy setup and portability.
Use Cases
- Import and parse bank statement PDFs offline using an embedded LLM.
- View and manage all financial transactions in a searchable table.
- Categorize, flag, and annotate individual expenses.
- Visualize spending patterns with interactive charts and dashboards.
- Deploy once and run locally on Windows, macOS, or Linux—no cloud required.
Features and Requirements
Functional Requirements
ID |
Feature |
Description |
FR1 |
PDF Upload |
Users can upload their bank statement PDFs. |
FR2 |
Transaction Parsing |
Local LLM extracts transactions from PDF and populates database. |
FR3 |
Transaction Table |
Users can view, search, sort, and filter transactions. |
FR4 |
Manual Editing |
Transactions can be edited, categorized, and flagged. |
FR5 |
Analytics Dashboard |
Charts/stats for spending per category, trends, top vendors, etc. |
FR6 |
Local-Only Operation |
All functionality works offline. |
Nonfunctional Requirements
ID |
Requirement |
Description |
NFR1 |
Privacy |
All data stays local; no cloud usage. |
NFR2 |
Portability |
Must run on Windows, macOS, and Linux. |
NFR3 |
Performance |
LLM and parsing should respond in < 2s for 5-page PDFs. |
NFR4 |
Modularity |
Codebase should be cleanly structured for maintainability. |
NFR5 |
Usability |
UI should be intuitive and responsive. |
NFR6 |
Containerization |
App must run in Docker containers for backend/frontend isolation. |
MVP Tech Stack Summary
Component |
Technology |
Frontend |
Tauri + SvelteKit |
Backend API |
FastAPI |
ORM/Database Layer |
SQLAlchemy + SQLite |
LLM Parser |
Local LLM via Ollama (llama3 , mistral , etc.) |
Containerization |
Docker |
Charts/Stats |
SVG |
🧠 Why Tauri + SvelteKit?
Tauri apps use native webview technology, making them much smaller, faster, and more secure than Electron-based apps. SvelteKit adds an elegant, reactive framework for building the UI with near-zero overhead.
System Considerations & Goals
Goal |
Description |
Extensibility |
Clean separation of concerns for adding budgeting features later. |
Offline-first |
Core feature—no online interaction required post-installation. |
Low Latency |
UI and backend must respond quickly (<2s) to user actions. |
Real-time-ish UI |
Svelte reactivity ensures data changes are instantly reflected. |
Asynchronous |
FastAPI async endpoints for parsing, DB updates, and background tasks. |
Resource-Efficient |
SQLite + Tauri + Svelte result in minimal footprint for low-end machines. |
Other Considerations
Platform |
Key Limitation |
BoxBudget Advantage |
Mint |
Requires cloud syncing and bank login |
100% offline, private |
YNAB |
Paid subscription required |
Free, open, and extensible |
Personal Capital |
Cloud-based, not customizable |
Local-first, customizable, developer-friendly |
Excel/Sheets |
Manual entry, no parsing |
AI-assisted parsing + insights |
Potential Drawbacks & Concerns
- PDF Parsing Accuracy: Parsing can fail if statements are poorly formatted or scanned.
- Cross-platform Testing: Tauri requires thorough testing on all OS environments.
- Hardware Requirements: Local LLMs may be slow or memory-intensive on old systems.
- Security Updates: Offline apps must handle dependency and container security updates manually.
Future Enhancements (Post-MVP)
Enhancement |
Description |
Budget Rules |
Users set monthly limits and receive local alerts when exceeded. |
Recurring Transaction Detection |
AI highlights subscriptions and regular payments. |
Encrypted Storage |
Use AES encryption for local DB and parsed data. |
Mobile App Sync |
Optional offline syncing via QR or LAN with a mobile version. |
Voice Budget Queries |
Use local speech-to-text to ask budget questions like "How much on food?" |
PDF Template Training |
Train LLM to improve accuracy with user-specific bank formats. |