Skip to main content

Tracking Every Yuan: A Decade of Budgeting and the Open-Source Switch

After 10+ years of personal bookkeeping, one user moves from premium apps to open-source tools. A practical look at budgeting habits and three self-hosted finance apps.

The Habit That Stuck

It started with a Nokia and a credit card. Back then, there were no budgeting apps pinging your phone, no auto-synced transactions. I was fresh out of college, scraping by in a big city with a thin paycheck and zero safety net. So I did the only sensible thing: I wrote down what I spent. Rent came first—deposit plus three months upfront meant I had to squirrel away a quarter's rent before the next payment came due. My early ledgers were rough, just big purchases and a balance written in on payday. But the habit stuck.

Over the years, my bookkeeping evolved with my life. I caught a bull market and turned my savings into a day-trading hobby—my records became a log of stock buys and sells, and I somehow sold everything before the crash. Then came a mortgage, and the darkest stretch: every yuan had a job—renovation, loan payments, paying back family. I tracked every cent to survive. Marriage, kids, a car, and multiple credit cards only made things messier. I tried apps but hated entering every transaction, so I fell back on notes and Excel.

Then the economy turned. Tech layoffs filled the news, and even my stable job felt shaky. Cash flow mattered more than ever. Last year, I paid for MoneyWiz, a premium finance app, hoping it would keep me on track. It did the job, but at $24.99 a year, it felt overpriced—especially since bank sync doesn't work in China and I needed a VPN just to get my data to update. So when my subscription ran out, I decided to go open-source.

Why Bother Keeping Accounts?

Honestly, I'd never stopped to ask why I keep doing this. But if I'm going to convince anyone else to start, I need an answer. The biggest payoff is planning. As an adult with a family, I need to manage both the monthly bills and the long-term growth of our assets.

Inflation eats away at cash, so I try to put my money to work. Short-term, I split things into three buckets: daily spending on credit cards (they float the balance, so I don't have to), a fixed slice into savings for emergencies, and the rest into investments—though right now, that means paying down the mortgage since its interest rate beats most savings accounts. Long-term, it gets complicated—real estate, future income, family needs. That's where an annual or five-year plan comes in, and I'm not going to pretend I'm an expert.

Budgets, Reminders, and Peace of Mind

Once you've tracked for a while, you know what you typically spend. That lets you set a budget—say, a monthly cap on eating out. When you hit the limit, you stop. It sounds trivial, but add up all those impulse buys over a year and you'll see the point.

There's also a psychological side. When you know where your money goes, you feel safer. Living paycheck to paycheck with no idea where it went is stressful, and that stress seeps into everything. For a family, it's about responsibility—making sure there's enough for insurance, medical bills, and your kid's education.

Start Small, Not with an App

If you've never tracked expenses, don't download a full-featured finance app right away. They require you to log every single transaction, which is tedious and will kill your motivation. I've seen three levels of commitment:

  • Beginner: Use any notes app. Create a monthly note, and at the end, jot down the total income and expenses for each account—bank, credit card, Alipay, WeChat. Add any big purchases. That's it.
  • Intermediate: Move to a spreadsheet. Set up a template with formulas, then duplicate it for each month. Add a summary sheet. This gives you totals and trends automatically.
  • Advanced: That's when you're ready for a dedicated app that ties everything together—accounts, categories, and reports.

I jumped straight to the advanced level with MoneyWiz, but after a year, I realized the app itself was fine—there just wasn't much else. No extra services, no magic. For the price, I expected more.

The Open-Source Contenders

With MoneyWiz out, I hit GitHub and searched for "personal finance." Sorting by stars, three projects stood out—everything else had a fraction of their popularity.

Maybe

Maybe is the new kid, open-sourced in 2024. It has the slickest interface, very modern. But it's English-only, and the financial terms are a pain to look up. Also, its categories are flat—no subgroups—so detailed budgeting is clumsy.

Actual

Actual is older and more established, with solid docs and a helpful community. The UI is a bit rough—I almost wrote it off after the demo—and it's also English-only. They do offer a live demo, which is nice.

Firefly III

Firefly III is the veteran. It has more features, supports Chinese, and has a friendlier interface than Actual. After comparing, I chose Firefly III.

Getting Firefly III Running

I deployed it on my MacBook using Docker. The official docs are good, but here's the short version:

  1. Download the docker-compose.yml and the two env files from the Firefly GitHub repo.
  2. Set the database password in both env files to the same value.
  3. Generate a 32-character token for cron jobs (use uuidgen | tr -d '-').
  4. Edit the compose file: rename the env file references, change the host port from 80 to something else to avoid conflicts, and plug in the cron token.
  5. Run docker compose -f firefly-iii.yml up -d.

Then open your browser to localhost. The setup wizard is a nice touch—it asks for your bank name, sets currency to Chinese yuan, and switches the language to Simplified Chinese. There are tooltips and guides to walk you through the basics.

Practical Tips I Picked Up

Here are a few things that made the switch easier:

  • Credit cards: When you first add a card, don't bother entering past transactions. Just set the balance to what you owe now, then log new purchases going forward.
  • Repayment: Treat a credit card payment as a transfer from your cash account to the card.
  • Other assets: Create savings accounts for things like a fuel card or Alipay balance. For your mortgage, set up a liability account with the interest rate and repayment schedule—Firefly will calculate how much goes to principal vs. interest.
  • Data import: None of these apps can import from MoneyWiz directly, but MoneyWiz exports CSV, and Firefly has a REST API. I wrote a simple Python script to push my old data in. You can even build a custom workflow—like an Alfred snippet that formats a transaction and posts it via the API.

Final Thoughts

Switching software forced me to think about why I've been doing this for over a decade. It's not about the numbers themselves—it's about the security and control they give you. If you're new to this, start with a simple list. If you're a veteran, don't be afraid to tinker with self-hosted tools. Just remember: your financial data is sensitive, so keep it off the public internet and back it up. Losing years of records because you skipped a backup is a pain you don't want.

I've only just started with Firefly III, but so far, it feels like a worthy replacement. And who knows—maybe I'll even use its piggy bank feature to save up for that car mod I've been eyeing.

Share this article:

Comments (0)

No comments yet. Be the first to comment!