[HN Gopher] Show HN: ExpenseOwl - Simple, self-hosted expense tr...
___________________________________________________________________
Show HN: ExpenseOwl - Simple, self-hosted expense tracker
Author : import-base64
Score : 194 points
Date : 2025-02-07 20:56 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| ramon156 wrote:
| I'll give this a go So far Actual Budget is pretty good, although
| I wish the dashboard was a bit more extensive.
| agent531c wrote:
| Im curious what you dont like about the dashboard? Ive been
| using Actual since the day it went open sourced, and the Custom
| Reports really make the 'dashboard' whatever I want it to be.
|
| Theres a couple tiny things I wish would be implemented that
| Ive suggested on Github, but the core is solid.
| smcleod wrote:
| Actual is cool but its lack of solid integration with the open
| banking standard (as is used in Australia and other countries)
| made it a bit annoying as its partnered integrations are pretty
| rough.
| dugite-code wrote:
| The open banking standard isn't actually all that open.
|
| As a customer you cannot gain access, at least easily. You
| need to apply for accreditation as a third party financial
| services provider.
| throwway120385 wrote:
| I wish I could figure out how to take pictures of receipts and
| OCR them into something like this.
| Ninjinka wrote:
| No need to OCR, just use Gemini Flash 2.0. It's great at this.
| remram wrote:
| How is it not OCR?
| BOOSTERHIDROGEN wrote:
| Yes I'm curious too.
| ge96 wrote:
| pytesseract
|
| At one point I started to design a motorized receipt reader but
| also another way that could work, a sandwiching mechanism like
| a scanner, lay em all down like a masonry grid, flatten and
| scan
|
| Probably phone app is easiest
| websap wrote:
| Checked out the readme and the screenshots and this looks quite
| polished.
|
| I didn't see anyway to connect with my bank accounts and pull
| this information. Would you be open to adding an integration like
| this? Maybe through Stripe financial connections, or the Plaid
| APIs?
| ahar083 wrote:
| Once third party integrations like those come into play, I feel
| that this may become less "simple" and more of a full time job
| for the maintainer.
|
| (Tools with integrations like these are generally incredibly
| useful though, they tend to be paid and would need to run as a
| service)
| import-base64 wrote:
| thank you! glad you like it! currently the intent is to be a
| simple and fast expense tracker, so there are no plans to
| integrate banks and auto-combing transactions.
| lknuth wrote:
| How about a CSV import? My banks all have an option to export
| transactions to a CSV file. You would need an import tool to
| create the mapping though.
| codecraze wrote:
| I suppose you could parse csv file yourself and the api
| with curl? No need to add this feature in the app.
| import-base64 wrote:
| yes, this is the intended way for now
| Ninjinka wrote:
| I built my own similar tool for my wife and I, with the same goal
| of making entering transactions as fast as possible, and one
| thing I found useful was predictive form filling.
|
| Some categories have the same thing logged over and over (like
| for the "Gas" category I always made the title "Gas") so when you
| select the "Gas" category it prefills the title field with the
| most common transaction title for that category. Also works in
| reverse, if you enter the transaction title first it will guess
| the category.
|
| I also optimized the date picker. We budget month to month, so
| when you're in this month's budget, all you have to select is the
| day. No need to select month and year, as so many default date
| pickers do.
|
| Just some tidbits in case they interest you as well!
| import-base64 wrote:
| thank you! those are good thoughts!
| fragmede wrote:
| I can't find the library right this second but there's a
| JavaScript library that takes human date descriptions, like
| "last Friday" and creates a date object. Depending on users'
| typing speed that might be another convenience factor thing.
| FearNotDaniel wrote:
| These sound great in theory but as an app user I have found
| their implementation can range from deeply irritating to
| downright broken. Anti-use cases off the top of my head might
| be (this was from a calendar/reminder app):
|
| - I write myself an appointment on Monday to remind myself to
| plan a meal for next Friday, so the app silently moves the
| Monday app to Friday without telling me just because the
| words "next Friday" appeared in the event title
|
| - I want to quickly note an appointment for a specific time
| including an address in the title, when the street number is
| something like 10A - the app aggressively decides (again
| without warning me) that I want the appointment to be at 10
| a.m. instead of the time I originally suggested when creating
| the event
|
| In the case of that particular app, I just turned off the
| "natural language" feature globally - shame because it could
| have been useful if it was less aggressive in its
| interpretations and silent modifications of my previous
| choices, but the app developers told me other users are happy
| with it so there is no reason to fix it.
| VTimofeenko wrote:
| I think org mode has a great implementation of it. It works
| when setting a date parameter to, say, "Friday" and the
| scheduler will pick the closest Friday and turn it into a
| proper date, so there is no ambiguity later.
| fragmede wrote:
| Ooh those are good test cases for the calendar event
| creator with natural language parsing app I'm building :)
| billfruit wrote:
| Another approach might be to build an app that parses the SMS
| trails that card transactions generate to reduce the need for
| manually entering transactions.
| TechDebtDevin wrote:
| .. What are these sms trails? Ive never heard of this.
| bozhark wrote:
| Notification for transactions being parsed or scrapped for
| data
| VTimofeenko wrote:
| Some banks allow setting up alerts for transactions of more
| than a threshold. It's possible to set this threshold to a
| very low value thus getting all transactions logged as
| texts.
|
| I am not sure how this system handles US tips though; the
| notification may come in before the tips are added and the
| CC transaction is finalized.
| swah wrote:
| You can also use an Android + Tasker and forward the
| notifications to this service. I get one for each order
| independent of the price.
| emilburzo wrote:
| This is exactly what I did for my DIY solution, it's quite
| amazing how far you can get with some SMS parsing.
|
| Initially I was still missing quite a lot of transactions, as
| there isn't a SMS for non-CC payments, but then I realized I
| could just grab the information from the 2FA confirmation, as
| it had all the important details.
|
| I'm not so good on the frontend, so I'm still using redash to
| build charts, dashboards and alerts, but it's fine for
| keeping an overview.
|
| Long-term I would still like to switch to parsing the
| statement PDF from the bank, especially since there's an
| option to receive them automatically at the end of the month,
| but I'm dragging my feet on that one, as parsing tables from
| PDF is surprisingly difficult. Even though the actual text is
| embedded in the PDF, getting it in the correct layout has
| proven impossible so far. Or maybe I'm just missing some
| piece of the puzzle?
| andrei_says_ wrote:
| Wouldn't importing a credit card statement eliminate the need
| for manual entries?
|
| I don't use an expense tracking tool - apologies if my question
| may is missing context.
| TechDebtDevin wrote:
| Easier said then done. Most softwares Ive used that attempted
| this did so poorly. However it is getting better.
| aperrien wrote:
| Whatever happened to the Quick Interchange Format(.qif)? It
| used to be common for all banks to support that. A modern
| variant today could just be a XML or JSON export, and I
| hardly see that either.
| junon wrote:
| Most banks don't have an API, and statements are (often)
| lagged, sometimes even by a week or a month depending on how
| archaic the systems are.
| satvikpendem wrote:
| Lots of providers exist for bank information, Plaid is one
| of them. That's what many of these auto import personal
| finance softwares use.
| junon wrote:
| Having used Plaid, it is essentially web scraping as a
| service. It's an API built on top of very questionable
| access. It itself is not a formal API provided to you by
| the bank.
| satvikpendem wrote:
| Yes it is (I never said it wasn't), but it works. They
| are working with banks to modernize their APIs as well.
| jellyfishbeaver wrote:
| The Canadian government has apparently introduced a
| framework for sharing your banking data securely with third
| parties (budgeting apps, financial products) in an effort
| to eliminate this shady screen scraping and credential
| sharing that a lot of these kind of apps do. Hoping they
| actually follow through...
|
| https://www.canada.ca/en/financial-consumer-
| agency/services/...
| sfRattan wrote:
| This is super cool!
|
| I was looking for something like this just a few days ago. Ended
| up going with Flow[1], an open source Android app, because I
| wanted something that I could enter data on from my phone and run
| completely locally there. I don't yet have Tailscale running, or
| some other solution to access my homelab on the go. But it's
| great to see more and more software designed to run on people's
| local networks. _And from the screenshots ExpenseOwl is the next
| tool I 'd try_ if Flow doesn't work out... Getting Tailscale or a
| similar solution up and running is also on the to-do list.
|
| I know other people want direct integration with banking APIs,
| but for me it's actually a feature to have to enter everything
| manually. I'm deliberately working on better spending habits, and
| having a local set of data with me which is actually sometimes
| ahead of my bank in terms of cleared transactions is good. It
| means I build the habit of entering and categorizing each time I
| spend money, and it means I have to regularly reconcile accounts.
| It's only a hypothesis, but I suspect in the era of checkbooks
| the practical fact of having to keep up the books manually
| enforced better spending habits.
|
| [1a]: https://play.google.com/store/apps/details?id=mn.flow.flow
|
| [1b]: Also, github: https://github.com/flow-mn/flow
|
| _N.B. There 's another expense tracker on the Play store, also
| called "Flow", which AFAICT isn't open source._
| import-base64 wrote:
| thank you! totally with you on building the habit of manually
| tracking and being aware of where my money goes! hopefully you
| like it more when you give it a try, open source, simplicity,
| and self-hosting are at the core for this.
|
| also, on a side note, for non streaming workloads, i prefer
| cloudflare tunnels over a vpn solution like tailscale, feel
| free to check that out too :)
|
| cheers!
| sfRattan wrote:
| Thanks for the suggestion!
|
| How's the simplicy of setting up and accessing cloudflare
| tunnels over a VPN for the near-totally computer illiterate,
| in comparison to Tailscale?
|
| Part of setting up a homelab and self-hosting more and more
| of my digital life has been working toward being able to
| offer family and very-close friends an off-ramp from the
| world of cloud-controlled data and computing. Especially
| among family, there are some folks who will not be able to
| easily grok things even you, I, and casual power uses would
| consider "basic."
| import-base64 wrote:
| yea, most certainly! from a setup perspective tunnels are
| much easier to configure, just need a domain and an agent
| container that routes to your services. To have family and
| friends access web services is easy too - there is support
| for email totp, certificates, passwords, etc. so you'll
| definitely find what suits you. Vpn is still required the
| monent you're looking into higher bandwidth requirements,
| but for services like expenseowl (one-off and quick
| operations), tunnels are free and easy
| adhamsalama wrote:
| I have just written a comment about a related point, but I
| wrote my own expenses tracking web app and using it on the go
| wasn't possible because I didn't host it somewhere, so I ended
| up running it on my Android phone using Termux (I rewrote it
| from Node.js to Golang first though).
| satvikpendem wrote:
| Flutter, nice. How well does the syncing work? I was playing
| around with making my own personal finance tracker and syncing
| via CRDTs.
|
| Edit: ah, it's not available on web or desktop which is a shame
| (looks like you _can_ build and run it but it 's more so DIY
| and no UI optimizations for larger screens, they say on the
| README), I would do more serious personal finance work on a
| bigger screen rather than a phone. They could easily add these
| platforms as it's on Flutter, not sure why they haven't
| already.
| Thaxll wrote:
| Not sure if this beats an excel file shared on Google drive?
| import-base64 wrote:
| haha! i hope it can! lemme know!
| zakki wrote:
| Yes, for sure. The entries in this app is not scanned by
| Google.
| ocdtrekkie wrote:
| This looks super simple to pull into Sandstorm to provide
| authentication around it... so we're going to give it a try!
| import-base64 wrote:
| thanks! also my first time learning about Sandstorm, will read
| more about it!
| aayushdutt wrote:
| I have been using Spliit (https://github.com/spliit-app/spliit).
| We've added over 5k transactions on it and don't have any
| complaints so far.
| import-base64 wrote:
| nice that's a pretty cool project!
|
| different intent from my project, but glad you introduced it to
| me! thanks
| xvfLJfx9 wrote:
| The UI looks nice, but feature wise, I think I would rather go
| with Firefly III. It is a lot more complete.
| import-base64 wrote:
| for sure, i agree with you! i mention firefly and actual both
| in my readme as much more fleshed out options. intent behind
| this app was strictly to be simple.
| zeagle wrote:
| That's cool and thanks for sharing! If you are looking for future
| direction generating reports by category and overall and ability
| to add attachment of PDF/photo receipts to individual items is
| really helpful. I use these type of tools to keep track of
| business expenses for my corp (employee n=me) for my accountant
| come tax time and have never found the right tool for it. Tried
| even abusing invoiceninja, craterapp, a few others outside their
| use case. Eventually I settled on paperless-ngx (pulls from
| scanner, email address off phone) manual entry into excel now
| seatable for this on this but still not ideal. Firefly III seemed
| useful but daunting. I don't need double ended accounting or care
| about budgeting where I spend money... just receipt, table,
| report, print all and end of year.
| import-base64 wrote:
| thank you! that's a good suggestion! i kept the pie charts
| monthly for simplicity. I think adding an annual or all time
| report doesn't take away from simplicity. I'll look into
| prepping an insights pdf and having a button for that. cheers:)
| ktimespi wrote:
| I've been building something similar for calorie tracking as
| well. A lot of the apps I've tried don't let me add meals quickly
| enough (repeat meals from the past, or new ones) or let me enter
| calorie formulae, and there's a bunch of unnecessary features
| like goal-setting.
|
| I'm glad that something like this exists!
| import-base64 wrote:
| thank you! look forward to your calorie tracker app!!
| FearNotDaniel wrote:
| Generally looks like a promising idea even in a deeply-
| competitive space, however the "selling point" of having pie
| charts to summarize your monthly spending does absolutely nothing
| for me - I know, banks etc use them in their marketing of
| "modern" online tools too, so they look kind of cool, but in
| practice for decision making about personal finance I find them
| absolutely useless. What I need to know on a regular basis,
| during a given month and at the end of the month, is: how much
| have I spent in general, compared with how much I planned to
| spend? Am I overspending in a particular category that I need to
| correct to keep my monthly budget on track, e.g. a fixed
| allowance for eating out per month, have I spent it all by week
| three or can I afford to have one more fancy dinner with my wife
| or with friends and still stay within my budget? Ninjinka's tips
| sound pretty positive about making the UI friction-free for
| keeping transactions up to date, because it's _my_ responsibility
| to put good data in; however if the reporting /charts doesn't
| tell me anything actionable in an easy to read format then
| there's no point.
| import-base64 wrote:
| thank you, i'll take this as food for thought and see if i can
| improve the datavis!
|
| I agree, if you need insights related to budgeting, then I
| recommend Actual or Firefly, as noted in readme. This app is
| strictly intended to be simpler. no budgeting, just tracking.
| mieses wrote:
| almost none such tools touch the problem of future planning or
| projection. it's kind of strange but perhaps it reflects
| culture. nothing beats making your own spreadsheets.
| satvikpendem wrote:
| What kind of future projection are you looking for? My main
| issue is not all months are the same, sometimes I might spend
| way more in a given month for a given category (perhaps a
| one-off purchase like new furniture) that I don't aim to
| replicate for the next month, so how would the projection
| work in that case?
| satvikpendem wrote:
| > _What I need to know on a regular basis, during a given month
| and at the end of the month, is: how much have I spent in
| general, compared with how much I planned to spend? Am I
| overspending in a particular category that I need to correct to
| keep my monthly budget on track, e.g. a fixed allowance for
| eating out per month, have I spent it all by week three or can
| I afford to have one more fancy dinner with my wife or with
| friends and still stay within my budget?_
|
| Don't most personal finance apps have this? You can set a
| budget for a category per day/week/month and see how much you
| spent and how much you have left to spend.
| mattfrommars wrote:
| Haha, I guess people making their own expense tracker a thing.
|
| Because I built mine but it's a bit more rudimentary
| adhamsalama wrote:
| Very nice!
|
| I wrote an app like this a while ago in Node.js, the problem was
| that I found it annoying having to remember evrrything until I
| get back home and boot up my laptop to add new entries, so I
| decided to rewrite the backend in Golang so that it can run as an
| executable file, embedded the frontend React.js files into the
| Golang executable file, changed the DB from MongoDB to SQLite,
| and ran it on my Android phone using Termux.
|
| I could have run it without rewriting the backend and changing
| the database, but I don't want to run Node.js and MongoDB on my
| phone...
| mr-karan wrote:
| Looks like a solid project, will be interested in giving it a
| shot
|
| Aside: I built my own expense tracker [1] as well to categorise
| expenses using LLMs as I needed a quick way to log the entries.
| I've been meaning to export these to Actual budget for a detailed
| analysis but haven't done that yet.
|
| [1]: https://github.com/mr-karan/gullak
| import-base64 wrote:
| thanks! yours looks great too, love the report aspect
| budududuroiu wrote:
| Built my own expense tracker on top of Teable.
|
| I'm partly lucky because I live in Taiwan and almost any receipt
| here comes with itemised breakdown as a QR code, so I can scan
| that from my phone and pipe it off to a queue for ingestion
|
| Didn't want to use LLMs, but wanted automated categorisation of
| transactions, did that with some vector embeddings and Semantic
| Router (https://github.com/aurelio-labs/semantic-router).
|
| ... oh and it's run off a RPi, yes the embeddings as well
| thangngoc89 wrote:
| Just curious, you didn't use the e-invoice solution (Zai Ju )?
| budududuroiu wrote:
| Wanted to build my own dashboards for spend, instead of using
| an app, that's basically it.
|
| I might apply for the Zai Ju API at some point, but for now
| it works great
| endofreach wrote:
| Interesting.
|
| Any code you want to share?
| jakemanger wrote:
| I've been wanting something like this for a while. Was even
| thinking of building one myself. You beat me to it.
|
| I like the simplicity. It's just a quick add and then it's in the
| pie chart. Think this could ever be integrated with bank spending
| automatically? I think that running locally would make you feel
| safe doing do.
| import-base64 wrote:
| thank you! for now the intent is to self host and keep it
| simple and private; so there's no plan to integrate banks.
| grbi wrote:
| Did something similar based on Metabase for the UI. Transaction
| stored in a basic Postgres table and regex on my bank transaction
| export for categorisation.
| Daveenjay wrote:
| Very simple expense tracker. I like it.
|
| This is the same idea I had building Simple Wallet
| (https://simplewallet.app). I didn't want a budgeting app telling
| how and where to spend. I simply wanted an app to track and
| organize my money.
|
| I've been thinking about how to visualize money. I don't think
| pie charts are the way to go. I'm thinking something like
| RuleMark on SwiftUI.
| piyuv wrote:
| I use a simple spreadsheet and I like inputting my transactions
| manually instead of automating imports. Makes me think twice
| about my spending. Spreadsheets are flexible enough so I can
| extend functionality if and when I want.
| import-base64 wrote:
| 100% agree, that's the precise use case for this app!
| nlh wrote:
| Thanks for building and sharing this!
|
| A few years ago I did a deep dive on expense-tracking
| apps/services - ostensibly to write a big comparison blog post
| about them all - but that never happened - but really because I
| wanted something just like this but without all the bells and
| whistles that most apps have.
|
| The two biggest gripes I remember having when I did that deep
| dive:
|
| 1) It sounds so simple, but most apps/services which promised
| "import your statements and we'll take care of the rest"
| simplicity fell down over the simplest issue: If I have my
| monthly rent auto-drafted, and some months it shows up on the
| 31st and other months on the 1st, for example, the apps
| absolutely could not handle that (and I'd have a month with
| double-rent showing in my breakdown).
|
| 2) I just had no interest in budgeting functionality built in.
| Lots of people do. I didn't - I just wanted to see a simple
| breakdown of expenses just like ExpenseOwl (hence my extra thank-
| yous). SO many apps assumed that budgeting functionality was a
| must-have that they over-complexified things and forced the user
| to enter budgets, etc.
| vednig wrote:
| i use paisa currently, this seems cool too
|
| 1]
| https://play.google.com/store/apps/details?id=dev.hemanths.p...
|
| 2] https://paisa-tracker.app/
___________________________________________________________________
(page generated 2025-02-08 23:01 UTC)