Noureddine RAMDI / Cashew: A local-first Flutter budget app blending Drift SQL with Firebase sync

Created Tue, 05 May 2026 16:46:42 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

jameskokoska/Cashew

Building a finance app that works smoothly across mobile and web platforms isn’t trivial, especially when you want offline-first reliability combined with cloud synchronization. Cashew tackles this by mixing a local SQL database with Firebase-backed authentication and syncing, all wrapped in a Flutter app that adapts to iOS, Android, and the web.

what Cashew does and how it is built

Cashew is a budget management app written in Dart using Flutter, targeting three platforms: iOS, Android, and web as a Progressive Web App (PWA). The core architectural choice is a local-first design, meaning the app’s primary data store is on the device itself, handled by Drift — a Flutter ORM for SQLite databases. This local SQL storage ensures the app remains fast and fully functional offline, a must-have for finance apps where users want immediate access to their data without network delays.

To complement local storage, Cashew integrates Firebase for user authentication and cloud synchronization. This hybrid approach balances offline-first benefits with multi-device data consistency and backup. Users can log in, sync their budget data across devices, and maintain a cloud backup. Additionally, the app supports Google Drive backup, adding another layer of redundancy.

The app is designed with real-world finance needs in mind. It supports multiple accounts with different currencies, complete with conversion capabilities. Security is addressed through biometric authentication, providing user convenience while keeping data safe. Data import and export options include CSV files and Google Sheets, making it easier for users to migrate or analyze their data externally.

The UI uses Flutter’s Material You design system, allowing the interface to adapt dynamically to platform conventions and user-selected themes, delivering a consistent and modern look across devices.

technical approach and what stands out

What differentiates Cashew is its balanced architecture that mixes local-first data persistence with cloud sync, a combination that’s not trivial to implement well. Drift manages the local SQL database efficiently, offering a robust ORM layer tailored for Flutter. This means the app can handle complex queries and transactions locally, which is critical for finance operations.

On the cloud side, Firebase Authentication is a standard choice for securing user identity, but pairing it with cloud sync adds complexity. The repo’s use of Firebase for syncing suggests a straightforward cloud backend, but it’s complemented by Google Drive backup, indicating a hybrid sync/backup strategy rather than a purely Firebase-based solution. This choice mitigates risks of lock-in and adds resilience.

The codebase includes modifications of some discontinued Flutter packages, which hints at the developer’s commitment to maintaining functionality despite ecosystem changes. This is a tradeoff between using stable but no longer maintained dependencies versus rewriting components from scratch.

The app also supports biometric authentication, which requires platform-specific integrations and careful handling of security contexts in Flutter. This feature adds a professional touch, enhancing both security and user experience.

From a UI perspective, using Material You’s adaptive theming ensures the app feels native on each platform without multiple codebases. This is a practical demonstration of Flutter’s strengths for cross-platform UI.

explore the project

The repository’s documentation outlines the architectural choices and key features but does not provide explicit installation or build commands. To understand and work with the project, start by reviewing the README for an overview of its dependencies and runtime requirements.

The codebase is primarily Dart and Flutter code, with the database layer centered around Drift. Look into the database schema and queries to understand how the local-first data model is structured. The integration with Firebase for authentication and sync is likely configured in the Flutter app’s initialization and service layers.

There are also scripts included in the repo for deployment automation and translation management, which can provide insights into how the app is built and maintained over time.

verdict

Cashew is a solid example of a solo developer tackling the common but challenging problem of building a finance app that works offline and online across multiple platforms. The local-first architecture with Drift ensures good performance and offline reliability, while Firebase and Google Drive provide sync and backup options.

Its multi-currency support, biometric security, and adaptive UI features make it relevant for users and developers looking for a practical Flutter finance app with real-world usability.

Limitations include the reliance on some discontinued Flutter packages, which might pose maintenance challenges long-term. Also, the sync mechanism is not deeply detailed, so integrating or customizing cloud sync may require digging into the code.

Overall, Cashew is worth exploring if you’re interested in Flutter apps that balance local persistence and cloud capabilities, especially in finance or similarly data-sensitive domains.


→ GitHub Repo: jameskokoska/Cashew ⭐ 4,302 · Dart