
Show HN: Expense Tracker as a PWA with Google Sheets backend for privacy - jakubgarfield
https://github.com/jakubgarfield/expenses
======
lklklkj2342487
>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
Deja vu:
[https://news.ycombinator.com/item?id=14282017](https://news.ycombinator.com/item?id=14282017)

~~~
jakubgarfield
The 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
> 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?

------
raldi
"What's a PWA?"

[https://developers.google.com/web/progressive-web-
apps/](https://developers.google.com/web/progressive-web-apps/)

------
coldfire
I 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
How 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.

~~~
creepydata
This is where different accounts with automatic direct deposit really shines.
My paycheck is directed several different ways - I have a household bills
account, a savings account, and a daily spend account. My paycheck gets
allocated to each account automatically. No thinking required, if it's in my
daily spend account it's been allocated for spending.

Once the money is in my savings account I do choose to reallocate the extra
(beyond emergency fund) to long term investments.

~~~
jakubgarfield
Nice approach – we don't separate between the that many accounts and it is
harder to automatically track the spendings afterwards.

~~~
creepydata
The other thing is if you put all your bill money in a separate account
automatically you don't even really feel like you're paying bills
psychologically, you just get used to the money in your spending account being
the only money you have. This is especially good with larger less frequent
bills, just amortized them per paycheck. For example, I usually use around
three tanks of oil a year. The oil bill comes frequently in the winter but
only once in the summer (my water is heated with oil). the oil is amortized to
~$60 a paycheck. That $60 goes directly from my paycheck into the "bills
account" every pay and I never worry about the oil bill, when it comes I pay
it from the already allocated bills account.

It's also impossible to go over budget without noticing, you'd have to take
the difference out of the savings account. If your budget is wrong you'll
notice immediately.

That's just my approach though, and it works for me. Other people may have
different methods that work for them.

------
Vinnl
This (and basically most PWA's) could use RemoteStorage [1] perfectly, to be
independent of Google.

[1] [https://remotestorage.io/](https://remotestorage.io/)

~~~
pspeter3
Are there good remote storage hosts?

~~~
Vinnl
The 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
Yeah, I feel like users need to have a data provider that they trust

------
sleavey
My 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
You 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 ^_^.

------
akerro
> with Google Sheets backend for privacy

Read it once again out loud, slowly.

------
659087
> Google Sheets backend for privacy

Umm.. what?

~~~
closeparen
Kind of interesting, actually. "You don't have to trust us, only Google."

------
tonmoy
Deja vu
[https://news.ycombinator.com/item?id=14279653](https://news.ycombinator.com/item?id=14279653)

~~~
jakubgarfield
Yeah, that inspired me to spin off my own – see the reply above.

~~~
tonmoy
Sorry, missed that on the repo README.

------
methou
Why not use ledger as a backend, it's free and opensource and can also be
hosted on whatever cloud you want and encrypted.

~~~
stephenr
Which ledger do you mean? I found several with that name...

~~~
jldugger
[http://ledger-cli.org/](http://ledger-cli.org/)

------
sjroot
Looks nice and clean. Would be nice to add a page that visualizes expenses
over a period of months.

~~~
jakubgarfield
Thank you!

The visualisation happens in the spreadsheet –
[https://docs.google.com/spreadsheets/d/1eYrQf0xhs2mTSWEzQRfS...](https://docs.google.com/spreadsheets/d/1eYrQf0xhs2mTSWEzQRfSM-
MD-tCcx1r0NVEacLg3Jrc/edit#gid=23788579) – 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.

------
viraptor
That 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...

------
1ba9115454
Technically I love the use of PWA and material design.

I hadn't seen material.io used in an application and it looks great.

~~~
jakubgarfield
I 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).

------
mxxx
nice 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
Thank 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.

