unsubbed.co

ezbookkeeping

Ezbookkeeping is a self-hosted accounting replacement for Mint, Quickbooks, and more.

Self-hosted personal finance, honestly reviewed. No marketing fluff, just what you get when you stop paying $15/month to track your own money.

TL;DR

  • What it is: Open-source (MIT) personal finance app — think a privacy-first YNAB or Monarch Money that runs on your own hardware and has zero recurring cost [1][2].
  • Who it’s for: Solo founders, freelancers, and privacy-minded individuals who are tired of subscription-based finance apps and want full control over their transaction data [2].
  • Cost savings: YNAB costs $109/year. Monarch Money runs $14.99/month ($180/year). Copilot is $13/month. ezbookkeeping self-hosted on a $6 Hetzner VPS or a $35 Raspberry Pi costs nothing beyond hardware [2].
  • Key strength: Genuinely lightweight — single Docker command, SQLite by default, runs on Raspberry Pi and NAS without complaint. The broadest import format support in its category (GnuCash, Firefly III, Beancount, MT940, Camt.053, and more) [1].
  • Key weakness: No bank sync — you enter transactions manually or import files. No household/family budget sharing model. The AI receipt recognition and MCP features are new enough that real-world reliability is unknown [1][2].

What is ezbookkeeping

ezbookkeeping is a personal bookkeeping application you run on your own server. You record income and expenses, organize them by two-level account and category hierarchies, attach photos of receipts, schedule recurring transactions, and then analyze spending through built-in charts. The project is maintained by mayswind on GitHub and sits at 4,509 stars — not Firefly III territory, but a meaningful community for a solo-developer project [1].

The pitch is simple: most personal finance apps are SaaS products that charge monthly fees, hold your data on their servers, and can change pricing or shut down at any time. ezbookkeeping is the opposite — MIT-licensed, self-hostable on anything from a cloud VPS to a Raspberry Pi, and built with Go for minimal resource usage [1][2].

What actually distinguishes it from the crowded self-hosted finance field is a combination of factors: mobile-first PWA design (you can add it to your home screen and use it like a native app), comprehensive import support for practically every personal finance format that exists, and — unusual for this category — emerging AI features including receipt image recognition and MCP (Model Context Protocol) support for AI assistant integration [1][2].

The live demo at https://ezbookkeeping-demo.mayswind.net lets you evaluate the UI before touching a terminal, which is a good sign for a project targeting non-technical users.


Why people choose it

There are no independent third-party reviews for ezbookkeeping in wide circulation — it hasn’t hit the product review circuit yet. What follows is based on primary sources: the GitHub README, the official website, and the feature comparison page.

The case for ezbookkeeping over alternatives tends to come down to three things.

Against subscription apps (YNAB, Monarch, Copilot). These tools charge $10–15/month, sync your bank credentials through third-party aggregators like Plaid, and store your complete financial history on their infrastructure. If the company folds, raises prices, or has a breach, you have no recourse. ezbookkeeping puts transaction data on your own server, behind your own 2FA and application PIN, with your own backups [1][2]. The trade-off is you lose automatic bank sync and the polish of a VC-funded product.

Against Firefly III. Firefly III is the well-known PHP-based alternative in this space. ezbookkeeping’s differentiation is deployment simplicity — a single Docker command versus Firefly III’s multi-container Compose setup — and the mobile PWA experience, which Firefly III has historically been weaker on. ezbookkeeping also supports direct import from Firefly III export files, so migration is possible [1].

Against GnuCash and desktop tools. GnuCash is powerful and free, but it’s a desktop application with no sync. ezbookkeeping is server-hosted with a web UI accessible from any device, plus a PWA for mobile. If you want to log a coffee purchase from your phone on the way out the door, ezbookkeeping supports that flow. GnuCash does not [1][2].


Features

Based on the README and official documentation:

Core bookkeeping:

  • Two-level accounts (e.g., Assets → Bank Account → Checking) and two-level categories [1]
  • Income, expense, and transfer transaction types [1]
  • Image attachments for receipts [1]
  • Location tracking with map display for transactions [1]
  • Scheduled (recurring) transactions [1]
  • Advanced filtering, search, and analysis with charts [1]
  • Full-text transaction search [1]

