Invoice INV-048 paid $4,200
New account created Accounts Receivable
Journal entry JE-102 posted
Bank reconciliation completed Dec 2025
Revenue recognized $12,500
Expense recorded Office Supplies $240
Trial balance verified Balanced
API call POST /v1/transactions
Invoice INV-048 paid $4,200
New account created Accounts Receivable
Journal entry JE-102 posted
Bank reconciliation completed Dec 2025
Revenue recognized $12,500
Expense recorded Office Supplies $240
Trial balance verified Balanced
API call POST /v1/transactions

Business management for modern teams

Accounting, projects, inventory, payroll, and CRM in one platform. Self-host, extend via API and MCP, and own your data. Forever free.

Apache-2.0Licensed
·Self-hostReady
·MCP-readyAI-native
How it works

Three steps to get started

From connection to insight in minutes, not months.

Integrations2 of 3 imported

QuickBooks CSV

Accounts imported

Active

Bank Statement

CSV imported

Active

Xero Export

Ready to import

Pending
+ Import another CSV
1

Connect

Import your data from QuickBooks, Xero, FreshBooks, Wave, or any CSV file.

Categorize Transaction

AWS Cloud Services

Mar 1, 2026

-$2,450.00
Software & Tools
6200 · Software
1000 · Cash
Balanced · $2,450.00
2

Categorize

Organize your data across accounting, inventory, projects, and more.

OverviewLast 6 months
Revenue

$84.2k

+12.4%
Expenses

$41.8k

+3.1%
Margin

50.3%

+4.2%
Revenue
Expenses
Sep
Oct
Nov
Dec
Jan
Feb
3

Insights

See your entire business clearly with real-time dashboards and reports.

Features

Powerful features for modern teams

From double-entry bookkeeping and inventory to project management and AI integrations.

General Ledger — March 2026
DateAccountDebitCredit
Mar 01Cash (1000)12,450.00
Mar 01Revenue (4000)12,450.00
Mar 02Office Supplies (5200)3,200.00
Mar 02Accounts Payable (2000)3,200.00
Total15,650.0015,650.00
Balanced — Debits equal Credits

Double-Entry Ledger

Every transaction balances automatically. Debits always equal credits, enforced at the database level so your books stay accurate.

Financial Reports — FY 2026

Revenue

$84.2k

+12.4%

Expenses

$41.8k

+3.1%

Profit

$42.3k

+21.8%

JanAprJulOct
Revenue
Expenses

Financial Reports

Balance sheets, P&L, and cash flow statements generated instantly. Always up-to-date, always audit-ready.

Bank Reconciliation — Checking ****4821
Bank Statement
Shopify Deposit
TXN-4821+$4,250.00
AWS Invoice
TXN-4822-$1,840.00
Wire Transfer
TXN-4823+$8,600.00
Stripe Payout
TXN-4824+$2,190.00
Journal Entries
Sales Revenue
JE-1042$4,250.00
Cloud Infrastructure
JE-1043$1,840.00
No match found
JE-????
Payment Processing
JE-1045$2,190.00
3 matched 1 pending
75% reconciled

Bank Reconciliation

Automatically match imported bank transactions to your journal entries. Spot discrepancies before they become problems.

Audit Trail — Activity Log
AllEntriesInvoicesAccounts
AW
Alice WangCreated journal entry
2 min ago
JE-1042
BM
Bob MartinezApproved invoice
18 min ago
INV-389
CS
Carol SinghUpdated account
1 hour ago
4100 — Revenue
SYS
SystemDeleted draft entry
3 hours ago
JE-1038
View full history

Audit Trail

Every change is logged with who, what, and when. Full compliance history at your fingertips for any audit.

Multi-Currency

Transact in any currency with automatic rate conversion and realized gain/loss tracking.

API-First

Every feature accessible via REST API. Built-in Stripe integration for payment syncing. Build custom integrations in minutes.

MCP Protocol

Connect AI assistants directly to your business data. 15 built-in tool modules let AI agents manage contacts, invoices, inventory, and more.

The Problem

You're managing your business across too many disconnected tools

Separate tools for accounting, project tracking, inventory, payroll, and CRM. Context switching kills productivity and data never lines up.

