$ show jameskokoska/Cashew
Cashew is a production-grade, cross-platform personal finance and budget tracking application built with Flutter/Dart. It manages transactions, multi-currency wallets, budgets with category-level spending limits, savings goals and loans, subscriptions, recurring/auto-pay rules, credit/debt tracking, and spending analytics (pie charts, line graphs, heatmaps, net worth summaries). It ships to Android (with home screen widgets), iOS, web (PWA), and desktop. Data persists locally in SQLite via the Drift ORM with 46 managed schema migrations, and synchronizes across devices through a custom Google Drive sync client, with shared-budget features on Firebase Auth/Firestore/Cloud Functions, plus optional Gmail and notification scanning for auto-generated transactions.
The LLM identified 6 files worth highlighting for reuse:
Self-contained animated numeric counter that tweens value changes over time using TweenAnimationBuilder. No internal app dependencies, so it can be extracted directly into any Flutter dashboard or stats display for smooth count-up/count-down effects.
Color selection widget with a custom HSV ring color picker, sliders, and hex input. Demonstrates non-trivial color-space math and custom touch interaction; liftable into any Flutter app needing a designer-grade color picker without pulling in a third-party dependency.
Calendar heatmap that renders per-day intensity (spending) as color-coded cells. Though used for financial data here, the rendering logic is domain-agnostic and could power GitHub-style contribution heatmaps or activity trackers with minimal adaptation.
Rate-limiting utilities (throttler, plus a companion debouncer at lib/widgets/util/debouncer.dart) that prevent redundant async work and race conditions in an event-heavy UI. Zero internal coupling to the app; directly reusable in any Dart/Flutter project.
Global overlay snackbar system with message queueing, drag-to-dismiss, and progress support. A more flexible replacement for Flutter's built-in SnackBar that is reasonably self-contained and adaptable to new projects needing app-wide notification surfaces.
Infinite-scroll month selector with custom date-range detection. A polished alternative to stock date pickers for period-based reporting UIs; self-contained and reusable wherever month bucketing and navigation across months is needed.