[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)