$142,500
#REF!
$—
MISMATCH
$156,800
#N/A
$178,300
#VALUE!
$—
$138,200
#DIV/0!
$161,400
#NULL!
$174,900
ERR:502
$—
#NAME?
$89,200
$—
$3,200
CONFLICT
#SPILL!
$45,100
NaN
$—
#REF!
$67,800
MISSING
$—
#ERROR!
$12,350
$—
$92,100
DUPLICATE
$—
#N/A
$55,670
$—
TIMEOUT
$78,400
#VALUE!
$—
$34,500
OVERWRITE
$—
#REF!
$—
$23,100
$67,200
#SPILL!
$—
$44,800
#REF!
$—
MISMATCH
$91,300
$—
$15,700
#NAME?
$—
$82,400
NaN
$—
#NULL!
#ERROR!
$—
$56,100
CONFLICT
$—
$73,200
#DIV/0!
$—
$—
$28,900
$—
#VALUE!
$48,600
MISSING
$—
ERR:502
$33,700
#REF!
TIMEOUT
$—
$61,500
$—
#N/A
DUPLICATE
$—
$77,400
$—
#SPILL!
$—
OVERWRITE
$19,800
$—
$41,200
#NULL!
$—
$88,300
#REF!
NaN
$—
#VALUE!
$—
MISSING
$52,900
$—
#NAME?
$—
$66,700
CONFLICT
#DIV/0!
$—
$71,800
#SPILL!
$—
$95,200
$—
#ERROR!
$—
$36,400
DUPLICATE
$—
TIMEOUT
$—
#REF!
$43,500
$84,600
$—
#N/A
$—
MISMATCH
$57,300
$—
#NULL!
$—
OVERWRITE
$—
#VALUE!
$—
$68,900
ERR:502
$—

Spreadsheet errors

Silently corrupting your data

Copy-paste mistakes, broken formulas, and missing references silently corrupt your data across dozens of tabs.

0%

contain errors

0hrs

wasted / month

0

errors found

Delayed bank data

Statements arrive days late. Reconciliation is always lagging behind reality.

ACH Transfer — Payroll

2 days ago

Synced

Wire — Vendor #4092

3 days ago

Failed

Direct Debit — Office Lease

5 days ago

Delayed

Card Payment — SaaS Sub

6 days ago

Synced

Missing records

Gaps in vendor data, lost invoices, and unknown line items make reporting unreliable.

Invoice
Vendor
Amount
Status
INV-1041
Acme Corp
$3,200
Complete
INV-1042
Missing
INV-1043
Globex Inc
$890
Complete
INV-1044
$1,475
Partial
The Solution

One unified platform for your entire business

dubbl brings accounting, invoicing, inventory, project management, payroll, and CRM into one place. AI-ready with built-in MCP support.

Unlimited Invoices

Create, send, and track invoices with no caps or usage limits.

CSV Import & Export

Import from QuickBooks, Xero, FreshBooks, Wave, or any CSV format. Live bank feeds coming soon.

15 MCP Tool Modules

Let AI agents manage your business data through the Model Context Protocol.

Invoice #2847 — $12,580 sentP&L report generated ✓Statement importedExpense claim approvedTax return ready ✓Invoice #2847 — $12,580 sentP&L report generated ✓Statement importedExpense claim approvedTax return ready ✓Invoice #2847 — $12,580 sentP&L report generated ✓Statement importedExpense claim approvedTax return ready ✓Invoice #2847 — $12,580 sentP&L report generated ✓Statement importedExpense claim approvedTax return ready ✓
CategorizedSentPaidFiledLoggedSyncedApprovedImportedAuto-taggedBookedInvoicedTrackedCategorizedSentPaidFiledLoggedSyncedApprovedImportedAuto-taggedBookedInvoicedTrackedCategorizedSentPaidFiledLoggedSyncedApprovedImportedAuto-taggedBookedInvoicedTrackedCategorizedSentPaidFiledLoggedSyncedApprovedImportedAuto-taggedBookedInvoicedTracked
QuickBooks CSV parsedChase CSV parsedBill from AWS - $3,240Receipt: $340 officeXero export loadedWave CSV importedBank statement parsedCSV import completeQuickBooks CSV parsedChase CSV parsedBill from AWS - $3,240Receipt: $340 officeXero export loadedWave CSV importedBank statement parsedCSV import completeQuickBooks CSV parsedChase CSV parsedBill from AWS - $3,240Receipt: $340 officeXero export loadedWave CSV importedBank statement parsedCSV import completeQuickBooks CSV parsedChase CSV parsedBill from AWS - $3,240Receipt: $340 officeXero export loadedWave CSV importedBank statement parsedCSV import complete
$45,000 payment received ✓Balance sheet updatedMulti-currency enabledPayroll processed ✓Cash flow forecast ready$45,000 payment received ✓Balance sheet updatedMulti-currency enabledPayroll processed ✓Cash flow forecast ready$45,000 payment received ✓Balance sheet updatedMulti-currency enabledPayroll processed ✓Cash flow forecast ready$45,000 payment received ✓Balance sheet updatedMulti-currency enabledPayroll processed ✓Cash flow forecast ready
ReconciledUpdatedMatchedSortedVerifiedClosedExportedSyncedTaggedArchivedSettledReviewedReconciledUpdatedMatchedSortedVerifiedClosedExportedSyncedTaggedArchivedSettledReviewedReconciledUpdatedMatchedSortedVerifiedClosedExportedSyncedTaggedArchivedSettledReviewedReconciledUpdatedMatchedSortedVerifiedClosedExportedSyncedTaggedArchivedSettledReviewed
Invoice to Acme CorpBill: $1,200 rentExpense: $89 SaaSCredit note issuedRecurring invoice setVendor payment sentClient deposit loggedJournal entry postedInvoice to Acme CorpBill: $1,200 rentExpense: $89 SaaSCredit note issuedRecurring invoice setVendor payment sentClient deposit loggedJournal entry postedInvoice to Acme CorpBill: $1,200 rentExpense: $89 SaaSCredit note issuedRecurring invoice setVendor payment sentClient deposit loggedJournal entry postedInvoice to Acme CorpBill: $1,200 rentExpense: $89 SaaSCredit note issuedRecurring invoice setVendor payment sentClient deposit loggedJournal entry posted
Year-end close complete ✓Auto-categorized $174,900GST auto-calculatedClient portal live ✓Global statement importsYear-end close complete ✓Auto-categorized $174,900GST auto-calculatedClient portal live ✓Global statement importsYear-end close complete ✓Auto-categorized $174,900GST auto-calculatedClient portal live ✓Global statement importsYear-end close complete ✓Auto-categorized $174,900GST auto-calculatedClient portal live ✓Global statement imports
BookedPaidSentFiledLoggedTaggedApprovedSyncedTrackedClosedImportedDoneBookedPaidSentFiledLoggedTaggedApprovedSyncedTrackedClosedImportedDoneBookedPaidSentFiledLoggedTaggedApprovedSyncedTrackedClosedImportedDoneBookedPaidSentFiledLoggedTaggedApprovedSyncedTrackedClosedImportedDone
Bank CSV reconciledStatement importedPayroll entry postedMulti-currency entryExpense categorizedCSV mappedBank CSV importedTransactions matchedBank CSV reconciledStatement importedPayroll entry postedMulti-currency entryExpense categorizedCSV mappedBank CSV importedTransactions matchedBank CSV reconciledStatement importedPayroll entry postedMulti-currency entryExpense categorizedCSV mappedBank CSV importedTransactions matchedBank CSV reconciledStatement importedPayroll entry postedMulti-currency entryExpense categorizedCSV mappedBank CSV importedTransactions matched
dubbl
Self-hostable
Full audit trail
CSV import from any source
API-first
Product

