There are a diverse range of free software solutions for accounting.
Personally, I have been tracking my personal and business accounts using a double-entry accounting system since I started doing freelance work about the same time I started university. Once you become familiar with double-entry accounting (which doesn't require much more than basic arithmetic skills and remembering the distinction between a debit and a credit) it is unlikely you would ever want to go back to a spreadsheet.
Accounting software promoted for personal/home users often provides a very basic ledger where you can distinguish how much cash goes to rent, how much to food and how much to the tax man. Software promoted for business goes beyond the core ledger functionality and provides helpful ways to keep track of which bills you already paid, which are due imminently and which customers haven't paid you. Even for a one-man-band, freelancer or contractor, using a solution like this is hugely more productive than trying to track bills in a spreadsheet.
Changing accounting software can be a time consuming process and require all the users to learn a lot of new things. Therefore, it is generally recommended to start with something a little more powerful than what you need in the hope that you will be able to stick with it for a long time. With proprietary software this can be difficult because the more advanced solutions cost more money than you might be willing to pay right now. With free software, there is no such limitation and you can start with an enterprise-grade solution from day one and just turn off or ignore the features you don't need yet.
If you are working as an IT consultant or freelancer and advising other businesses then it is also worthwhile to choose a solution for yourself that you can potentially recommend to your clients and customize for them.
Here is a quick comparison of some of the free software accounting solutions that are packaged on popular Linux distributions like Debian, Ubuntu and Fedora:
Product | Postbooks | Tryton | GnuCash | LedgerSMB | Beancount (see ) | Ledger(-cli) | hledger | Firefly III | HomeBank | Skrooge | KMyMoney | BG Financas | Grisbi | Invoice Ninja |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GUI | Y | Y | Y | N | ? | ? | ? | ? | Y | Y | Y | Y | Y | N |
Web UI | Y | Y | N | Y | ? | ? | Y | Y | N | N | N | N | N | Y |
Sandstorm UI | N | N | N | N | N | N | Y | Y | N | N | N | N | N | N |
Multi-user | Y | Y | N | Y | ? | ? | ? | ? | N | N | N | N | Y | Y |
File storage | N | Y | Y | N | ? | ? | ? | ? | Y | Y | Y | N | N | |
SQL storage | Y - PostgreSQL | Y - PostgreSQL | Y | Y | ? | ? | ? | ? | N | N | Y | Y | Y | Y - MySQL |
Multi-currency | Y | Y | Y | Y | ? | ? | ? | ? | N | Y | Y | Y | ||
A/R | Y | Y | Y | Y | ? | ? | ? | ? | N | Y | Y | Y | Y | |
A/P | Y | Y | Y | Y | ? | ? | ? | ? | N | Y | Y | Y | ||
VAT/GST | Y | Y | Y | Y | ? | ? | ? | ? | N | N | Y | Y | ||
Inventory | Y | Y | N | Y | ? | ? | ? | ? | N | N | N | |||
Linux | Y | Y | Y | Y | ? | ? | ? | ? | Y | Y | Y | Y | Y | Y |
Windows | Y | Y | ? | ? | ? | ? | ||||||||
Mac OS | Y | Y | ? | ? | ? | ? | ||||||||
Technology | C++, JavaScript, Node | Python | C | Perl | ? | ? | ? | ? | C | Java | PHP, Laravel | |||
License | CPAL | GPL3 | GPL2 | GPL2 | GPL2 | BSD | GPL3 | GPL3 | Attribution Assurance (BSD) |
The table doesn't consider Odoo (formerly OpenERP) because the packages were considered buggy and are not maintained any more, it is replaced by Tryton. Compiere and Adempiere are other well known solutions but they haven't been packaged at all.
While the above list gives a basic summary of features, it is necessary to look more closely at how they are implemented.
For example, if you need to report on VAT or GST, there are two methods of reporting: cash or accrual. Some products only support accruals because that is easier to implement. Even in commercial products that support cash-based VAT reporting, the reports are not always accurate (I've seen that problem with the proprietary Quickbooks software) and a tax auditor will be quick to spot such errors.
The only real way to get to know one of these products is to test it for a couple of hours. Postbooks, for example, provides the Demo database so you can test it with dummy data without making any real commitment.
If you need to support users on multiple platforms or remote users such as an accountant or book-keeper, it is tempting to choose a solution with a web interface. The solutions with desktop interfaces can be provisioned to remote users using a terminal-server setup.
The full GUI solutions tend to offer a richer user interface and reporting experience. It can frequently be useful to have multiple windows or reports open at the same time, doing this with browser tabs can be painful.
There are many good reasons to use database storage and my personal preference is for PostgreSQL.
Using a database allows you to run a variety of third-party reporting tools and write your own scripts for data import and migration.
When dealing with business software, it is important to look at both the community and the commercial support offerings that are available.
Some communities have events, such as xTupleCon for Postbooks or a presence at other major events like FOSDEM.
My personal choice at the moment is Postbooks from xTuple. This is because of a range of factors, including the availability of both web and desktop clients, true multi-user support, the multi-currency support and the PostgreSQL back-end.