How cartercoughlin/bloom works
Budget App is a mobile-oriented personal-finance tracker. Users authenticate, connect financial institutions through Plaid, sync balances and transactions, then categorize spending and review budgets and financial summaries. The graph also preserves the documented mobile/offline experience and the app’s subscription, tagging, and net-worth features. Several routes and feature pages are listed but unsampled; their presence is represented without inferring internal calls. Edges are limited to relationships shown in excerpts or stated in the README.
Main entry points: server.ts Supabase access · sync-transactions/route.ts Transaction sync · page.tsx Budgets · net-worth-history/route.ts Net worth history
Components 25
App experience
- Authentication
app/auth/login/page.tsx - Dashboard
app/(app)/dashboard/page.tsx - Transactions
app/(app)/transactions/page.tsx - Categories
app/(app)/categories/page.tsx - Accounts
app/(app)/accounts/page.tsx
Financial data
- Bank linking
components/plaid-link.tsx - Plaid
- Transaction sync
app/api/sync-transactions/route.ts - Plaid sync logic
lib/plaid-sync.ts - Balance APIs
app/api/account-balances/route.ts - Supabase access
lib/supabase/server.ts - Financial records
Budgeting and insights
- Budgets
app/(app)/budgets/page.tsx - Net worth
app/(app)/net-worth/page.tsx - Subscriptions
app/(app)/subscriptions/page.tsx - Tags
app/(app)/tags/page.tsx - Net worth history
app/api/net-worth-history/route.ts - Net worth reconstruction
lib/net-worth/reconstruct.ts - Subscription summaries
lib/subscriptions.ts - Budget pacing
lib/budget/pacing.ts
Mobile and caching
- App data cache
contexts/app-data-context.tsx - Cached data loader
hooks/use-cached-data.ts - Native platform
lib/capacitor.ts - Offline PWA
public/sw.js
Other components
- User
Connections 27
- User → Authentication: signs in
README.md - User → Bank linking: connects account
README.md - Bank linking → Plaid: links institution
README.md - User → Transaction sync: requests sync
- Transaction sync → Supabase access: authenticates and queries
app/api/sync-transactions/route.ts - Transaction sync → Plaid sync logic: invokes sync
app/api/sync-transactions/route.ts - Plaid sync logic → Plaid: imports financial data
README.md - Supabase access → Financial records: reads and writes
- Balance APIs → Supabase access: uses server client
app/api/account-balances/route.ts - User → Dashboard: reviews insights
README.md - User → Transactions: manages spending
README.md - User → Categories: categorizes transactions
README.md - User → Accounts: views accounts
README.md - User → Budgets: tracks budgets
README.md - Budgets → Budget pacing: calculates pacing
app/(app)/budgets/page.tsx - User → Net worth: reviews net worth
README.md - Net worth → Net worth history: requests history
- Net worth history → Supabase access: loads account data
app/api/net-worth-history/route.ts - Net worth history → Net worth reconstruction: reconstructs history
app/api/net-worth-history/route.ts - User → Subscriptions: tracks subscriptions
README.md - Subscriptions → Subscription summaries: summarizes subscriptions
app/(app)/subscriptions/page.tsx - User → Tags: organizes transactions
- Budgets → Cached data loader: loads cached data
app/(app)/budgets/page.tsx - Cached data loader → App data cache: reads and updates
hooks/use-cached-data.ts - Cached data loader → Native platform: uses disk cache
hooks/use-cached-data.ts - User → Offline PWA: uses offline app
README.md - User → Native platform: uses native app
README.md