Akaunting

Open-source online accounting for small businesses and freelancers — invoices, expenses, and reporting without monthly fees or vendor lock-in.

9.9Kstars
2.9Kforks
Custom / Unknown
PHP

Akaunting is a web-based accounting platform built with Laravel and VueJS, designed specifically for small businesses and freelancers who need professional financial tooling without expensive subscriptions. It handles the full accounting cycle — from invoicing clients and recording expenses to reconciling bank accounts and generating financial reports — all from a browser, with no per-seat costs for the core system.

The platform is architected around a modular App Store model where functionality can be extended via community and official modules. The core handles multi-company management, multi-currency support with live exchange rates, recurring transactions, tax configuration, and client portals. A RESTful API enables integration with third-party tools, while Crowdin-based translations make it accessible in over 50 languages.

Akaunting can be self-hosted on any standard PHP hosting stack (Apache, Nginx, or IIS) with PHP 8.1+ and MySQL, MariaDB, PostgreSQL, or SQLite. It supports progressive web app capabilities and has companion mobile app links. The project has over 9,800 GitHub stars, 100+ releases since 2017, and a healthy release cadence averaging nearly one release per month.

What You Get

  • Multi-Company Management - Run bookkeeping for multiple separate business entities from one installation, with per-company user roles and permission assignments.
  • Client Portal - Provide clients with a branded self-service portal where they can view invoices, check payment status, and pay outstanding balances in bulk.
  • Recurring Transactions - Schedule automatic invoices, bills, revenue entries, and payment records for subscription-based services or regular vendor payments.
  • Multi-Currency Invoicing - Create documents in any currency with automatic base currency conversion using configurable live exchange rates.
  • Financial Reporting Suite - Generate profit and loss statements, balance sheets, cash flow summaries, expense reports, and tax summaries with visual charts.
  • App Store Extensions - Install official and community-built modules from the integrated App Store to add payroll, CRM, time tracking, or payment gateway integrations.
  • Bank & Cash Account Tracking - Define unlimited bank and petty cash accounts with opening balances and reconcile transactions against imported bank data.
  • Tax Rate Configuration - Define named tax rates (VAT, GST, sales tax) and apply them at the line-item level on invoices and bills for accurate compliance reporting.

Common Use Cases

  • Freelance invoice management - A consultant invoices clients in USD and EUR from a self-hosted Akaunting instance, automating recurring retainer invoices and tracking payment status from the dashboard.
  • Small agency bookkeeping - A five-person digital agency uses Akaunting to record vendor bills, categorize expenses, and export monthly profit and loss reports for their accountant.
  • Multi-client accounting practice - A sole-practitioner accountant manages bookkeeping for eight small business clients using Akaunting’s multi-company feature, keeping each entity’s data isolated under one installation.
  • E-commerce expense tracking - An online retailer connects Akaunting’s API to their order management system to automatically record cost-of-goods-sold entries and generate quarterly cash flow statements.
  • Non-profit financial transparency - A small non-profit uses the client portal to share annual financial summaries with board members and donors without granting full system access.

Under The Hood

Architecture Akaunting is built as a modular Laravel monolith with strong domain separation enforced through abstract base classes that define contracts for models, jobs, listeners, reports, and bulk actions across the entire application. The module system uses a custom Laravel package that isolates each extension into its own namespace with dedicated routes, views, and service providers, allowing the core to be extended without modification. An event-driven design decouples domain events — such as invoice creation or payment recording — from side effects like notifications, audit logs, and UI updates, with listeners registered per module. The result is an architecture where the core accounting engine, multi-company isolation, and extension surface are cleanly separated concerns that can be reasoned about independently.

Tech Stack The backend runs on Laravel 10 with PHP 8.1+, extended by a custom module package and a settings management library. The frontend is built with Vue 2.7, Element UI, and FullCalendar, bundled via Laravel Mix with Webpack 5 and styled using Tailwind CSS. Data is stored in MySQL, MariaDB, PostgreSQL, or SQLite via Laravel Eloquent, with Doctrine DBAL powering advanced schema operations. Sentry handles error tracking in production, and Omnipay provides a unified interface for multiple payment gateways. The application ships with service worker assets and a web manifest for Progressive Web App support, and CI runs via GitHub Actions with a dedicated test workflow.

Code Quality Akaunting has comprehensive test coverage spanning unit tests, feature tests covering the full HTTP stack for banking, sales, purchases, and settings workflows, and dedicated performance scenarios. The abstract base class pattern ensures consistent method signatures and behaviors across all domain entities, and Laravel’s form request classes centralize validation logic. Error handling is explicit in critical financial paths with typed exceptions. PHP type hints are applied inconsistently in some core areas, and no dedicated static analysis tool (PHPStan/Psalm) is configured, but the Laravel convention discipline and test suite breadth maintain a high quality baseline. Naming conventions are consistent and descriptive throughout the codebase.

What Makes It Unique Akaunting’s most distinctive technical characteristic is its integrated App Store marketplace built into the product itself, allowing operators to browse, install, and update first- and third-party modules directly from the admin panel — an approach unusual for self-hosted accounting software. The multi-company data isolation is embedded at the Eloquent model level rather than handled at the middleware layer, meaning every query is automatically scoped to the active company without requiring developers to manually filter results. The Business Source License with a four-year conversion window to GPLv3 is also an unusual choice that trades short-term open-source purity for commercial sustainability while guaranteeing eventual full freedom.

Self-Hosting

Akaunting is released under the Business Source License (BSL) 1.1, specifically the variant published by MariaDB Corporation. In practical terms this means the source code is fully readable and modifiable, but free production use is limited to installations with no more than two users, one company, and one thousand invoices. You cannot rebrand the application or offer it as a commercial accounting service to third parties. Four years after each version’s release date, that version converts to GPLv3, which carries standard copyleft obligations — meaning modifications to GPLv3-licensed versions that you distribute must also be released under GPLv3. For most small self-hosters the BSL limits are not a practical constraint, but organizations needing more capacity or commercial use must purchase a license from Akaunting, Inc.

Operationally, self-hosting Akaunting requires a PHP 8.1+ web server (Apache, Nginx, or IIS) with approximately a dozen PHP extensions enabled, a compatible database server (MySQL, MariaDB, PostgreSQL, or SQLite), Composer for dependency management, and Node.js with npm for frontend asset compilation. The installation process is guided by a web wizard, but ongoing responsibility for uptime, database backups, SSL certificate renewal, PHP version upgrades, and security patches falls entirely on the operator. Module updates are managed through the built-in App Store UI, but core version upgrades are manual Composer operations. Teams without dedicated system administration experience should account for this operational overhead.

The hosted Akaunting Cloud offering eliminates all of the above infrastructure concerns: automated backups, managed upgrades, SSL, and high availability are handled by Akaunting, Inc. The cloud tier also includes premium support with defined response times and access to paid App Store modules that are not bundled in the self-hosted core. Self-hosters gain full data portability and no per-seat pricing beyond the BSL user limits, but forfeit managed operations, the support SLA, and any modules that require a cloud-side license verification. Organizations that need guaranteed uptime, compliance-grade audit logging, or hands-off maintenance are generally better served by the hosted option.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack

No spam. Unsubscribe anytime.

Join 750+ subscribers
No spam. Unsubscribe anytime.

Search