Blog · Build It Yourself

How I Replaced a $500-a-Year QuickBooks Subscription With a Single Plan

Let me start off with, I am not an accountant. But I have a single-member LLC, I file a Schedule C, and for years I paid $38 a month for QuickBooks to do the bookkeeping while outsourcing the maintenance. Eventually, I decided it was time to replace it, and in one day I did so with a native Mac app I built from a Plan using Claude/Codex and ChatGPT. The plan is the part I am sharing, and I will give it to you.

By Michael Pierce · MDPSync · June 24, 2026

9 min read

The Friction

I run a side business as a single-member LLC, the kind of operation that earns a little, spends steadily, and at the end of the year collapses into a Schedule C attached to my personal return. QuickBooks is built for something much larger, a company that needs a general ledger, and it came with a chart of accounts I had not designed and a vocabulary I had to look up every time I opened it. For that I was paying $38 a month, about $456 a year, to run software I could never quite drive on my own.

I needed the app to pull the transactions from my bank and card accounts, sort each one into a category that maps to a Schedule C line, let me fix the few the machine gets wrong and remember those corrections so it never asks again, show me where the money went across the year, and produce a clean export my accountant could open in January. Invoicing sat on top of that, because I bill customers and have to send them something. None of it requires a double-entry accounting package, and yet every part of it was buried under features I would never touch.

From a Prompt to a Plan

I started with the brief instead of code, and I did not write it alone: I asked ChatGPT to play a senior accounting consultant and draft a starting plan for someone in exactly my position, a non-accountant running a single-person LLC who files a Schedule C and wanted something simpler than QuickBooks but no less correct. The prompt I gave it was short and plain.

The Seed Prompt
I am not an accountant. I have a side business that is a single-person LLC, and I file a Schedule C. I use QuickBooks, but I need something I can understand. As a senior accounting consultant, write a plan I can use as a starting point to build a simple, understandable accounting application. It should take in data from an MCP connected to my accounts, categorize transactions, and give me dashboards and reporting. Assume it needs to be an effective replacement for QuickBooks.

That produced a first plan, which I took to Claude and had built into the real thing, a full implementation plan with an architecture, a data model, a domain layer, and an ordered milestone sequence. Then the whole document went back through review, because the first draft of anything is the one most likely to be hiding a wrong assumption. Codex read it as a critic and found the gaps, I handed that critique to Claude's UltraPlan for a final pass, and we went back and forth for a couple of hours until the plan was tight enough to run in one shot instead of in a dozen corrective rounds.

I ran the plan, and by the end of the day I had an app good enough to cancel the subscription, because a plan that has been through two independent reviews takes a few hours to build and does not need correcting halfway through. The couple of days after that were customization and one piece of setup: wiring up the data feed that pulls my accounts.

What I Built

The result is a native macOS app that keeps everything financial in a single SQLite file on my Mac, and that file, not a server and not a cloud account, is the only source of truth. The app never talks to my bank, never moves money, and holds no API keys of any kind, because it is read-only toward every institution by design and has no code path to be anything else.

The mdpBooks business dashboard showing year-to-date net income, account reconciliation, a monthly net chart, an expense-share donut, and expenses broken down by Schedule C line. Dollar figures and the company name are blurred for privacy.

The business dashboard: year-to-date net, account reconciliation, spend by category, and a Schedule C line breakdown. Dollar figures and the company name are blurred.

Figure 1: mdpBooks System Architecture MDPBOOKS: SYSTEM ARCHITECTURE INSTITUTIONS Bank & Card Accounts Checking (asset) · Card (liability) • Balances and transactions • Read access only • No write path exists • The app never connects here YOUR MONEY, ELSEWHERE RUNS OUTSIDE THE APP Sync Bridge Node + MCP · nightly job • MCP pull (OpenBudget) • Builds ImportBundle JSON • Model categorizes new rows • Holds the only secret THE NETWORK EDGE LOCAL-FIRST mdpBooks (macOS) SwiftUI · GRDB SQLite • One SQLite file = truth • Rules + review queue • Schedule C reports + CSV • Invoicing, siloed from books ON MY MAC read-only MCP pull one-way file ImportBundle JSON LOCAL-FIRST BOUNDARY The app makes no network calls and holds no API secrets The only secret is the categorizer key, and it lives in the bridge Nightly flow: MCP pull → build bundle → categorize new rows → ImportBundle JSON → ingest → review queue → Schedule C reports Reconcile keeps every decision you have made, so a re-pull never overwrites your categories

The sync bridge

