Open source, double-entry bookkeeping for modern teams.
dubbl is a full-featured, open-source alternative to Xero and QuickBooks. It is API-first, developer-friendly, and built for teams that want full control over their financial data.
- Double-entry bookkeeping - Chart of accounts, journal entries, bank reconciliation
- Invoicing and quotes - PDF generation, payment tracking, recurring invoices, credit notes
- Bills and purchase orders - Accounts payable, purchase requisitions, landed costs
- Banking - CSV import, bank reconciliation, scheduled transactions
- Expense management - Claims, receipt OCR, approval workflows, recurring expenses
- Inventory - Warehouses, stock takes, assembly/BOM, serial and lot tracking, valuation
- Payroll - Employees, contractors, pay runs, tax forms, timesheets, leave management
- Projects - Time tracking, milestones, tasks, billable hours
- CRM - Pipeline management, deals, analytics
- Fixed assets - Depreciation schedules, disposal tracking
- Budgets - Budget creation, variance analysis, budget vs actual
- Tax - Multi-jurisdiction tax rates, VAT returns, BAS, Schedule C, sales tax
- 25+ financial reports - P&L, balance sheet, cash flow, aged receivables, and more
- Multi-currency - Exchange rates, currency conversion
- Documents - File management and storage
- Audit trail - Full audit log for compliance
- API-first - Complete REST API with API key management
- MCP Server - Connect any AI coding agent via Model Context Protocol (OAuth 2.1)
- Node.js 20+
- PostgreSQL 15+ (or use Docker)
- S3-compatible storage (optional, for file uploads)
# Clone the repository
git clone https://github.com/dubbl-org/dubbl.git
cd dubbl
# Install dependencies
pnpm install
# Set up environment variables
cp .env.example .envEdit .env with your configuration:
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/dubbl
# Auth
AUTH_SECRET=your-random-secret-here
AUTH_URL=http://localhost:3000
# Stripe (optional)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Trigger.dev background jobs (required for production scheduled tasks/retries)
TRIGGER_PROJECT_REF=proj_...
TRIGGER_SECRET_KEY=tr_dev_...
# S3 Storage (optional)
S3_BUCKET=dubbl-uploads
S3_REGION=us-east-1
S3_ACCESS_KEY_ID=...
S3_SECRET_ACCESS_KEY=...
S3_ENDPOINT=https://s3.amazonaws.com# Push schema to database
pnpm db:push
# Seed with demo data (optional)
pnpm db:seedpnpm devOpen http://localhost:3000 in your browser.
If you ran the seed script, log in with demo@dubbl.dev / password123.
Dubbl uses Trigger.dev for scheduled maintenance and delayed retries. For production, set TRIGGER_PROJECT_REF and TRIGGER_SECRET_KEY, then deploy the tasks:
pnpm trigger:deployWithout Trigger.dev, scheduled backups, bookkeeping maintenance, invoicing maintenance, trash purge, report schedules, notification digests, Stripe retries, and webhook delivery retries will not run automatically. Webhook retries are scheduled when a delivery fails, so keep TRIGGER_SECRET_KEY configured in the app runtime before accepting webhook traffic.
- Framework - Next.js (App Router)
- Database - PostgreSQL with Drizzle ORM
- Auth - NextAuth.js
- UI - Tailwind CSS + shadcn/ui
- Docs - Fumadocs
See the Self-Hosting Guide for instructions on deploying dubbl with Docker.
dubbl includes a built-in Model Context Protocol server that lets any MCP-compatible AI agent interact with your accounting data. The MCP server uses Streamable HTTP transport with OAuth 2.1 authentication and is available on all plans.
Works with Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, and any other MCP-enabled agent. Just point your client at:
https://dubbl.dev/api/mcp
See the MCP documentation for setup instructions for each client.
Full documentation is available at dubbl.dev/docs or by running the app locally and visiting /docs.
We welcome contributions of all kinds: bug fixes, features, documentation, and tax regulation updates.
- Open an issue to report bugs or request features
- Submit a pull request with your changes
- Help keep tax information accurate by reporting outdated rules
- See the Contributing Guide for details
Licensed under the Apache License 2.0.