Bean counting… or how I manage my freelance business finances

When I first starting freelancing over a year ago, I quickly became dragged down with how much time it would take me to generate quotes/invoices and send them on to clients. Rather, than put up with that situation or pay for a solution I wrote my own.

  • Account screenshot 2
  • Invoice screenshot
  • Invoice screenshot
  • Accounts screenshot 2
Screenshots (top to bottom, left to right – names and figures very crudely blacked out)
Accounts page (incomings and outgoings), an example invoice, the projects page, accounts page showing subtotals and totals.

What it does

This system allows me to quickly add a new project and add tasks to that project e.g. A project would be a web design and tasks would be:

  • create Photoshop comp
  • revise design based on feedback
  • create HTML/CSS templates
  • test in browsers and fix CSS bugs

Each task has a price and these prices get added up to give a project total. Once added the system automatically creates an email friendly HTML invoice – which can be emailed to the client in seconds.

The system can profile all the projects stating how much has been made over a set period of time and even allowing me to segment and see how much individual clients have spent in total.

Clients can also login to the system and see all their projects, see all their quotes and invoices and add new users to the system so their colleagues can login too.


It was very little extra work for me, to also record information regarding outgoings and suppliers. They are essentially, very similar to projects and clients and by adding these to the system I can quickly add an expense to the system and my accounts page works out an overall profit/loss.

Checking out my accounts page, I can quickly see how much money is coming in and going out. When it comes to tax time, I simply copy the figures from this system into my UK tax return form. I can filter the accounts so it only shows data between set dates or over a given tax year.

The thought process

Whilst writing this little application, I took great interest in the philosophies of 37 signals, creators of Basecamp. I did my utmost to keep the project small and simple, offering as few features as possible – much less than similar systems like FreeAgent. After all, it is built to do but one job and that is to enable me to get on with designing and developing websites and have the financial aspect taken care of (to an extent).

I wrote the system to help me, but I’m hoping that it will help others too, which is why I’m on the lookout for Beta testers.

Speaking of beta testing

If you’re interested in helping me to test this system – to see if it will speed up your financial management please get in touch.

Technical details

The system is written in PHP5/MySQL5 and makes use of my own mini-framework – which I’ve yet to name. This framework has sped-up my production time so dramatically it’s incredible – it’s very similar to how bigger frameworks work but without all the extra features that my projects never need.

The framework basically makes use of CRUD (Create, Read, Update, Delete) class that relies on a (reasonably) strict database naming convention. Although, it forces me to think in a different way, it allows me to quickly add edit a database and not worry about editing the PHP code that manages it.

The future

This system has quickly evolved from sending out my invoices to managing my accounts but I think its most useful application may be as a client/customer area on my website where my clients can login and view all their information about me and their spending with me.

One response to “Bean counting… or how I manage my freelance business finances”