| Source | https://www.youtube.com/watch?v=4LHmbhFFFQc |
|---|---|
| Readwise URL | https://read.readwise.io/read/01kvyrw28a8gky54jfbxf3fqr6 |
| Readwise ID | 01kvyrw28a8gky54jfbxf3fqr6 |
| Date | 2025-01-20 |
| Author | Chris Raroque |
| Category | video |
| Cover image | https://i.ytimg.com/vi/4LHmbhFFFQc/sddefault.jpg |

welcome to the video if you’re new here my name is Chris and I build productivity apps I usually focus on one productivity app per video So today we’re focusing on Luna been a minute since I’ve talked about Luna so I wanted to do a quick update video for you guys and also talk about one of the hardest features that I’ve worked on for this app so quick context Luna is a budgeting app that I’ve been working on over the last couple months it has all the basic features of a budgeting app logging transactions tracking your spending I would say like 25% of the features that other budgeting apps have so one of the most requested feature and it’s a feature that’s in a lot of other budgeting apps is accounts and what this
means is when you’re logging a transaction being able to specify what account the money is coming from so when I’m paying rent being able to say this is coming from this bank account for example I personally didn’t understand it at first but there’s two reasons people are asking for this one is to be able to have a better grasp of their financials if they can open the app and see oh this is how much I have in my bank account or this is the current balance of my credit card they’ll feel more comfortable spending the money knowing this is how much is in those accounts and then the second reason is to make sure they’re not missing transactions if the account balance in Luna is off from the actual bank account
that’ll probably signal that you’re missing some transactions and some off so those are the two reasons people want this feature so I mistakenly thought this would be a super straightforward feature it’s actually been a month and at the time of recording it’s still not even done right now you guys have seen me Blitz through features left and right on this channel but I wanted to keep it real and show you guys there are really challenging features that take me months to ship and some that I have actually just given up on completely and this is one of these really challenging features that’s taken me 10 times longer so I thought I’d show you guys behind the scenes of one of these hard features we’ll go through each of the issues that I encountered while working on this and then my thought process as I tried to
come up with the solutions so right now we have four basic screens there’s the homepage there’s a reports tab there’s a transactions tab where you can see all the transactions and then there’s the settings page so I knew that there would have to be a separate accounts tab so users can view the different balances on these accounts all the other budgeting apps have a separate view for accounts so that’s what I decided to do too my initial thought process was cool I’ll add an accounts tab then the users can view all of their accounts and for each of these accounts I have all the transactions so I can calculate what the balance is for each of these accounts
and then when I’m creating a transaction I can just specify what account the transaction belongs to how hard can this be as I implemented the account screen I ran into the first issue which was I didn’t realize that there are different account types I mean I knew that there were account types like savings account checking account but I didn’t realize that these types would actually have to act pretty differently more specifically bank accounts versus credit cards because the balance on a bank account is how much money is in the bank account but the balance on a credit card is how much you owe on the credit card and these things are calculated completely differently once I realized that credit
cards were a thing I realized that this is going to be a lot harder than I thought but I decided not to worry about that for now I decided to treat everything like a bank account just for the purpose of development so didn’t think about how I was going to treat credit cards I’ll deal with that later so I got the screen implemented this is what it ended up looking like you can see the running balance for each of these accounts and then I have a graph on the right that shows you what the change in the balance has looked like over the last month once the screen was mocked out I decided to make it functional so you can create accounts you can edit accounts and I quickly ran into the second issue which was was I
originally thought I have all the transaction data I can just add and subtract all of that and that should be the account balance but as I was implementing it I realized ah I probably need to account for the starting balance cuz the way I was thinking about it in my head was all the accounts would start at zero and then we would start adding and subtracting transactions to calculate obviously that’s not how real life is when people sign up for Luna they will likely have an existing bank account that already has a balance on it so I need to find a way to let them set that balance and then start calculating from there super straightforward the I
can just save the starting balance when I create the account and then just calculate from there so for example if you sign up and you add a checking account and it has $3,000 in it you can set the starting amount as 3,000 and we’ll just start calculating transactions from that point forward so super simple but then it got me thinking what if a user wants to manually adjust the balance themselves in the future then I remembered when I was studying other budgeting apps a lot of the other apps do have a feature called reconciliation which is the ability for people to manually set the balance which is super helpful if for some reason the balance is off and they can’t figure out
why or if you haven’t used the app in like 4 months and you don’t want to go back and retroactively fill out all the transactions to make it all add up you can just manually set the balance and we’ll start calculating from that point forward so that was the third issue I ran into it did complicate the data structure a little bit I had to start saving these adjustments to the database and I had to create a whole UI to display the adjustments to create and modify the adjustments so with manual adjustments done I decided to revisit the credit card situation so the balance on a bank account is how much money is in the the bank account but the balance
on a credit card is how much you owe on the credit card so when you’re looking at a bank account every time you log a transaction it is subtracting from that balance but I had to tweak it for the credit card to do the reverse because when you’re logging transactions the balance actually is going up because you owe more on the credit card it wasn’t too bad but I did have to tweak the UI a bit to support that functionality so once that was implemented and the balances were calculating correctly on the credit card I then realized okay how am I going to support pay paying off a
credit card when you pay a credit card off what you’re usually doing is pulling from one account like a savings account or a checking account and then transfering the money to the credit card to pay off the credit card so it’s not a transaction but it’s more of a transfer so I studied some of the other budgeting apps and then I realized oh God they actually do support this transfer functionality which means I have to support this transfer functionality so now I need to actually modify the app to support a third transaction type because right now the app supports income and expenses now I have to add a third category which was transfer so I had to
tweak the data structure a lot to be able to support this and then obviously when someone selects transfer I needed to support the ability for them to choose which accounts they’re transferring from and to so supporting transfers was the fourth pretty major thing that I had to change and it touched a lot of the app it touched the new transaction screen it touched a bunch of the data structures it even touched the widgets I had to make sure that transfers were not factored into this so supporting credit cards ended up being a lot more complicated than I thought so once I added transfers I ran into the fifth issue which was the new transaction screen is getting massive so
as I was using it in real life I realized man there is so much information here originally when I launched the app we only collected what’s the description of the transaction what’s the date of the transaction what’s the category but since launch we’ve added the ability to specify the transaction type which added a new row the ability to do recurring transactions with added a new row now we have another row for accounts and if you have a transfer that’s two more rows for accounts so the screen is getting pretty massive and honestly is a bit overwhelming so I realized I probably needed to rethink this one a little bit more so I decided to test some new Concepts to make this a little bit more diges adustable especially for new users
but honestly I’m still in the process of this this one is a very major change because it is the most access part of the app people access the screen multiple times a day so I have to be very careful about any changes and that actually goes into the more overarching sixth problem that I’m really facing with this I wanted this to be very simple and easy to use app and now that I’m adding this accounts feature this really did add a whole level of complexity to the app having to specify an account really does add more friction it already makes this screen a little less approachable the app started out
really simple I mean this is what it looked like in the very beginning when logging a transaction and now it’s starting to look like this so I am very concerned about what this does to the approachability of the app will new users get overwhelmed and then drop off from the app because it’s just too complicated to use so that’s something I’m trying to avoid and why I’m taking my time with this feature I didn’t touch on it but this screen alone took like 20 iterations to get to this point so it’s been a constant Battle of just chiseling away at the UI and trying to figure out how can I make this as simple as possible so it doesn’t overwhelm people maybe I’m being dramatic but I feel like
if I don’t get this right it could destroy what makes this app great which is the Simplicity and approachability of it that’s why I’m taking my time here and it’s honestly the bigger challenge so that’s where this feature is at right now as of recording this video it’s still not done yet I’ve been working on this on and off for the last month now and it’s been very challenging but I did want to share this with you guys so you guys can see a little bit more behind the scenes of what makes a feature like this challenging what’s going on in my head as I’m tackling these problems and trying to solve them hopefully you guys found this interesting and hopefully I launch this feature soon but if you like
this kind of content check out my Instagram and Tik Tok I post almost every other day about building productivity apps and obviously if you like this kind of content don’t forget to subscribe thank you guys so much for watching and I’ll see you guys in the next video [Music]