Your finances at a glance

A real-time dashboard for your finances, projects, inventory, and team - all in one place.

Revenue

$84,200

+12.5%

Expenses

$41,800

+3.2%

Net Profit

$42,400

+18.7%

Cash Balance

$48,250

+2.1%

Revenue Trend

6 months

Recent Transactions

Last 7 days
Mar 01Client Invoice #1024
+$12,500
Feb 28Office Rent — Q1
-$3,200
Feb 27Software Subscription
-$299
Feb 26Consulting Revenue
+$8,000
Feb 25Equipment Purchase
-$1,450

Account Breakdown

Assets 60%
Liabilities 17%
Equity 23%
Open Source

Fork it. Extend it. Own it.

dubbl is fully open source under the Apache 2.0 license. No vendor lock-in, no hidden fees, no surprises. Your data, your rules.

Fully Transparent

Every line of code is public. Audit the security, verify the logic, trust the system.

Zero Lock-In

Self-host on your own infrastructure. Export your data anytime, in any format.

Community-Driven

Public roadmap, open issues, and pull requests welcome. Built by and for its users.

terminal

$ git clone https://github.com/dubbl-org/dubbl.git

$ cd dubbl && docker compose up -d

 

✓ Container dubbl-db Started

✓ Container dubbl-app Started

 

dubbl running at http://localhost:3000

View RepositoryApache 2.0 License
Import & Integrate

Bring your data with you

Import from QuickBooks, Xero, FreshBooks, Wave, or any CSV. Live bank feeds coming soon.

Stripe

Payments

QuickBooks

CSV Import

Xero

CSV Import

FreshBooks

CSV Import

Wave

CSV Import

REST API

Custom

Stripe

Payments

QuickBooks

CSV Import

Xero

CSV Import

FreshBooks

CSV Import

Wave

CSV Import

REST API

Custom

CSV Import

Any Format

Bank Feeds

Coming Soon

Invoicing

Built-in

Inventory

Built-in

Projects

Built-in

Self-Host

Full Control

CSV Import

Any Format

Bank Feeds

Coming Soon

Invoicing

Built-in

Inventory

Built-in

Projects

Built-in

Self-Host

Full Control

Developer Experience

Built API-first

REST API, MCP protocol, and self-hosting. Extend and integrate with anything.

index.ts

// Fetch recent transactions

const entries = await dubbl.entries.list({

limit: 10,

status: "posted"

});

// Each entry is double-entry balanced

const total = entries.reduce(

(sum, e) => sum + e.amount, 0

);

self-host

$ docker compose up -d

✓ Container dubbl-db Started

✓ Container dubbl-app Started

dubbl running at localhost:3000

sdk

$ npm install @dubbl/sdk

import { Dubbl } from "@dubbl/sdk";

const client = new Dubbl();

TypeScript SDKREST APIMCP ProtocolWebhooksSelf-hostableApache 2.0
FAQs

Frequently asked questions

Can't find what you're looking for? Reach out on GitHub Discussions.

Start managing your business today

Self-host in minutes, extend via API and MCP, and own your data. Forever free.

Open source · Self-hostable · Free forever