11 ms·
Firefly III: A free and open-source finance manager
- yessirwhatever 4y agoPrevious HN Thread [2020]: https://news.ycombinator.com/item?id=20916920 https://news.ycombinator.com/item?id=20916920
- xthrowawayxx 4y agoThis is great! I've been using Firefly III for years. However it consumes a good chunk of time to keep up to date at a line item resolution with many cards and accounts across countries as I've not automated any of it.
- muznar 4y agoI literally had to reinstall this to a new free instance on Saturday after getting my instance deleted accidentally. I have been tracking and exporting backups of my finances using Firefly since 2020. I am young, my finances are nothing fancy, they are mostly credit card purchases, my salary, and my rent. I love the flexibility of personally serving this on a dedicated server. Similar to the other commenter it consumes a lot of my time too. I tried to automate by writing small custom shortcuts in Apple Shortcuts for repeated things like posting a grocery purchase. Firefly has a comprehensive API, I have widgets on my homescreen showing my credit card balances at all times etc. I like knowing how much I spend on grocery each month, how much I spent clothing last year vs this year, the effect of having a Costco membership. It is fun and I am sure in the next 10 years it will be so much more interesting looking at data from early years.
- erulabs 4y agoFirefly III is excellent - there was a lot of excitement for Actual budget the other week (which is also excellent) but firefly has been a solid self hosted finance tool for years. We have a one click installer for kubernetes over at https://kubesail.com/template/erulabs/firefly-iii https://kubesail.com/template/erulabs/firefly-iii if anyone is interested in self hosting this!
- yessirwhatever 4y agoI found out about Firefly III a couple of weeks ago and wanted to try, but it seemed a bit more than what I needed. That's when I found out about Actual, which does seem to be an interesting solution. My issue with it is that they seem to have made the web version (intentionally?) not compatible with mobile, and their iPhone app requires a subscription of ~$10 a month. At first I thought I'd give it a try then felt sort of cheated. I don't mind paying for a solution but this seems like a shady way to charge money for me. Also I'm not a fan of subscription. Anyway, I gave Firefly III a try and now I'm very happy that I did. I think those extra features that seemed too complicated at first are proving to be pretty useful.
- brunoqc 4y agoactual is "going open-source", but "Unfortunately, the mobile apps are going to be deprecated" https://actualbudget.com/open-source https://actualbudget.com/open-source
- sirsinsalot 4y agoI applaud the effort, but sometimes think apps like this when they promote self-hosting should have a mode of installation and operation that acts more or less like a desktop application.
- ocdtrekkie 4y agoFWIW, Firefly III has an old Sandstorm package, but it isn't currently maintained so it's a fair bit out of date. We aim for "like installing an app on your phone". The problem here is ultimately on the platform your app runs on, not the app itself. If web servers are hard to spin up, so too are web apps.
- prepend 4y agoThey have a docker instal option. Granted it’s a bit of overkill but you can run it like desktop software.
- sirsinsalot 4y agoI mean, a windows installer (or RPM) that doesn't require a background process so that more people can access the value of the software. Even Flatpak or something if we are talking Linux specific. Having Docker and other "enthusiast" methods of running software makes it less accessible. Having a web-stack as the goto method of writing software doesn't make sense if it limits the audience that would gain value from it. I say this as someone who professionally maintains a web application that comes with a Windows installer, macOS traditional installation and a Linux RPM. All with desktop icons and it being pretty invisible to the user that it is a web application aside from the HTML-looking UI style. The software is for personal finance, it isn't for a niche that makes the install/access method particuarly sane. If it were software for managing a cluster of X-thing or something ... maybe.
- ocdtrekkie 4y agoBut that approach doesn't work if you intend for people to be able to access it from their mobile app, multiple PCs, etc. Slapping a web server into a local desktop install and calling it good basically removes the vast majority of benefits of it being a web app.
- kailanb 4y agoI recently discovered PocketSmith[0] which is not free nor open-source, but I have found it to be the easiest to keep up to date. It automatically pulls transactions from most banks and credit providers, which I've been unable to replicate with other solutions. [0]: https://www.pocketsmith.com/ https://www.pocketsmith.com/
- bjeanes 4y agoYeah I use them too. I keep meaning to set up Firefly III to try it but Pocketsmith _has_ been really good. For a period of time I had accounts in a couple of countries and it was one of the few tools which let me get a multi-currency view of all my finances across the globe. Highly recommend.
- skoskie 4y agoIt’s also one of the few that does a good job of forecasting balances.
- PopAlongKid 4y agoTo more accurately forecast a balance, why not just enter transactions with future dates and estimated amounts? Then a balance report with the same future date will be a good forecast.
- constantlm 4y ago+1 on the Pocketsmith recommendation. I've tried several others (YNAB, Lunchmoney, etc.) and I've been using Pocketsmith consistently over the past three years. It has integrations with just about anything, has support for crypto, etc. and their support is top notch.
- resonious 4y agoI wish this site was more clear about which banks exactly are supported by bank feeds. It seems right now like I have to buy the service before I know if I can even use the bank feeds feature.
- anthropodie 4y agoAnother finance manager recently open sourced https://actualbudget.com/ https://actualbudget.com/
- kkfx 4y agoHonestly seems a bit confusing to me... The dashboard is a bit configurable, ok, so I can cut things I do not want but a default with just balance/all translations scrollable, the latest visible/stock option with mean price paid and actual value, optional widgets for other financial means (raw materials and their value, currencies etc) would be far nicer than a big load of graphs... Ease to add transactions is not much a thing since at least personally all must come from external sources like bank exports in ofx/qif/sv etc with manually just tagging, description etc and a merging feature for upcoming transactions when the date is due to merge them with the actual new entry from the bank, so better import/export (i.e. woob integration for banks who do not offer exporting) would be very nice. Generally graphs are nice but data in tabular form + operations on such tables are much more useful, especially if can be done with a programming language like "hey, that's the table, now you can generate new ones with some query language and lisp/python/ as you wish, just add a "programmed entry" and you get input in sv form for code, SQL-alike for query DSL, output view as a table for sv data or graph or raw at your option. Surely the last paragraph might not appeal end users, but a user who self-host likely use/can use/dream such features...
- toyg 4y agoLooks good but the real problem, as for 90% of similar programs, is the volume of necessary data-entry. Paid-for options like YNAB, nowadays, can fetch transactions from many mainstream US/EU banks and credit providers. Without that sort of feature, it's a real drudge to keep up entering every single expense.
- Buttons840 4y agoMost of these work be giving the application your bank credentials, right? This probably violates the terms and conditions of your bank and gives the application unrestricted access to your account.
- PandawanFr 4y agoAfaik most use something like Plaid which works with the banks to get this data appropriately.
- encryptluks2 4y agoPlaid does the opposite. It scrapes using your banks credentials.
- smeej 4y agoAm I totally misremembering this, or is it a fairly recent change? I could've sworn several years ago it was perfectly possible to use your sign-in credentials, then immediately change them, because it basically needed an authorization token, but then worked fine. Now it doesn't. I work for a company with a Plaid integration and if the bank so much as requires any kind of 2FA, you just can't use it at all anymore.
- encryptluks2 4y agoI'm not sure. It is possible that some banks have an API that Plaid uses, but this issue has been known for several years and discussed on here quite a bit. Plaid even had a large settlement due to privacy violations.
- balaji1 4y agohow do Firefly or ActualBudget and the like compare to something like hledger?
- imroot 4y agoIt really just depends on how comfortable you are in the command line. If you know how to get your transactions downloaded from your bank and don't ever want to leave the command line, hledger is great for you -- I've been using hledger since 2019 and love every minute of it. If you need something point and click, or, need a high "wife-acceptance factor," firefly-iii is not a bad choice. After coming from hledger, I did try firefly, but, stuck with hlegder due to how amazingly powerful it is with nothing but a text input.
- balaji1 4y agothat's my impression about hledger and the plain text format as well. So not going to try other tools also. Wife acceptance factor tho haha.. we will be fine as long as we never show the beautiful UIs from the YNABs & Fireflys.
- Fnoord 4y agoIdeally you want to be able to access such a database with whatever frontend you want: CLI, HTTPS (Laravel apparently), Qt and such, etc.
- balaji1 4y agohledger has a decent front-end web UI [1], it runs as a local server on your machine by default. The filter and searching on this view is quite good, and visualization is decent. We are able to add txns from this UI but I have never used it. [1] https://hledger.org/1.25/hledger-web.html https://hledger.org/1.25/hledger-web.html
- wolverine876 4y agoAre there FOSS libraries that handle common financial functionality and do it reliably? Are these FOSS applications all reinventing the wheel?
- JC5 4y agoBasically, yes.
- wolverine876 4y agoYes to the first question or to the second?
- JC5 4y agoNo to the first, yes to the second.
- aftbit 4y agoI currently use Mint by Intuit. I hate the new UI, the constant ads, and the amount of trust I have to give them (with my bank credentials). I would love to self-host something else that can auto-import all of my transactions. I'll have to check out Saltedge and Nordigen. I might also write my own Plaid API integration. Just as much trust though... Open banking data APIs sounds like an easy win for regulators, but probably the Intuit lobby would oppose that.
- bredren 4y agoI am about ready to throw in the towel and use mint. It’s the only product Apple has built a native integration for, with no news of other products. I’ve written asking about it but nothing. It’s pretty annoying because Apple Card is supposed to offer privacy, then they turn around and make the first transaction integration with mint. Wth.
- gen220 4y agoIf you’re technical enough to self host and concerned about privacy, you might want to try using GNU Ledger and hand-rolling importers. I was in your position about 3 years ago, and have no regrets going down this path. Downloading all of the necessary files by hand only takes a couple minutes with a decent password manager. You’ll spend more time (re-)categorizing and running interesting reports, and IME the ledger apps have the best experience in this dimension, although YNAB isn’t bad.
- Karawebnetwork 4y agoIt seems like someone or something has crashed the demo. It outputs an error log. Whoops! An error occurred. Unfortunately, this error was not recoverable :(. Firefly III broke. The error is: Could not save preference: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'data' at row 1 (SQL: update `preferences` set `data` = [{"ip":"00.000.00.00","time":"2022-05-30 20:02:06","notified":false},{"ip":"00.000.00.00","time":"2022-05-30 20:02:10","notified":false},{"ip":"00.000.00.00","time":"2022-05-30 20:02:15","notified":false},{"ip":"00.000.00.00","time":"2022-05-30 20:02:16","notified":false}, ... My IP was in the list. Let's just say it is hard to trust a piece of software with my financial data after this. (I changed all the IP addresses for 00.000.00.00 to preserve some anonymity.)
- deleted 4y ago[deleted]
- sergnio 4y agoCompletely agree...
- TheDong 4y ago> Let's just say it is hard to trust a piece of software with my financial data after this. Definitely don't upload your real financial data to the shared hosted demo. I definitely wouldn't trust the demo with real data. ... but for the actual app, you run it locally on a server you control. You can add whatever form of auth in front of it, whether that's nginx basic auth, or requiring a client certificate, or so on. The app's designed with that in mind, with the user being a trusted person, so of course it's fine for it to dump sqlstate for you to debug. Since this is AGPL free software, and self hosted, it's about as trustworthy as can be for putting data into it, and if you don't trust it yet, you can read the code and gain such trust.
- Karawebnetwork 4y agoVery much fair.
- JC5 4y ago
- __michaelg 4y agoSide note: If you need to say this: > (click on the icons for more information) then you almost certainly have an unintuitive design and know it, but instead of fixing it you just doubled down on it.
- Xeoncross 4y agoThe smallest change I could figure out is just to delete the single `opacity: 0` line in the CSS for the `.portfolio-item-caption`
- prepend 4y agoI noticed this and thought it was quite odd. I thought the icons were weird screenshots because they were so big. Comically the message worked and I tapped on them. I forgive these kinds of design mistakes in OSS projects because I’d rather have stuff that works than beautiful sites. Of course, I appreciate nice design too.
- deleted 4y ago[deleted]
- KMag 4y agoThat being said, it's good that there's discoverable information there. At my previous job, Symphony[0] chat was set up to launch at startup for all employees. I remember when the icons I call "Pyramid of Infinite Fun" and "Drone Strike" showed up in Symphony. There was no mouseover alt-text for the icons, and the Pyramid of Infinite Fun was right next to the icons for bold, italic, etc. text. So, people naturally clicked on the new icon a few times to see what it did, but it seemed to do nothing. The thing was, it caused a musical ding (like striking a musical triangle) for everyone else in the current Symphony room (channel), without any visual or auditory feedback for the person clicking the icon. So, being in Asia at the time, we heard waves of ringing noises from all over the trading floor when the London office got in. (Deployment of new versions was usually midnight NYC, so mid-day in Tokyo, Hong Kong, and Singapore, so the deployment for us was more gradual as people responded to notifications to restart Symphony to pick up the new version.) The sound was closer to a triangle than a bell, but I suspect the driver for using a triangle instead of the traditional bell icon was just to be perceived as making progress. "Drone strike" was just the screen shot icon. However, it looked like a targeting reticle and showed up the same day as the Pyramid of Infinite Fun, so I was somewhat hesitant to try it out. [0] https://en.wikipedia.org/wiki/Symphony_Communication https://en.wikipedia.org/wiki/Symphony_Communication
- xupybd 4y agoVery impressive tool. I've always used the approach of allocating spending before it's spent. I've not attempted expense tracking. Has anyone got experience with it, and an opinion to share?
- candiddevmike 4y agoIf you're looking for budgeting like old YNAB and a general household management solution, checkout Homechart: https://homechart.app https://homechart.app
- BbzzbB 4y agoI listened to a talk by YNAB's creator last year (about development not the program itself). Didn't realize until this thread how popular it is.
- bern4444 4y agoCan you share a link to the talk? Would enjoy listening to it
- BbzzbB 4y agoOf course! As I recall the morale of the story is "just get started". The site started with an Excel spreadsheet he was selling to his neighbors haha. https://youtube.com/watch?v=jw8N7YrBM4o https://youtube.com/watch?v=jw8N7YrBM4o
- bern4444 4y agoThanks - Yeah I've been looking for a YNAB like tool but for investments and I haven't been able to find one I like and I've looked at all of them. Started building my own so I'm interested to see what he says.
- spicyusername 4y agoI would love to explore something other than Mint, but having 100% of the data collection automated is so nice.
- jendnd 4y agoThis project is great, but damn it slows down with just a few years worth of data. :(
- JC5 4y agoI have 10 years in my own installation, running on a Pi2. Seems to be fine.
- morganvachon 4y agoI guess I'm really old school but I just have a spreadsheet for my budgeting, with formulas and charts I've written and maintained over the last 25 years. It's gone from old Microsoft formats (xls/xlsx) to ODS, to Gnumeric, back to ODS, and now I use Apple's Numbers since I have a Mac and an iPhone, and iCloud web works on pretty much any device with a browser I might have in front of me. If I do ever feel like ditching my Mac and going back to an open source OS, I can just export it to ODS again and all my formulas and tools transfer over (I don't use anything proprietary from Numbers, though color fills don't always match right up). I am salaried with weekly payout, and so I have a weekly chart for where my money goes on payday (bills/loans/cards/savings), an amortization schedule for each account that allows me to see how extra payments will affect the payoff and interest, and a brainstorming sheet for planning future large purchases (cars, maybe a bigger house one day). I can do pretty much anything with this that I could with Firefly III or a paid solution, but (for me at least) this is less hassle and my data stays between me and Apple's iCloud server; I trust them enough with that basic data to not bother with maintaining and securing a VPS just to balance my budget.
- deleted 4y ago[deleted]
- XorNot 4y agoWhen I tried this after importing data and setting things up for a bit through the web UI, I somehow managed to get the database into an invalid state and it broke. For finance, you need simple and obvious recovery and this just doesn't have it.
- JC5 4y agoIs there a thread on GitHub somewhere? Can I help?
- ashton314 4y agohttps://moneywell.app https://moneywell.app is still my favorite: event-based budgeting, automatic transaction import, buy-once run-locally forever. It’s perfect. macOS only unfortunately but I highly recommend. Edit: not a shill, just happy. :) The killer feature for me is the event-driven budgeting: you load in your expenses and note when they occur, and MoneyWell figures out how much to allocate to the corresponding envelope automatically. So nice. Anyone else know of another PF system that does that?
- henrydark 4y agoIs double-entry still needed? I feel that it muddles storage logic with business logic. If it's an error-detecting raid1 storage system, can't we just use raid1 storage configurations separately from the application?
- JC5 4y agoTechnically speaking, it's not really necessary. It does help to validate database consistency, because the sum of all transactions is zero. It also prevents you (from an architectural perspective) to pull money out of thin air. If you create an account with 1000 on it from the start, there has to be a source for that money. That account is hidden and invisible, but will have a balance of -1000. It may look like nothing, but it helps to keep things in check.
- RedShift1 4y agoI learned both single and double entry bookkeeping and double entry just makes much more sense.
- nybble41 4y agoIn practice most computer-based accounting packages only simulate the appearance of a double-entry bookkeeping system. In traditional double-entry bookkeeping one must manually enter the data for each transaction into multiple journals: a minimum of twice, or more than twice for split transactions. This is what allows the journals to be cross-checked for consistency. The reports produced by computer-based "double-entry" systems will always be consistent, however, because they're really just different views of the same set of multi-account transactions recorded in a general ledger rather than distinct single-sided transactions recorded in account-specific journals. "General-ledger accounting" (for lack of a better term) is superior in terms of having a single source of truth, but not very practical for manual accounting since all the transactions are mixed together. The introduction of computers changed all that by making it easy to generate targeted reports from the general ledger.
- funnym0nk3y 4y agoUnfortunately Firefly is not really a double-entry bookkeeping system. There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. I think a much better solution would be to differentiate between my accounts and 3rd party accounts. Also, what I was struggeling with (and not only in Firefly, but all budgeting apps) was the sometimes significant delay between the purchase and the bank transaction. In addition there is the issue with split transactions from imported transactions. Basically manual data entry is too much work and automated data entry is too faulty. I roughly sketched a process in my head which could solve that. It basically disinguishes between manually added information and bank information. Both is stored and then combined to one transaction. This closes the gap between the bank domain and the "user domain". 1. Let the importer bring in all the bank transactions with the date, the transaction is executed. Display on the right. 2. On the left there are manually entered transactions, possibly with split transactions. 3. Now you make matches. 4. If there is no manual entry, you can add some information like splitting the transaction, add a date you did the purchase, etc. by clicking on the bank transaction. 5. All the above could be automated by rules. Like making matches, giving it a pretty name, assigning a category, etc. 6. Last step: Manually sign off all the matches. If a time period has only signed off transactions it gets a "true" designation otherwise a "preliminary". Happy to hear about your thoughts on that!
- JC5 4y ago> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain Sure, but that doesn't make it any less of a double-entry bookkeeping system. > Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. The first is correct bookkeeping. The second is bad. Regarding the process you suggest, each step in your workflow is a massive undertaking to build. And it serves exactly one (1) user for whom the workflow fits: you. It's how I started Firefly III: solving my own problem. So I guess you know what to do ;)