State of Reckoner 2023
Not sure if this is going to be a blog format or news update format, so this will evolve over time. For this post, let’s talk about the state of my big side project.
Reckoner has been an ongoing side project for the past two years. It is a privacy focused financial tracker. This came about as the confluence of a few factors:
- I suddenly had some free time after quitting a taxing job
- I had an increasing desire over time to use privacy respecting tools and stopped using Mint in favor of Firefly III
- However, there limitations in Firefly III and mobile support was poor as it was handled by other people integrating with the Firefly III API.
After further investigation, I wasn’t able to find a good privacy first alternative for personal finance tracking which I liked. Almost all of them lock you into a particular way of tracking finances which I would find some issue with. Given that I am a developer and this is a software problem, I can make a solution!
I’ll go into my decision criteria for the tech stack I chose in a later post, but the TLDR was that I settled on using the Flutter framework 🐦 to build the frontend and would use a backend-as-a-service (BaaS) for synchronization and cloud functions. I’ve really enjoyed working in the Flutter ecosystem and will have more to say about the positives and negatives of this in the future.
One of the difficulties with a self-directed project is staying on task and not getting distracted. To stay accountable and solicit feedback, I asked friends of mine to join my “App Brain Trust”. I meet with them ~8 times a year or less for a handful of hours. I bring my ideas and they give me critical feedback and their ideas. I cannot thank them enough 🙇 as Reckoner would have probably been an abandoned project without them. If you’re looking to start your own project, find friends willing to provide honest feedback, wacky ideas, and encouragement. It makes the process easier and more pleasant. Also, bringing 🍺 doesn’t hurt either 😉.
Progress to Date
Reckoner currently has all of the basics handled and can work as a standalone app. It has pages for transactions, accounts, options (currencies, tags, settings), and dynamic pages for category groups (which can be configured to act as budgets) and report groups. I won’t go into the details of each of these in this post as I have an open task to create documentation on a wiki or equivalent! Look for that later this year. If you want to test the web version, use the
generation link. Note that if you don’t clear the site data, changes to the database may cause errors in the future. demo link.
In February, I’ve been working on a cloud synchronization service. As mentioned above, this involved using a BaaS to handle the data. Most developers will be aware of Google Firebase which is the most well known and popular Baas. However, Reckoner is privacy focused so using Google Firebase, Amazon Amplify, or MongoDB Realm were ruled out. For the first service, I am integrating with PocketBase. This is a self-hosting solution which is more private, but is not accessible to non-technical users.
I have the PocketBase service working with the Linux client to upload changes in the application state and downloading from PocketBase to restore app state. I have yet to have multiple clients attached to the database and know that the web client has some bugs to work out.
Right now I need to make PocketBase synchronization work on all current clients (Linux, Web, and Android) and test with multiple connected clients. Development is hard and I thought I had it all figured out when I got the Linux client working…until I tested other clients 🤦. After finalizing this, I will need to choose from one of the following to focus on next.
- Add encryption to the synchronization service
- Add application lock screen
- Add local encryption to the database
- Build documentation for the app
- Thoroughly test the application over several days using realistic workflows
- Formally release on application stores (once the above tasks are complete)
If you’ve read this far, thank you! I’m going to try and keep a monthly update cadence for Reckoner reports and will throw in a few other musings along the way. Until next time!