Skip to content

A simple, powerful local-first personal finance tool

Backwater Finance is a simple, powerful web application designed for personal finance bookkeeping — recording, cataloging, and reporting on one’s personal financial transactions.

Use the application
A screenshot of the application

Features

Learn more

So what’s the story?

Backwater Finance’s origin lies in my incurring several handsome fees from overdrafting my checking account when I was first starting out. I didn’t like the notion of paying for ignorance of my own current situation. Especially when that situation was negative. 😒

Maybe my mom was right — I needed to balance my finances. A checkbook seemed outdated, though, so I started a spreadsheet. Spreadsheets can get one pretty far, but I was always thinking about ways to make it easier to use and understand … more streamlined. In 2021, I started developing this application in my spare time, to tinker productively on something and practice my trade without boundaries. Since then, I think it’s become quite the useful tool; I hope that it’s helpful to you in your financial quest as well!

What is local-first software?

It’s pretty simple — local-first software primarily executes and stores data locally on your device. This is in contrast to the standard practice of many applications today, where remote, third-party servers store and process users’ data “in the cloud,” often at the expense of the users’ privacy. With specialized application architecture, local-first software allows for the modern connectivity and convenience of the internet without forcing users to surrender stewardship of their data.

Local-first software has a bunch of other benefits, too. In our opinion, it’s easy to understand why the movement has been gaining traction recently.

What about data privacy?

The short story is that we store the minimal amount of data necessary to provide our services.

We log some information about communications with our servers for technical support and quality assurance, including your IP address, but don’t store it long-term. (Unless you get your IP address banned. Absolutely no automated scanning or probing of the hosted app without first obtaining permission — not that you bad bots will listen! 😡)

Basic license

If you use the free, Basic license, our systems don’t store any data for or about you beyond the information transiently logged for support & QA.

Premium license

If you use the Premium license, our systems remotely store some data necessary for billing and providing services.

In the case of the Account Sync feature, we remotely store configuration and authentication data, encrypted at rest. In securely encrypted communications, we transmit your transaction data to you, by way of Plaid, without storing that data.

In the Database Sync feature, the application securely transmits and receives your database as a file to and from compatible cloud storage platforms of your choice. Your configuration data is stored locally, not by us. We do not receive or store any sensitive information related to this feature.

For the full, legal details, read the application’s privacy policy and terms of service.

Some disclaimers

Beta

The application is currently in beta status. That means it’s in active development; things are improved and new features are added frequently. Besides the suite of automated tests, we manually test things extensively ourselves. Unfortunately, bugs sometimes sneak past. Let us know if you have any bug reports or suggestions — we appreciate it!

Data encryption

The application’s data storage is provided by database technology built into web browsers: IndexedDB. The IndexedDB standard does not natively support encryption. Other websites cannot access your stored data, but it is not “encrypted at rest” and thus not secured against unrestricted access to your device. This has a similar security profile to storing an unencrypted text or spreadsheet file on your computer — access to that file could be restricted by securing access to your device, using data encryption at a lower level (e.g., using volume encryption provided by the operating system), etc.