11 ms·
Show HN: Expense Tracker as a PWA with Google Sheets backend for privacy
- sjroot 9y agoLooks nice and clean. Would be nice to add a page that visualizes expenses over a period of months.
- jakubgarfield 9y agoThank you! The visualisation happens in the spreadsheet – https://docs.google.com/spreadsheets/d/1eYrQf0xhs2mTSWEzQRfSM-MD-tCcx1r0NVEacLg3Jrc/edit#gid=23788579 https://docs.google.com/spreadsheets/d/1eYrQf0xhs2mTSWEzQRfS... – check out the Current and Previous sheet. I like to use it on the spreadsheet side to keep the app simple and I use bigger screen for the analysis anyway.
- lklklkj2342487 9y ago>Don't share sensitive data with 3rd party. Correct me if I'm wrong but it stores the data on Google's servers in which case you're actually sharing it with a third party.
- tonmoy 9y agoDeja vu: https://news.ycombinator.com/item?id=14282017 https://news.ycombinator.com/item?id=14282017
- jakubgarfield 9y agoThe tracker is heavily inspired by Mitul's work – also I contributed a bit to his project. But I wanted to customise it slightly to my needs and use React along the way (to have a nice showcase for it). And yes, you are right – Google is 3rd party and the wording is slightly unfortunate, but what I meant is that the security will be totally different level if I'd implement the backend myself and there won't be anyone machine learning on your expense records (apart from google looking at a generic spreadsheet).
- dasyatidprime 9y ago> there won't be anyone machine learning on your expense records (apart from google looking at a generic spreadsheet). … how is this not “anyone machine learning on your expense records” again? Does Google specifically forbid themselves that, and I didn't notice? Piercing the veil of “generic” is one of the main things classification ML does, yes?
- captbaritone 9y agoYeah, the wording is probably not quite correct, but I think the point they are trying to make is that if you are already trusting Google, you are not adding and additional party who's server has access to your data.
- 4684499 9y agoI think it's similar to [Security Through Obscurity](https://en.wikipedia.org/wiki/Security_through_obscurity https://en.wikipedia.org/wiki/Security_through_obscurity), since Google may not be interested in one single person. But still, it only means Google doesn't want to, It doesn't mean they are not able to. Plus, using Google Sheets as backend means you have to choose "publish to the web". While the data was set to public, you've dropped the [expectation of privacy](https://en.wikipedia.org/wiki/Expectation_of_privacy https://en.wikipedia.org/wiki/Expectation_of_privacy). And I'm sure Google is still going to analyze your usage of their product no matter what.
- elevensies 9y agoI think it is only storing data with Google. So in this schema: 1st party: you, create the data 2nd party: Google, stores the data 3rd party: none.
- jakubgarfield 9y agoWell played! :)
- sleavey 9y agoMy solution is to use GnuCash with a git repository. I then use Google Keep to make notes of expenses on the go and once every few weeks I copy them in to the accounts. That way I get the full power of accounting software, with control of my data.
- jldugger 9y agoYou can actually use gnucash with pgsql. It's centralized, but nobody wants to deal with merge conflicts on a sqlite database anyways. If I had free time, I might cook up a web interface to add minor expenses with. But that's sort of the nature of gnucash -- those with cash to track typically have less time to track it with ^_^.
- jakubgarfield 9y agoIt seems to have a nice mobile app as well – cool!
- tonmoy 9y agoDeja vu https://news.ycombinator.com/item?id=14279653 https://news.ycombinator.com/item?id=14279653
- jakubgarfield 9y agoYeah, that inspired me to spin off my own – see the reply above.
- tonmoy 9y agoSorry, missed that on the repo README.
- deleted 9y ago[deleted]
- coldfire 9y agoI used to log every spending in an expense manager before but found it redundant. Now I've built a selenium utility that logs into my bank account every morning (deployed on cloud), calculates my last day's spending and remaining budget and sends me an sms at 8:30 on how much I've left to spend today and savings projection! Haven't touched any finance app ever since
- jakubgarfield 9y agoHow do you deal with investments and transfers into savings account? When I track my expenses I want to ignore them – as I set a budget to spend $1000 this month. Savings are not really an investment but if I transfer $500 into savings it's hard to track the budget – maybe some reference code could help with that.
- coldfire 9y agoI only keep my monthly spending budget in current account, and everything else ("savings", pay, rent etc) goes to the savings account. And for this utility I only monitor current account which is directly linked to my cards so works pretty well for me. My bank in ANZ so they have this setup by default.
- jakubgarfield 9y agoI just looked into it and it seems that Kiwibank doesn't provide any API access (you can download exports manually thought). ANZ might be a good option then :)
- boulos 9y agoThat's why he was saying he runs selenium to scrape it. Basically zero banks provide an API access to non-partnering institutions.
- jakubgarfield 9y ago
- 659087 9y ago> Google Sheets backend for privacy Umm.. what?
- closeparen 9y agoKind of interesting, actually. "You don't have to trust us, only Google."
- raldi 9y ago"What's a PWA?" https://developers.google.com/web/progressive-web-apps/ https://developers.google.com/web/progressive-web-apps/
- methou 9y agoWhy not use ledger as a backend, it's free and opensource and can also be hosted on whatever cloud you want and encrypted.
- stephenr 9y agoWhich ledger do you mean? I found several with that name...
- jldugger 9y agohttp://ledger-cli.org/ http://ledger-cli.org/
- jakubgarfield 9y agoI looked into Ledger when I was writing a small invoicing app (of course I wrote it from scratch – but I learnt a few things and have a small app in my portfolio). For this project I'd argue that you need to host it yourself, you don't get powerful visualisation (charts for monthly breakdowns) and extensions (like GoogleFinance for currency conversions). From a privacy perspective – it'd be a better choice but you are responsible for securing your server.
- mxxx 9y agonice one. something like this has been on my "things to build when i get some spare time" list for a while; i've used a bunch of budgeting and expense tracker apps and never found one that quite ticked all of my boxes. thanks for sharing :)
- jakubgarfield 9y agoThank you for the kind words. It is interesting that everyone has a slightly different set of requirements for apps like these. Maybe it is my unwillingness to learn how to work with different apps. For a time I was happy with WalletApp but at a certain point they migrated Categories and sync stopped working properly and there were discrepancies between my and my partner's lists. Also, lots of functionality I wasn't using.
- 1ba9115454 9y agoTechnically I love the use of PWA and material design. I hadn't seen material.io used in an application and it looks great.
- jakubgarfield 9y agoI wish I knew about http://www.material-ui.com/ http://www.material-ui.com/ before I started finished this project. They are React material design components – the integration would've been much simpler (I assume – haven't tried).
- Vinnl 9y agoThis (and basically most PWA's) could use RemoteStorage [1] perfectly, to be independent of Google. [1] https://remotestorage.io/ https://remotestorage.io/
- pspeter3 9y agoAre there good remote storage hosts?
- Vinnl 9y agoThe reason I said "could" is because it needs a lot more adoption, which is holding it back because it's much less attractive due to lack of adoption. That said, I think the de facto (/only) option is https://5apps.com/ https://5apps.com/. I also recall that you were able to use Google Drive and Dropbox with the library, but I can't find info about that now...
- pspeter3 9y agoYeah, I feel like users need to have a data provider that they trust
- akerro 9y ago> with Google Sheets backend for privacy Read it once again out loud, slowly.
- viraptor 9y agoThat looks great. I've just only just finished writing an automated importer of bank transactions into a spreadsheet, but I've been using Airtable instead. I was going to write some interface, but maybe this can be reused instead...