know.2nth.ai Technology tech frappe books
tech/frappe · Books · Skill Leaf

Desktop accounting,
no server required.

Frappe Books is a free, offline-first desktop accounting app for small businesses. It is not a Frappe Framework web app — it's a standalone Electron application that uses the Frappe design language but runs entirely on your laptop with a local SQLite database. Invoices, payments, journal entries, a general ledger, and financial reports — for the business where ERPNext is too much and a spreadsheet stopped being enough.

Live Electron · Vue · SQLite AGPL v3 Desktop app

Accounting without the infrastructure.

Frappe Books is not the Frappe Framework. This is the most important thing to understand. It doesn't run on a Frappe bench, doesn't use MariaDB or Postgres, doesn't have doctypes in the Frappe sense, and doesn't expose a REST API. It's an Electron app — a desktop application built with Vue on the frontend and a local SQLite database on the backend. The "Frappe" in the name refers to the team that built it and the design language it shares, not the runtime.

What it does: double-entry accounting for a single company, on a single machine, without an internet connection. You create sales invoices, purchase invoices, payments, and journal entries. The app maintains a general ledger, trial balance, profit and loss, and balance sheet. It handles GST (India), VAT (generic), and basic tax reporting. It prints invoices. That's the scope — and it's intentional.

The positioning is clear

Frappe Books exists for the business that has outgrown spreadsheets but doesn't need (or want) the overhead of ERPNext, Sage, QuickBooks, or Xero. One person, one company, one laptop. If you need multi-user, multi-company, inventory, manufacturing, or payroll — you've outgrown Books and should look at ERPNext or another full accounting system.

What's inside the app.

These aren't Frappe doctypes — they're local SQLite tables. But the mental model is similar: each concept is a record type with fields, validations, and linked reports.

Concept Purpose Notes
Sales InvoiceBill a customer for goods or servicesLine items, taxes, due date, payment status
Purchase InvoiceRecord a bill from a supplierMirrors sales invoice structure
PaymentRecord money received or paidLinks to invoices for reconciliation
Journal EntryManual double-entry adjustmentDebit/credit rows against any account
Chart of AccountsThe account tree (assets, liabilities, equity, income, expense)Pre-configured templates for several countries
General LedgerEvery transaction, every account, chronologicalThe source of truth for all reports
Financial ReportsP&L, Balance Sheet, Trial BalanceGenerated from the ledger in real time

Desktop patterns, not REST calls.

Since Books is a desktop app, there's no server API to call. Instead, here's how the app works internally and how you interact with it.

# The data layer — SQLite, not Postgres
# Books stores everything in a single .db file on disk
# Location (macOS): ~/Library/Application Support/FrappeBooks/
# Location (Windows): %APPDATA%/FrappeBooks/
# Location (Linux): ~/.config/FrappeBooks/

# Each company is a separate .db file
# You can back up by simply copying the file
# You can move between machines by copying the file
# Import/Export patterns
# Books supports CSV import for:
#   - Customers and Suppliers (Party)
#   - Items
#   - Opening balances via Journal Entry
#
# Export: all reports can be exported to PDF or CSV
# Print: invoices render to PDF using built-in templates
# The tech stack under the hood
# Electron — desktop runtime (Chromium + Node.js)
# Vue 3 — frontend framework
# SQLite — local database (via better-sqlite3)
# Frappe UI — component library (shared design language)
#
# No server, no network dependency, no login
# The app works fully offline from first launch

Things to know upfront.

Single user, single company

Books is designed for one person managing one company's books. There's no multi-user access, no role permissions, and no concurrent editing. If two people need to enter data, you need a different tool.

Not a Frappe Framework app

You can't install it with bench get-app. It doesn't run on a Frappe site. It doesn't have doctypes, hooks, or a REST API. If you're looking for web-based accounting on the Frappe stack, that's ERPNext's accounting module.

No inventory management

Books tracks money, not stock. You can create items and invoice them, but there's no warehouse, no stock ledger, no reorder points. If you sell physical goods and need to track inventory, this isn't the tool.

Tax support is limited

GST (India) and generic VAT are supported. Country-specific tax reporting (SARS for South Africa, HMRC for UK, IRS for US) is not built in. You get the numbers; formatting them for your tax authority is on you.

Backups are your problem

The data lives in a local SQLite file. There's no cloud sync, no automatic backup. If your hard drive dies and you haven't copied the .db file somewhere safe, the data is gone. Set up your own backup routine.

Use it for, skip it for.

Use Frappe Books when

  • You're a freelancer, sole proprietor, or micro-business that needs proper double-entry accounting.
  • You want free, offline accounting software — no SaaS subscription, no internet required.
  • Your needs are invoices, payments, and financial reports. That's it.
  • You're comfortable with a desktop app and managing your own backups.
  • You're in the Frappe ecosystem and want to start small before potentially migrating to ERPNext later.

Where this leaf links.

Go deeper.