- ✅ TanStack React Query installed and configured
- ✅ Provider pattern implemented (AuthProvider, SubscriptionProvider)
- ✅ Clean hooks architecture
- ✅ Amplify client abstraction
- ✅ Type definitions centralized
useAuth.tsx- Authentication context and hookuseAmplifyClient.ts- Client selection based on auth stateuseBudget.ts- Budget data fetching with React QueryuseTransactions.ts- Transactions data fetchinguseAccounts.ts- Accounts data fetchinguseSettings.ts- Settings data fetching
SubscriptionProvider.tsx- Real-time subscriptions with automatic query invalidation
amplify-client.ts- Centralized Amplify clienttypes.ts- All TypeScript types
TabsView.tsx- Clean tabs implementation with hooksSettingsPage/index.tsx- Complete settings page (copied from reference)SettingsPage/SignOutButton.tsx- Sign out componentBudgetPage/index.tsx- Placeholder (needs implementation)AccountsPage/index.tsx- Placeholder (needs implementation)
main.tsx- Updated with QueryClient and providersApp.tsx- Cleaned up with DnD support preserved
Need to create these small components (<200 lines each):
BudgetPage/BudgetTable.tsxBudgetPage/BudgetProgress.tsxBudgetPage/BudgetTableCategoryRow.tsxBudgetPage/BudgetCategoryDetail.tsxBudgetPage/BudgetCategoryDetailCard.tsxBudgetPage/UncategorizedTransactions.tsxBudgetPage/UncategorizedTransactionBubble.tsxBudgetPage/CategorizeTransactionDialog.tsxBudgetPage/SyncTransactionsButton.tsx
AccountsPage/Accounts.tsxAccountsPage/PlaidLink.tsx(or similar)AccountsPage/TellerLink.tsx(or similar)
src/helpers/sync-all-transactions.tssrc/helpers/sync-financekit-transactions.tssrc/helpers/sync-tellerio-transactions.tssrc/helpers/plaid.ts
- Any shared components between pages
- No Prop Drilling: React Query manages all state
- Small Components: Each component <200 lines
- Provider Pattern: Clean separation of concerns
- Hooks Pattern: Reusable data fetching logic
- Type Safety: Centralized types
- Real-time Updates: Automatic via subscriptions
- Caching: Built-in with React Query
- Original:
/Users/xss/repo/jpc-finance-2 - Architecture inspiration:
/Users/xss/repo/jpc-eats