13 ms·
My Budget – free, open-source offline cross-platform budgeting
- vijaybritto 7y agoIm starting a Flutter course today. This app will be one of my first attempts at non-electron desktop apps. Lets see how this goes!
- pxtail 7y agoAre you going to put it on github? I bought Flutter course as well (the one from appbrewery recommended on googleblog [0]) but haven't got time to get started with it yet. [0] https://developers.googleblog.com/2019/05/Flutter-io19.html https://developers.googleblog.com/2019/05/Flutter-io19.html
- vijaybritto 7y agosame stuff!! Im going to put it for sure!
- tomcam 7y agoCongratulations! Releasing a significant piece of work is always an amazing time. Would love to see some screenshots in the README showing what makes it unusual, or what the typical workflow is like.
- bobblywobbles 7y agoAuthor of My Budget here. All good suggestions, thank you. Workflows and guides are what My Budget is lacking, as more core features are being built out. They are on my to-do for the app. The unique features are: - It's offline (we aren't saving any information about your budget) - Your data can be optionally encrypted at-rest - Limited support to auto-sync your transactions from your bank A typical workflow for version 3.0.0-beta+ is to add your sources of income. Then, add categories of transactions you have (by category and subcategory). Next, add transactions based upon your categories and subcategories. Reports and other features like multi-currency/account/users are coming soon.
- cottsak 7y agoI only skimmed the code, but when it's encrypted, is the only key/input that iv that you've got in the source there?
- bobblywobbles 7y agoThe data is encrypted using the Crypto library from Node (https://nodejs.org/api/crypto.html#crypto_crypto_createcipheriv_algorithm_key_iv_options https://nodejs.org/api/crypto.html#crypto_crypto_createciphe...). The passphrase and IV are used to encrypt/decrypt the data using the aes-256-cbc algorithm (https://github.com/reZach/my-budget/blob/master/app/crypto/code.js#L52 https://github.com/reZach/my-budget/blob/master/app/crypto/c...).
- groovybits 7y agoIn the screenshot provided in the README, I see there is a 'sync' button next to the 'save' button. If this is essentially self-hosted, what is the application syncing to? Edit: Whoops I missed this line under "Features": > Limited* support to sync transactions with your bank. See here[1] for more details. 1: https://github.com/reZach/my-budget/wiki/Creating-a-new-connector https://github.com/reZach/my-budget/wiki/Creating-a-new-conn...
- bumpkinjunkie 7y agoI like this idea. You shouldn't have to pay to access your own bank data. Looking forward to the near future when banks either have an API or die a slow death.
- bobblywobbles 7y agoOFX is the API they use. You need specific credentials that can be found online. If a bank doesn't offer OFX support, you can use the tried-and-true method of web scraping the information out, which is what Quicken does as a last-resort.
- bobblywobbles 7y agoAuthor of My Budget. Sync is meant to sync transactions from your bank. Right now it has rudimentary screen scraping, and since I don't have infinite throughput, I wrote a way for others to create these methods for their own bank. Once it's working, I can add it into the app and others can use. I'm trying to get OFX support, which is the much-requested "auto syncing" feature that everyone wants.
- _bxg1 7y agoKind of ugly, but that's easy to fix. Great project given that services like Mint are just data vacuums.
- bobblywobbles 7y agoAuthor of My Budget here. Ah, thanks - I thought I improved it from earlier versions. What in specific do you not like about it? Specific things can help development further.
- _bxg1 7y agoI'm not a trained designer, but just looking at the screenshot in the readme: - The orange and the purple are both very bold, non-standard colors. Using one or the other makes sense as a way to draw attention to important things and give the tool personality, but having both together is a little grating. Perhaps the orange should be replaced by red? This would also be idiomatic in terms of what those buttons seem to be doing. - I think there are too many different shades of grey; the title bar, the main background, the white sections, and the category headers are all different shades. Also, something feels off about the color on the category headers. I think part of it is you have white text on a medium-gray background, which isn't quite enough contrast, but part of it may also just be the fact that those headers are darker than the "main" background color. On the other hand, it could look good to just use the title bar color on the category headers. Hard to say without trying it out. - The transactions table could use a proper border all the way around (it's visibly absent on the top and sides). - A clearer division could be made (a border line or just a bigger gap) between the "categories" and "transaction" sections, because it's not immediately clear what "delete all" will be deleting. - The "delete all" and "add new" buttons aren't aligned with the left and right bounds of their section; also, there's no reason for them to be spread out so far. They could gravitate to the right, for example. - Bolding the field labels below the word "transactions" would make it slightly clearer what purpose they serve, and vertical-aligning them with their respective fields would be slightly more pleasing. - Making the gap beneath each "sub-category +" larger than the gap above it would help connect it to the table it pertains to. This is a great further resource on usage of color: https://material.io/design/color/#color-usage-palettes https://material.io/design/color/#color-usage-palettes
- l8nite 7y agoI'd love to see an open source YNAB clone... maybe this can be evolved in that direction! Well done.
- seveneightn9ne 7y agoThat was my idea behind https://github.com/seveneightn9ne/dino-budgeter https://github.com/seveneightn9ne/dino-budgeter - you can try it out at https://dino.jesskenney.com/ https://dino.jesskenney.com/ - it's missing a lot of the sort of guidance/hand-holding that YNAB provides, and so far it only has the features I personally wanted, but it's at least been enough for me :)
- obelos 7y agoNot open source, but https://financier.io/ https://financier.io/ is browser-based YNAB clone. I'm still using YNAB4 for the time being, but will probably switch to Financier once YNAB4 stops working. EDIT: Looks like it's been updated to be an open source project: https://blog.financier.io/financier-is-now-open-source-bdfe98a5b9b6 https://blog.financier.io/financier-is-now-open-source-bdfe9...
- Kovah 7y agoFinancier looked absolutely great when I tested it a few months ago. But: lot of features missing (like recurring transactions) and the app seems to be abandoned. At least there was no activity for over a year now. What a pity.
- georgebcrawford 7y agoIIRC, it's not so much abandoned as in what the author considers a finished state. I still use it and actually just paid another year's subscription. Like you say, there are some missing features, but it does what I need it to perfectly.
- bobblywobbles 7y agoAuthor of My Budget. I'm taking inspiration from YNAB, as it has a rich feature set. Also open source so that's a plus! Thanks!
- ElijahLynn 7y agoI am looking for a spreadsheet that does similar things but also does forecasting with charts too. I want it to be a spreadsheet though. If anyone knows of an open project for this please hook me up!
- bobblywobbles 7y agoI'm working on creating reports, which would act on historical data. Forecasting is something I haven't yet thought about, or how that might work. Care to give me your thoughts here? I'm the author of My Budget.
- vlucas 7y agoHey - I am the author of BudgetSheet ( https://www.budgetsheet.net/ https://www.budgetsheet.net/ ). It is a Google Sheets add-on that links to your own Plaid account to auto-import transactions, and all the data is all stored in the spreadsheet itself so there is no other web service involved. I don't have any charts or graphs yet, but it is relatively straightforward to make them in a spreadsheet with data that has dates and numbers like the transactions do. Check it out (free for one account), and maybe I can help you with some charts. Email me at vance [at] vancelucas [dot] com or ping me on Twitter at @vlucas if you want to chat about it. I'd love to hear your ideas.
- akerro 7y agohttps://github.com/firefly-iii/firefly-iii https://github.com/firefly-iii/firefly-iii
- powersurge360 7y agoThis is very exciting for me, thank you for sharing.
- akerro 7y agohttps://gitlab.com/NickBusey/HomelabOS https://gitlab.com/NickBusey/HomelabOS
- taysix 7y agoThis looks awesome. Thank you for sharing.
- powersurge360 7y agoHow does this compare to things like beancount or ledger cli? Did you look at those and find them wanting? Personally I've used ledger and loved it but found it a bit of a pain to get going due to its manual nature and it also created a bit of a firewall for my SO because she's not inclined to spin up a terminal to look at the finances. I liked beancount for its facilities to do automatic imports but I found its reporting lackluster. I liked hledger most of all but to compile it was kind of a pain and it had many of the same complaints as ledger although its reporting and especially budgets were top notch.
- kiney 7y agoI use beancount in combination with the fava web-ui. Best of both worlds (plaintext/gui). https://beancount.github.io/fava/ https://beancount.github.io/fava/
- BeetleB 7y agoBeancount's budgeting capabilities are virtually nonexistent (despite what the author keeps claiming).
- bobblywobbles 7y agoAuthor of My Budget. I'd like to incorporate reports, that is something that is in my roadmap. Are there other features of beancount or ledger cli that you'd like to see in My Budget?
- 0xffff2 7y agoThe reason I continue to use Quicken rather than writing my own tool that I'm sure doesn't sell my data is that it allows me to relatively painlessly sync transactions from my bank. This is largely my bank's fault for not exposing some kind of API I can hook into, but nonetheless any budgeting app that doesn't sync transactions from most financial institutions is not a "solution". Just based on the single screenshot in the readme, it seems like the workflow needs work too. The information density in the screenshot looks painfully low to me.
- Canadauni 7y agoHave you looked into the plaid[0] free(test) tier? They hook into a bunch of different banks and the free tier exposes balance and transaction history. [0]:https://plaid.com/ https://plaid.com/
- lprd 7y agoDo you know if they work with EU banks? I'm in France and this looks really interesting...
- bobblywobbles 7y agoAuthor of My Budget here. Can you send me a message on the Slack channel (https://join.slack.com/t/my-budget/shared_invite/enQtNjA0NDg1MTI2MzI2LTkxZmI0M2YzMGQ2YzlkMDc1YzkxMjU1M2EyZmI4MjlkYTY3MzgwNzVhMmY2MzJhNmM4OGE0Njc0NDZiMDVkY2U https://join.slack.com/t/my-budget/shared_invite/enQtNjA0NDg...) "zachary" and we can talk about more details.
- vlucas 7y agoIf you have a free Plaid account, you might check out BudgetSheet: https://www.budgetsheet.net https://www.budgetsheet.net It imports live bank transactions into a Google Sheet for you to use however you want.
- techsupporter 7y ago
- vector_spaces 7y agoA while ago I built a simple SMS bot for my partner and I to track finances like this, and it works fairly well. The workflow is whenever we spend money we text it with "spend <amount>" or "sp <amount>", and whenever we receive money we do "add <amount>", and "save <amount>" whenever we move money to savings. I added some minimal polish like an undo command, a minimal GUI accessible via a short-lived link it sends us on request where we can add and edit recurring bills, subscriptions, and upcoming one-time or yearly major expenses. It has support for debts/loans (we can do "cc <debt> <amount>" for increasing debt, e.g. by paying with a credit card, and "pay <debt> <amount>" for payments). It sends us nightly and weekly reports letting us know progress towards savings goals and warning us if we're about to run into a tight spot based on what it knows about our spend rate, and upcoming bills and big expenses. It also bugs us if it notices we haven't transferred anything to savings recently. The fact that it doesn't sync automatically with our bank accounts is actually a feature, because the ritual of having to text it whenever we spend money forces some mindfulness of our spending habits, and the regular reports (where it chides us if we're not saving much or exceeding our spending goals) add some gamification -- we joke about how we want to make it proud of us. :)
- dhshahsndeisjwn 7y agoThis sounds cool... have you shared the code anywhere?
- vector_spaces 7y agoThanks! I haven't yet, mainly because I want to clean some things up first -- for instance, it's currently writing to a JSON file, with a job that archive a copy of it every few hours in case it gets corrupted. Which is probably totally fine for most use cases, but I plan to port it to SQLite and open source it soonish.
- switz 7y agoOpen source it now and someone might add different storage adapters -- you have eyes on it.
- zallarak 7y agogood time to plug a great paid option: https://actualbudget.com/ https://actualbudget.com/
- Isn0gud 7y agoIt is free to use locally, only the sync feature is a paid upgrade. And the data stays local.
- bobblywobbles 7y agoNot the author of this post, but I am the author of My Budget. I saw this post and said, "Hey - I know that name!" Thanks for sharing again. If you want to get in touch with me, there is also a Slack you can reach me "zachary" at (https://join.slack.com/t/my-budget/shared_invite/enQtNjA0NDg1MTI2MzI2LTkxZmI0M2YzMGQ2YzlkMDc1YzkxMjU1M2EyZmI4MjlkYTY3MzgwNzVhMmY2MzJhNmM4OGE0Njc0NDZiMDVkY2U https://join.slack.com/t/my-budget/shared_invite/enQtNjA0NDg...)
- pard68 7y agoDidnt see it in the readme or wiki/faq, what budget method does this use?
- bobblywobbles 7y agoIt's taken mostly from EveryDollar, or envelope-budgeting if that is a good analogy.
- pard68 7y agoThanks, exactly what I was hoping for!
- rootkea 7y agoBut why Slack though? Can't we have a IRC/matrix channel?
- jldugger 7y agoI use GNUCash, and despite it's substantial shortcomings, the regular flow of competition never quite hits the mark. Here's a small sample of what features I'm looking for: 1. Transaction import. OFX at a minimum, but preferably an online pull that can be automated. Many banks do support online pulls -- for example GNUcash calls out to aqbanking, with an incredibly obtuse UI, and is an area for improvement. 2. multiple accounts and currencies. I need to be able to track investments and assets. That means multiple accounts, denominated in different and possibly custom units. GNUCash allows multiple accounts and multiple currencies, but you cannot put different currencies in your own account. The work around is subaccounts per stock ticker etc., but it seems like improvements could be made here. 3. Synchronization. In my view, 'offline' is synonymous with 'disposable.' I have many years of history, and it would be unfortunate to lose it in a drive failure. I have this backed by a personal SQL server, but many people use dropbox style sync. Multiuser would be an area of improvement here. The one thing I'm not looking for is budgeting. A ledger is basically a budget with dates per item, so why not just go directly to the ledger form? Salary, mortgage payments, rent, insurance, and streaming subscriptions are all predictable expenses, just slap em into the ledger ahead of time. Even the variable stuff like dining is a bit more predictable with a credit card. The above should not be a knock to the many other systems, so please don't bother to try selling me on ledger-cli =)
- thrownthrow 7y agoI use GNUcash for business too, but use git as storage/sync instead. Also a simple fast tool with some handy little reports and graphs is http://homebank.free.fr/en/ http://homebank.free.fr/en/ We still use this for our personal finances.
- 1023bytes 7y agoWouldn't it be better just to put it up on Github Pages? It could have all the same functionality as a PWA. That way anyone could use it instantly, instead of having to download this massive Electron app.
- bobblywobbles 7y agoAuthor of My Budget. I never thought of that.. it can be an option, although it wouldn't work if you ever lost internet. I'll consider it!
- nydel 7y agoAs one person very interested in using MyBudget, I want to add that I would definitely prefer not to use Electron; but I am admittedly interested enough to go ahead and do it anyway. Once it's up and running this does seem to be the best FLOSS GUI budgeting software I've yet used.
- bobblywobbles 7y agoThanks for your input, and trying it out. I'm trying to continuously improve the software.
- jpb0104 7y agoA subject near and dear. I work on https://budgetmyway.com https://budgetmyway.com. Personally been using it for almost ten years to track my expenses. I haven’t been able to get much traction with other users. I would love to know if any of you personal finance folks find it useful. Onboarding and marketing are hard.
- paulgrahamisfat 7y agoNever used this before.
- c- 7y ago161MB MSI for a budgeting app... I know there's a thing as electron bloat but this is kind of all sorts of insane.
- bobblywobbles 7y agoIt's mainly electron, but I'll look in the future to cut down the size. (My Budget author here).
- theprotocol 7y agoYou might be interested in Proton Native (https://proton-native.js.org/#/ https://proton-native.js.org/#/) which should produce a much more lightweight output and has native controls. I have not used it though so I cannot vouch for whether it is sufficient for your needs.
- bobblywobbles 7y agoI'd have to see if it has all the building/signing and packaging support as electron. Thanks for linking!
- bash-j 7y agoI've been using Mishell Budget Calendar for the past 8 years. Nothing beats the calendar UI in my opinion. Makes sense when you think about most income and expenses are recurring events. The balance at the bottom of each day lets you check the future for days where you might be getting close to running out of funds. It might be a simple move the day you pay your utility bill each month, or try adjusting your grocery budget by a few dollars and it shows straight away how that impacts your future balance.
- bobblywobbles 7y agoSuper interesting execution, I really like it!
- vitoc 7y agoMaybe check this out too?: https://prudent.me/ https://prudent.me/ Not just for budgeting, but in the same space! :)
- stfwn 7y agoI didn't know about Ledger [1], which this is said to be based on. It seems like a proper UNIX tool like Remind [2] but for finance. I would really like to use these types of applications all the time, but either usability suffers a lot or useful principles get lost when trying to integrate them with smartphones and tablets. [1]: https://www.ledger-cli.org/ https://www.ledger-cli.org/ [2]: https://jlk.fjfi.cvut.cz/arch/manpages/man/remind.1 https://jlk.fjfi.cvut.cz/arch/manpages/man/remind.1
- baroffoos 7y agoI know this is kind of a tired comment but I wonder where desktop GUI toolkits went wrong to end up where "cross platform" has come to be a synonym for electron. I know if I was building a desktop program I would pick electron but what can real desktop toolkits change to fix this problem?
- pjc50 7y agoLargely they can't, other than having a Highlander situation where they fight each other until only one platform remains. Java went round this circle. First there was AWT: use the platform-native widgets. Of course, this results in your application looking different on every platform in hard-to-predict ways. So people wrote Swing: single non-native GUI that looks the same everywhere. Eventually people got fed up of the poor performance and non-nativeness of Swing, so they wrote SWT (used in Eclipse) which uses the native widgets again. If your application is native, then it looks different on different platforms - and you have to test and debug on all of them. If it's non-native, it can look the same on all platforms.
- tty2300 7y agoLooking different to the native apps isn't even the worst part. Its that a simple notes app is 300mb and after opening a few basic programs you have 10gb of ram used.
- Crinus 7y agoIt might not be so much a toolkit problem as a language or environment or even knowledge problem: someone might not be interested in working with C or C++ or even in anything else they do not already know and if all they know is web stuff then Electron is the path of least resistance. Even if someone is interested in learning something, that doesn't mean they'd be interested in learning and making a project at the same time.
- quickthrower2 7y agoI think a React-native type thing for Windows/Mac/Linux would be a big help. I am not sure there is any incentive for anyone to create such a tool though? The problem with Electron is that it is good enough.
- mitul_45 7y agoThis looks cool, I've also built something similar for my needs. The difference is, it's a web based app – so I/my wife can add expense on-the-go. Uses Google Sheets as a database. https://github.com/mitul45/expense-manager https://github.com/mitul45/expense-manager
- app4soft 7y ago> offline cross-platform Electron... "my-budget-3.0.1-beta-x86_64.AppImage" size ~ 161 MB I prefer Eqonomize, that is Qt5-based. "Eqonomize-1.3.4.AppImage" size ~ 23 MB [0] https://github.com/Eqonomize/Eqonomize/ https://github.com/Eqonomize/Eqonomize/
- bobblywobbles 7y agoAuthor here of My Budget. Yes, that is one of the things I'd like to reduce. I will be focusing on reducing the size of the app. The app you linked, looks nice too.
- app4soft 7y ago> Yes, that is one of the things I'd like to reduce Rewriting My Budget from JavaScript to C++ would be hard.
- solarkraft 7y agoSince this is just a web app, how about a mobile version? > Offline; there is no back-end service saving your data anywhere. Can I set this up for myself?