Mobile and UI:

  • Responsive UI for both mobile and desktop [2]
  • PWA support — installable on iOS and Android home screens as a native-like app [1][2]
  • Dark mode [1]
  • Multi-language support [1]

AI features (new):

  • Receipt image recognition — photograph a receipt and have fields auto-populated [1][2]
  • MCP (Model Context Protocol) support — connect ezbookkeeping to Claude Desktop, Cursor, or other AI clients as a data source [1][2]
  • API command-line script tools for custom AI integration workflows [1]

These AI features appear recent and the documentation is sparse. Treat them as experimental until community reports confirm reliability.

Localization:

  • Multi-currency with automatic exchange rate updates from multiple sources [1][2]
  • Multi-timezone support [1]
  • Custom date, number, and currency formats [1]

Security:

  • Two-factor authentication (2FA) [1][2]
  • OIDC external authentication (SSO via any OIDC-compatible provider) [1][2]
  • Login rate limiting [1]
  • Application lock via PIN code or WebAuthn (fingerprint/hardware key) [1]

Data import and export:

  • CSV import/export [1]
  • OFX, QFX, QIF, IIF (common US bank export formats) [1]
  • Camt.052, Camt.053, MT940 (European bank formats) [1]
  • GnuCash native format [1]
  • Firefly III export format [1]
  • Beancount format [1]

The import breadth is the feature list item most likely to matter in practice. If you’re coming from another app or exporting from your bank, there’s a good chance ezbookkeeping handles the format directly [1].

What’s missing:

  • No automatic bank sync (no Plaid, no Open Banking integration mentioned anywhere in the documentation)
  • No multi-user household sharing model — this is a personal finance app, not a family finance app
  • No built-in budgeting envelope system (YNAB-style zero-based budgeting is not part of the feature set)

Pricing: subscription apps vs self-hosted math

ezbookkeeping has no SaaS tier. There is no cloud version you can pay for. It’s self-hosted only [1][2].

What popular subscription alternatives cost:

  • YNAB: $109/year (billed annually) or $14.99/month
  • Monarch Money: $14.99/month ($99/year billed annually)
  • Copilot (Mac/iOS only): $13/month or $95/year
  • Mint: discontinued in January 2024 — many of its former users are now looking at alternatives

Self-hosted ezbookkeeping:

  • Software license: $0 (MIT) [1]
  • Minimum viable deployment: free on an existing Raspberry Pi or NAS you already own
  • Cloud VPS option: $4–6/month on Hetzner, Contabo, or Oracle Free Tier (which can run it at zero cost)
  • SQLite is the default database — no separate database server required for personal use [1]

Concrete savings math:

A freelancer switching from YNAB to ezbookkeeping self-hosted on Oracle’s always-free VPS saves $109/year with zero ongoing cost. On a $6 Hetzner VPS shared with other self-hosted apps, the marginal cost for ezbookkeeping is effectively $0 since the server is already running. Over five years at YNAB pricing, that’s $545 in software fees eliminated — money that could pay for the server running ten other self-hosted apps [1][2].

The cost comparison is unusually clean here because there’s no “commercial tier” or feature gating. Every feature in the README is available to every self-hosted user, with no licensing distinction [1].


Deployment reality check

ezbookkeeping’s deployment story is one of the cleanest in the self-hosted space. The minimum viable install is a single command [1]:

docker run -p8080:8080 mayswind/ezbookkeeping

That gets you a running instance with SQLite storage. No database container, no reverse proxy required to start. Visit http://your-server:8080 and you’re in.

For a production setup you’ll want:

  • A reverse proxy (Caddy or nginx) for HTTPS
  • A domain name if you want to access it remotely
  • Docker or a binary for your architecture (x86, amd64, ARM — all supported) [1]
  • Optionally MySQL or PostgreSQL if you expect to grow beyond personal use or want external backups [1]

