// the find
jameskokoska/Cashew
💸 An app created to help users manage a budget and purchases
Cashew is a Flutter-based personal budgeting and expense-tracking app with a local SQL store (Drift) and Firebase for sync/auth, shipping on iOS, Android, web (PWA), and as GitHub binaries. It's aimed at end users who want a free, full-featured money-tracking app, not at developers looking for a library or backend to build on.
The feature set is genuinely deep for a solo-maintained app: multi-currency accounts with live conversion, recurring/subscription/debt transaction types, CSV and Google Sheets import, home-screen widgets, and goal tracking all exist and are documented, not just stubbed. The database layer uses Drift with a real migration discipline — bump a schema version constant, dump the schema, generate step-by-step migrations, then write the upgrade logic — which is more rigor than most apps this size bother with. It's also a proven cross-platform Flutter codebase with real App Store/Play Store presence and reviews, so the UI and platform-abstraction code (e.g. the getPlatform() wrapper to work around Flutter web lacking Platform) has been exercised by actual users, not just CI.
The author explicitly isn't accepting pull requests or contributions due to licensing/compensation concerns, so despite being open source under a public license, it functions more as source-available than a project you can meaningfully collaborate on. It leans hard on Firebase/Google for login and backup, which is an odd dependency for a personal finance app where users often want to avoid handing a third party their spending data. The README itself flags internal naming debt that was never cleaned up after UI renames (Wallets stayed Wallet internally after becoming 'Accounts', same for Objectives/Goals), a small but telling sign of accumulated inconsistency. The Long Term Loans accounting is also a documented hack — the goal's stored total is unused and the real total gets derived by summing transaction polarities instead — the kind of implicit, untested business rule that's easy to silently break during a refactor.