The only code that touches the network lives outside the app. A small Node job runs on a schedule, uses an MCP connected to my institutions (built on OpenBudget) to pull the last few weeks of activity, and writes a plain JSON file in a fixed shape. The app only ever reads that file. A cheap, fast model suggests a category for each new transaction, and the rule engine handles the repeats so the model rarely runs. The only secret in the whole system is that model's key, and it never enters the app.

Categorize, then review

Deterministic rules run first, the model fills in new merchants, and everything uncertain lands in a one-card-at-a-time review queue. When I correct a category, the app mints a rule from that decision, so the same merchant is never asked about twice. Transfers and credit-card payments are detected and held out of the reports, which is the defense against double-counting: a card purchase is an expense once, when it is charged, and the later payment is a transfer on both legs and counts as neither.

The model step uses your Anthropic API key. When a new business appears for the first time, the sync job sends its name to Claude, which returns the right Schedule C bucket, so a restaurant becomes Meals, a hotel becomes Travel & Lodging, and a software subscription becomes Office Expense. That call happens once per merchant. After that, the saved rule handles every future charge from the same place automatically.

Schedule C, dashboards, and the January export

Every income and expense category maps to a real Schedule C line, zero-padded so the summary sorts in the order the form uses rather than the order a plain string sort would impose. The dashboard shows year-to-date net, the months as a trend line, where the money went as a category donut, and a Schedule C readiness view, and every report exports to CSV, with the full transaction export standing in as the file my accountant gets in January. Nothing in it needs a reconciliation ritual or a closing of the books, and the numbers are arranged in the shape the tax form uses.

Invoicing, kept separate

The app also bills customers and renders a formatted PDF, but invoicing never posts to the ledger. On cash basis the income is recognized when the deposit lands and arrives through the normal sync, so an invoice that also booked income would double-count against that deposit. Invoices stay billing documents with their own status, and an automated test proves that creating, sending, and paying one never moves a single number in the books.

The Math

QuickBooks was $38 a month, which comes to about $456 a year, and the replacement costs nothing to run except the one piece I cannot build myself, a paid MCP that connects to my financial institutions for $60 a year. The build was a single day of my time against a plan I already trusted, and everything that came out of it, the categories and the rules and the reports, is mine to change whenever I want.

Was paying
$456/yr
QuickBooks, $38/mo
Now paying
$60/yr
Account data feed (MCP)
Build time
1 day
Against a reviewed plan

The Plan, in Full

The document below grew out of the seed prompt above and is the plan that would let a model rebuild this app from an empty folder. It carries the architecture, the data model and its migration chain, every domain engine and the rules they got wrong the first time, the sync bridge, the milestone order, and the decisions I would defend. It uses placeholders everywhere a real deployment used private values, so there are no account numbers, no keys, and no bank data in it. Copy it, hand it to Claude or Codex or Cursor, and adapt it to your own situation.

The Plan has been sanitized, so you may have some lift in making it personal by needing to add your own API Keys, install your own MCP and configure your data source (I used OpenBudget and Truthifi because no one tool connected with all my institutions).

Then Personal, Too

I was also paying for Quicken Simplifi, $68 a year, to watch my personal accounts, and the app I had just built already pulled accounts, categorized transactions, and charted where the money went. The only thing it did not do was keep personal and business apart.

So I added a second silo. The business books and the personal books now live in the same app and on the same machine but never touch, each carrying its own accounts, categories, dashboards, and review queue, so that business spending maps to Schedule C lines while personal spending stays ordinary household money that answers to no tax form. I open one app instead of two, and the second subscription is gone.

QuickBooks and Simplifi together were $456 and $68, which is $524 a year, for two tools I rented and did not control. The replacement costs $60 a year for the data feed, the one thing I cannot build myself, while everything else came from a plan and an afternoon.

Two subscriptions
$524/yr
QuickBooks + Quicken Simplifi
One app
$60/yr
Business and personal, siloed
Kept every year
$464/yr
And software I own

Mobile App Companion

The Mac app handles everything, but I wanted a quick read on the go. A simple side-loaded companion app was straightforward to add, a lightweight dashboard pulling from the same data source, surfacing a snapshot of both the business and personal totals without any of the entry or review mechanics. Now I can check where I stand financially from my phone in a few seconds, without opening a laptop.

The Plan Is the Asset

The code took a day because the thinking had already gone into the plan. A refined prompt and a reviewed plan let one person build something they would otherwise rent for years, and I expect plans like this one to be traded and forked as open-source starting points the way libraries are now.

That plan is one button up the page, yours to take and make your own.

Trade a Subscription for Software You Own

mdpBooks is a personal project. If you are renting software that does eighty percent of what you need and frustrates you with the other twenty, the plan above is a place to start. Businesses that would rather have it built can hire us for the same process, starting from a fixed-price build plan like the one above.