What ezbookkeeping runs on:

  • Raspberry Pi (explicitly mentioned in the README) [1]
  • NAS devices [1]
  • MicroServers [1]
  • Any Docker host — cloud or local

The ARM support is meaningful. Many self-hosted finance apps are x86-only. If your home server is a Raspberry Pi 4 or an Odroid, ezbookkeeping runs natively without emulation [1].

Configuration changes require a restart — the app reads config at startup and doesn’t hot-reload [1]. This is standard behavior for Go applications but worth knowing before you start tweaking settings.

One thing to verify: the domain and root_url configuration needs to match your actual access path when you’re behind a reverse proxy. If you get broken image URLs or OAuth redirects that don’t work, this is the first setting to check [1].

Time estimate:

  • Technical user, Docker already installed: 20–30 minutes to a running HTTPS instance
  • Non-technical user following a guide: 1–3 hours including domain and reverse proxy setup
  • On a Raspberry Pi you already use: likely 15 minutes if you’ve deployed Docker containers before

Pros and cons

Pros

  • Genuinely lightweight. Runs on a Raspberry Pi without complaint. The Docker image is small, the binary is self-contained, and SQLite means zero external dependencies for personal use [1][2].
  • Single-command Docker deploy. Lowest friction initial install in the personal finance self-hosted category [1].
  • MIT license with no feature gating. Everything in the README is available to every user. No “community vs enterprise” split [1].
  • Broadest import format support in category. GnuCash, Firefly III, Beancount, MT940, Camt.053, OFX, QFX, QIF, IIF — if your current tool can export, ezbookkeeping can probably import [1].
  • Strong mobile experience via PWA. Add-to-home-screen GIF is in the README — this is a primary use case, not an afterthought [1][2].
  • OIDC / SSO support. Connect to any OIDC provider (Authentik, Keycloak, Google, etc.) for centralized login [1][2].
  • Application lock. PIN and WebAuthn lock at the app level — useful if your device is shared [1][2].
  • Live demo. You can evaluate the full UI without deploying anything [2].
  • Receipt image recognition and MCP. If these mature, they’re genuinely differentiated features for a personal finance app [1][2].

Cons

  • No bank sync. This is the biggest functional gap versus YNAB, Monarch, and Copilot. You’re entering transactions manually or importing CSV files from your bank. For some users this is fine (and actually preferred for mindfulness). For others it’s a dealbreaker [1][2].
  • Single-user model. No household sharing, no partner access, no family budget view. If two people manage finances together, you’ll need to work around this — either shared login or separate instances [1][2].
  • No envelope budgeting. If YNAB’s zero-based budgeting methodology is why you’re paying $109/year, ezbookkeeping doesn’t replicate it. It’s a transaction recorder and analyzer, not a budget planner [1].
  • AI features are unproven. Receipt recognition and MCP support are listed in the README but documentation is thin. No community reports on reliability or accuracy. Treat as experimental [1][2].
  • Solo maintainer. The project is maintained by one developer (mayswind). Not inherently bad — many excellent open-source tools are — but it’s a sustainability consideration for something you’re entrusting with financial records [1].
  • No independent reviews available. The project hasn’t yet been evaluated by major self-hosted review sites or tech publications. You’re making a judgment call based on the code and documentation, not accumulated community wisdom.

Who should use this / who shouldn’t

Use ezbookkeeping if:

  • You’re paying YNAB, Monarch, or Copilot $100+/year and the bank sync feature is a nice-to-have rather than a necessity.
  • You already have a Raspberry Pi, NAS, or home server running and want to add personal finance tracking at zero marginal cost.
  • You’re migrating from GnuCash, Firefly III, or Beancount and want a better mobile experience without switching ecosystems.
  • Privacy matters — you don’t want your complete financial transaction history on a SaaS company’s servers.
  • You want a clean mobile experience and are comfortable with PWA rather than a native app.

