Applying filter: post
This blog is about Actual, a personal finance system built for privacy and speed. If you'd like to give it a try, check out the demo. You can filter these posts by clicking on the tag, such as Release.

The next upcoming release is 0.0.149-next

The latest release is 0.0.147

Download the app here.

February 20th, 2022·James Long·Post
·

I’ll be doing a livestream tomorrow, Feb 21 at 12PM EST, for at least 1 hour. Last time I talked a lot about things I’ve done outside of the app itself, such as the new blog/docs site (which you are reading right now). This time I’ll be focusing on the app, demonstrating the new nYNAB import and bug fixes.

·

I’ll also be available to answer any questions. If you are wondering how to do something in Actual, please ask and I’ll be happy to show how to do it (if it’s possible).

·

If there are no more questions, I will livestream some development of the app. While I’ve been working on several new features, reports might be a fun one to livestream.

August 24th, 2021·James Long·Post
·

The next version of Actual (0.0.138) implements basic tracking to help inform development, and I want to be completely transparent about how it works. Your privacy is still important.

·

Unlike most apps, Actual treats your data like its yours. It’s literally a sqlite file on your hard drive, even on the web. Because this approach is so different than other apps, I need to think harder about everything I do. Most services out there just assume you’re OK with handing over users’ data. I am not.

·

A big example is sharing your data across devices. Instead of giving up and moving your data to the cloud, I built a custom syncing engine that supports end-to-end encryption. Your data is still local, but now it’s able to be synced around. As a bonus, you don’t have to worry about losing all your data if your computer breaks.

July 25th, 2021·James Long·Post
·

I wrote this post over a month ago and then I kept digging, so I never posted this. At the end of the post I talk about the absurdity of persistence APIs on the web. I’ll be releasing a new project soon which solves this.

·

I’m on vacation, so naturally I’m thinking of some important things to change in Actual. This is a super technical post about how I’m approaching this decision.

·

For some context, let me explain how part of Actual works. There’s a lot of “computed data” in the budget, which means data that depends on other data. To get an “amount to budget” for the current month, it needs the balance for each category from last month, which depends on the budgeted and spent amount in each category, etc. In fact, to compute the current month’s budget numbers, it needs to compute numbers for all months before it.

December 4th, 2020·James Long·Post
·

While researching A curious caching bug, I got inspired to take another look at how Actual stores data locally on the web. There’s some history I need to explain. Years ago, Actual was only going to be a desktop app. That means all of your data is stored locally. No server.

·

Then I realized how important mobile is, and that most people don’t want to worry about losing their data if they drop their computer in the ocean. A syncing engine was born, and desktop and mobile apps have happily synced their data ever since. A copy is kept on a server so users can login and easily view their data, and if they worry about privacy they can enable end-to-end encryption.

·

In the last year I grew jealous of web apps. Look at how easily they can deploy… how quickly they can drop users right into the app. No install required. Here I am asking users to download an 80MB file just to run the app. That download absolutely kills conversion rates, and makes the login flow, support, a/b testing and everything much harder.

December 3rd, 2020·James Long·Post
·

A few weeks ago I got an email from a customer:

·

I just did an import and categorized the transactions. The month of November has transactions, but they don’t show up in the budget. It says $0.00 for a category, but if I click on it they show up in the transactions list.

·

The budget should be pretty solid by now, so my first thought was either a problem specific to their filesystem (is the disk full?) or a rare edge case between the API or other less-used features.