Flow is a free, open-source, and beautifully simple
expense tracker — built with a focus on great UX, works fully offline, and runs
seamlessly across platforms.
You can build and run for Linux and macOS. Haven't tested Windows yet1
- Simple UX helping you efficiently track your finances
- Infinite accounts and currencies (including various cryptos)
- Categories, tags, file attachments, geo tagging (optional)
- Reflect on your spendings
- Fully-offline2
- Full control over your data
- No trackers, no analytics
- Fully recoverable backups (ZIP/JSON)
- Export CSV, PDFs
- Periodic auto-backups to iCloud
- Absolutely free (please donate 🥺)
- URI-based automation
You can add one or more transactions using flow-mn schema uris.
Check out the supported JSON Schema file in schemas folder.
Currencies are based on the account, so there's no way to specify it at the moment.
When adding single transactions, properties must be provided as query params.
{
"title": "Tous les jours",
"amount": 42000.00
}turns into:
flow-mn:///transaction/new?title=Tous+les+jours&amount=42000.00
When adding multiple transactions, you must provide stringified version of the following as "json" query param.
{
"t": [
{
"title": "Fresh blueberry piece",
"amount": "13000.00",
"transactionDate": "2011-12-05",
"category": "Food",
"tags": "My fave cafe",
"accountUuid": "faa6d523-277f-46af-9493-67768e5b48ab",
},
{
"title": "Caffe Mocha ice",
"amount": "10000.00",
"transactionDate": "2011-12-05",
"category": "Drinks"
}
]
}turns into
flow-mn:///transaction/new?json=%7B%22t%22%3A%5B%7B%22title%22%3A%22Fresh%20blueberry%20piece%22%2C%22amount%22%3A%2213000.00%22%2C%22transactionDate%22%3A%222011-12-05%22%2C%22category%22%3A%22Food%22%7D%2C%7B%22title%22%3A%22Caffe%20Mocha%20ice%22%2C%22amount%22%3A%2210000.00%22%2C%22transactionDate%22%3A%222011-12-05%22%2C%22category%22%3A%22Drinks%22%7D%5D%7D
Please read Contribuition guide, and Code of Conduct before contributing.
- Flutter (latest stable)
Other:
- JDK 11 or later if you're gonna build for Android
- XCode if you're gonna build for iOS/macOS
- To run tests on your machine, see Testing
Building for Windows, macOS, and Linux-based systems requires the same dependencies as Flutter. Read more on https://docs.flutter.dev/platform-integration
If you plan to run tests on your machine, ensure you've installed ObjectBox dynamic libraries.
Install ObjectBox dynamic libraries3:
bash <(curl -s https://raw.githubusercontent.com/objectbox/objectbox-dart/main/install.sh)
Run tests with: flutter test
Flow is a personal project developed during my free time, and it generates no income. Consider helping Flow! Here are some suggestions:
- Give a star on GitHub
- Leave a review on Google Play and App Store
- Tell a friend
- Buy me a coffee
Maintaining Flow on the App Store requires a substantial annual fee (see Apple Developer Program), which I currently cover. To ensure Flow's continued existence and future development, your support is greatly appreciated.
Thank you to all the contributors, supporters, testers, and those who contributed indirectly 🤍
- Arabic - thanks to Ultrate
- English
- French (France)
- German (Germany) - thanks to MarkusWangler
- Italian (Italy) - thanks to albertorizzi
- Mongolian (Mongolia)
- Russian (Russia)
- Spanish (Spain)
- Turkish (Turkiye) - thanks to NoRiskNoViski
- Ukranian (Ukrain)
- Czech (Czechia) - thanks to Miloš Koliáš through email
See Translation guide if you want to make Flow available to your language
Footnotes
-
Will be available on macOS, Windows, and Linux-based systems, but no plan to enhance the UI for desktop experience for now. ↩
-
Flow requires internet to download currency exchage rates. Only necessary if you use more than one currencies ↩
-
Please double-check from the official website, may be outdated. Visit https://docs.objectbox.io/getting-started#add-objectbox-to-your-project (make sure to choose Flutter to see the script). ↩