Skip it (stay on YNAB or Monarch) if:

  • Automatic bank sync is the feature you use most and you’re not willing to give it up. Manual entry or CSV import is a meaningful behavior change.
  • You and a partner manage finances together and need shared access with separate logins.
  • You rely on YNAB’s budgeting methodology — zero-based envelope budgeting is not something ezbookkeeping replicates.

Skip it (try Firefly III instead) if:

  • You need multi-user household budgeting with role-based access.
  • You want a more established self-hosted finance app with a larger community and more third-party integrations.
  • You need rules-based automatic transaction categorization.

Skip it (try Actual Budget instead) if:

  • You want zero-based budgeting in a self-hosted package — Actual Budget replicates YNAB’s methodology more closely.

Alternatives worth considering

  • Firefly III — The most established self-hosted personal finance app. PHP-based, more complex to deploy, but larger community, multi-user support, and rules-based automation. Import from Firefly III is directly supported by ezbookkeeping if you outgrow it [1].
  • Actual Budget — Open-source (AGPL), self-hostable, and specifically designed around YNAB-style zero-based budgeting. If envelope budgeting is your goal, this is the better fit.
  • GnuCash — Desktop application, double-entry bookkeeping, very powerful for complex scenarios. No mobile access without workarounds. Direct export to ezbookkeeping format supported [1].
  • Beancount — Plain-text double-entry bookkeeping. Beloved by engineers who want version-controlled financial records. Not for non-technical users. ezbookkeeping imports Beancount format [1].
  • YNAB — The SaaS incumbent. Best bank sync, best mobile apps, best budgeting methodology, $109/year, your data on their servers.
  • Monarch Money — More modern than YNAB, strong household sharing, $14.99/month, also SaaS.

For a non-technical founder or freelancer who wants to escape subscription fees and doesn’t need automatic bank sync, the practical shortlist is ezbookkeeping vs Actual Budget vs Firefly III. Pick ezbookkeeping if lightweight deployment and mobile experience are priorities. Pick Actual Budget if YNAB-style budgeting is the goal. Pick Firefly III if you need multi-user access and are comfortable with a more complex setup.


Bottom line

ezbookkeeping does one thing unusually well for a self-hosted personal finance app: it gets out of your way. Single Docker command, SQLite by default, runs on hardware most people already own, MIT license with no feature tiers. The import format breadth is genuinely impressive — if you’re coming from any mainstream personal finance tool, there’s likely a direct migration path. The AI receipt recognition and MCP integration are interesting bets on where personal finance tooling is going, though their real-world reliability is unproven.

The honest limitation is what it doesn’t do: no bank sync, no household sharing, no envelope budgeting. If any of those are requirements, look at Actual Budget or Firefly III instead. But for a solo founder or freelancer who wants their transaction history on their own server and is willing to enter transactions manually or import CSV exports from their bank, the math is simple — $0/year versus $100–180/year for the SaaS alternatives, on infrastructure you control.

If the deployment step is the blocker, that’s exactly what unsubbed.co’s parent studio upready.dev handles for clients. One-time setup fee, you own the infrastructure, the recurring SaaS bill goes away.


Sources

  1. ezbookkeeping GitHub README — mayswind/ezbookkeeping (4,509 stars, MIT license). https://github.com/mayswind/ezbookkeeping
  2. ezbookkeeping Official Website — homepage, feature overview, and documentation. https://ezbookkeeping.mayswind.net
  3. ezbookkeeping Feature Comparison Page — full feature list vs alternatives. https://ezbookkeeping.mayswind.net/comparison/
  4. ezbookkeeping MCP Documentation — Model Context Protocol integration guide. https://ezbookkeeping.mayswind.net/mcp/

Features

Authentication & Access

  • Single Sign-On (SSO)
  • Two-Factor Authentication

AI & Machine Learning

  • AI / LLM Integration

Search & Discovery

  • Advanced Filters

Customization & Branding

  • Dark Mode

Analytics & Reporting

  • Charts & Graphs

Localization & Accessibility

  • Multi-Language / i18n
  • Timezone Support

Mobile & Desktop

  • Progressive Web App (PWA)

E-Commerce & Payments

  • Multi-Currency