Most personal finance applications are free cloud-based services. That means you pay for the service with your data. The company operating the service makes money by leveraging and/or selling your personal financial data. LibreBookKeeper is an alternative that allows the user to retain exclusive ownership of thier financial data.
LibreBookKeeper was designed for ease of use. In fact, the application was born out of my frustration with how clumsy most personal finance apps felt. (Looking at you, GNUCash 😛) Migrating from one app to another, tracking spending, categorizing transactions, generating reports etc, should be easy, and the app should not get in your way.
Flexible, Step-by-Step Import Wizard for CSV and QIF files
Human/Machine teamwork makes data entry a breeze
LibreBookKeeper is a local web app that is currently packaged as an Electron app.
LibreBookKeeper stores data in two difference places / two different ways:
* Linux: `$HOME/.local/share/LibreBookKeeper/` * Windows: `%APPDATA%\LibreBookKeeper\` * Mac OS: `$HOME/Library/Application Support/LibreBookKeeper/`
.lbkfiles. It will prompt the user where they want to store thier
* `.lbk` files are actually just gzipped JSON files. If you want to poke around inside one, just run `cat MyBooks.lbk | gunzip > MyBooks.json`.
LibreBookKeeper will automatically save the
.lbk file every time anything in the database changes, but this is rate limited to once every 5 seconds. It will also attempt to save the
.lbk file before quitting. If it fails to auto-save it should pop up a warning dialog. Also, the data will not be necessarily lost, because it will still be in leveldb.
LibreBookKeeper writes log messages to a file called
LibreBookKeeper.log in the same folder where it stores leveldb. It prints log messages every time it loads a file, auto saves, etc. This log contains information about where in leveldb the information for a particular lbk file is stored.
There is a flag called
isProduction inside settings.js. Setting this to false will enable the developer tools and re-direct logging to stdout.
Timeline view needs to be implemented
Global error & unhandled rejected promise handler needs to be added
allow user to manually enter/create a txn
Hotkeys for selecting categories.
File association (.lbk) should be set up on first run of the app
Multiple currencies (currently hardcoded to dollars)
Support investment accounts and investment transactions
According to Mr User Extraordinaire the import script option is enough to make peoples heads fly off thier shoulders and land in a ditch when they see it
Distributed web app?