Daily Spending (react native app)

Last year, me and a couple of friends decided that we wanted to make an app or two. And one thing that I've been doing ever since I started to get any kind of regular income, was to budget my spending on a daily basis, i.e. I'd decided on a set value that I was prepared to spend on daily living on a monthly basis.

Say you're fine with spending a thousand euros per month on everyday expenses (i.e. groceries, lunch, snacks, gasoline, etc.), at the beginning of the month, you're daily allowance would be 1000/30 = 33.33€ (assuming a month with thirty days), your goal is now to keep your spending below that amount on average.

Some days you'll fill up your tank, and you'll go grocery shopping, spending maybe 130€, on a single day, this isn't really a problem, because the target is 33.33€ per day on average, meaning that in order for your budget to work out, the 130€ that you spent in a single day should last you 130/33.33 = 3.9 ~ roughly 4 days. If you don't spend anything in the following 4 days, you'll stay on track.

So I've always had a daily allowance that I'm okay with spending, my biggest problem has been accurately tracking that money. Since my budget doesn't include big ticket expenses like housing, insurance, etc. but only the smaller miscellaneous things that you need to buy any given day, just calculating off of my salary would not be correct (or I'd mentally have to remember all of the expenses that I had already paid for, or that I had yet to pay).

My solution to this problem was keeping separate banking accounts for different budgets, one account being an account where I'd at the beginning of the month, would make sure that I'd have a specific amount of money in, if there were money left from the past month, that money would be transferred to my savings account.

So with the the bank account, I've been able to follow up on my expenses in a more accurate way, though I'd always end up having to calculate / figure out how many days I had left on my current month, which in itself has a bunch of issues (what if my next pay day is on a Saturday, then I would get paid on the previous Friday, etc.). The calculations and checking the calendar are all easy, but it cost time, everytime I wanted to check up how I was doing, I'd end up spending a couple of minutes.

So we, under the pseudonym Polar-labs, decided to fix that issue with an app. We had a couple of things that we wanted the app to be;

  • Easy to use
  • Easy to understand
  • Configurable for many different scenarios
  • Multiple currencies
  • Language support
  • As few user permissions as possible

We built the app using React-Native (with Expo), we used redux for state management, and my simple-dict-translator for language support. We spent a couple of evenings working on it, and I think we finished the whole app, from idea to actually releasing it on the Android Play Store in about 2 weeks.

We decided that we didn't want to be invasive in any way with the app, even going so far as not including any kind of analytics - we decided that it was worth the trade-off, not knowing how our customers were going to use the app, but giving them the peace of mind that nobody was privy in their budgeting.

The only thing the app needs to know (and it has an intro walking you through the complete configuration flow) is basically, how much do you want to spend per income-interval (monthly, biweekly, weekly), when your pay day is, and how much you've got left of your budget.

From that point forward, the app will calculate how much you've got to spend on a daily basis with the current amount, and present that value prominently on the first page. If you tap on the analytics icon, you'll be presented with a table of different values, basically telling you how much on or off target you are, how much you'd need to recoup (or how much extra you have) to get on target, how many days you've got left on the current salary period, etc.

The one feature that is missing, which would be basically impossible to implement, but would make the app a lot more usable, would be automatic syncing with your bank account, but most banks do not expose their APIs (for good reasons). So that's something we probably won't ever implement. As is, you'll have to manually check your bank account, and then input your balance in the app.

I've been personally using this app, ever since release, on a daily basis. And I can't even begin to tell you the amount of money I've been able to save just by being informed about how I've been spending my money, and how much I've got to spend.

The app is available on Google Play Store.

Seeing as the app has been built in react-native, and it's been thoroughly tested on IOS, we could release it for Apple's IOS as well, but we've yet decided if we want to spend the 100€ needed for the developer license.

Benjamin Horn
Benjamin Horn
Developer at Bazooka
A Finnish-German full-stack developer who's worked with a multitude of different technologies throughout the years.
Vaasa, Finland