How onetrueasian/penny-worth works
Vault Spend is a local desktop budgeting and transaction-ledger app. The main workflow is opening a profile, viewing and managing financial records, and saving changes to local data; imports, budgeting, forecasting, reports, and investment tracking extend that workflow. The UI communicates with a Tauri backend, while the Rust core provides import, categorization, protection, and storage modules. The README documents additional capabilities whose internal wiring is not shown in the sampled source, so those connections are kept high-level.
Main entry points: App.tsx App shell · importer.rs Import engine · main.tsx App entry · StartupGate.tsx Startup gate
Components 25
Desktop experience
- App entry
src/main.tsx - Startup gate
src/StartupGate.tsx - App shell
src/App.tsx
Financial records
- Accounts
src/AccountsView.tsx - Ledger
src/App.tsx - Import workflows
src/ImportInboxDialog.tsx - Import engine
core/src/importer.rs - Statement loaders
core/src/csv_loader.rs - Categorization
core/src/categorizer.rs - Category rules
core/src/rules.rs
Planning and insights
- Budgets and goals
src/BudgetView.tsx - Cash flow
src/CashFlowView.tsx - Investments
src/InvestmentsView.tsx - Reports
src/ReportsView.tsx - Household
src/HouseholdView.tsx
Local platform
- Tauri commands
src-tauri/src/commands.rs - Core store
core/src/store.rs - Price integration
src-tauri/src/live_price_provider.rs - Update check
src-tauri/src/updater.rs
Profiles and protection
- Profile management
src-tauri/src/profiles.rs - Protection lifecycle
src-tauri/src/protection_lifecycle.rs - Backups
src-tauri/src/backups.rs
Other components
- User
- Price providers
- GitHub releases
Connections 24
- User → App entry: opens app
- App entry → Startup gate: renders gate
- Startup gate → App shell: renders app
- User → App shell: uses features
- App shell → Tauri commands: invokes commands
- Tauri commands → Core store: accesses data
- App shell → Accounts: shows accounts
- App shell → Ledger: shows ledger
- App shell → Import workflows: opens import
- Import workflows → Import engine: submits import
- Import engine → Statement loaders: parses statements
- Import engine → Categorization: categorizes records
- App shell → Category rules: manages rules
- App shell → Budgets and goals: shows planning
- App shell → Cash flow: shows forecasts
- App shell → Investments: shows holdings
- App shell → Reports: shows reports
- App shell → Household: shows breakdowns
- App shell → Profile management: manages profiles
- Profile management → Protection lifecycle: starts protection
- App shell → Backups: manages backups
- Price integration → Price providers: fetches prices
- App shell → Price integration: requests prices
- Update check → GitHub releases: checks releases