Freelance Web Development: Invoicing Clients

If your new business goes like mine did you’re going to have a lot of time in the beginning. Once I got out of school I didn’t have one gig for over a year. Not one. I went to a couple of job interviews but with no experience and in my late 40s you can imagine how that went. So I built websites. And I built complicated ones. In a previous post I wrote about the literature website I built for K – 12 students. I learned an immense amount building that website. I also built a social media platform for Art. I had one person sign up. Did one for literature too, based on the same code. No sign ups. But it was great experience and I had to learn all kinds of new things to build those.

The other website I was constantly working on was my own: Sweet Thursday Web Development. Those early sites are embarrassing to look at now, but the best thing I did was program a billing/invoicing system from the ground up for my business. If you’re a designer, just find some system that works for you (sorry, I don’t know any), but if you’re a programmer just starting out, I’d highly recommend you build your own system. You’ll learn a ton and you’ll have a system that fits your needs.

No doubt you could find something out there already built, but if you’re going to be building sites for clients and troubleshooting sites for clients, programming something complicated like this will give you all kinds of good experience for the future. And you can use it for your business.

My invoicing system has an admin and client interface.


  • Lists all my clients
  • Keeps a list of potential clients
  • Lists every project I have worked on
  • Keeps track of all my daily work. I log daily work for any project I work on. This has saved my ass a number of times.
  • Keeps track of the time I spend on each project. I call this my timetracker. Regardless of whether I am working on an hourly basis or a bid project, I always track my time with the click of button. This helps especially with bids to be able to go back and see how many hours a particular type of project required.
  • Tracks my web hosting clients and automatically tells me when I need to bill them.
  • Tracks all expenses and all payments.
  • Has a robust search feature that I can use to search projects, daily work, clients, expenses, payments, etc.
  • It has a way to test newsletter emails
  • I keep tons and tons of stats: income by year and by month with the same for expenses and other stats that would only prove how anal I am at times
  • I even coded a full event calendar to track my appointments, etc. I no longer use this personally, but I did use it in another project for a client and I still keep this updated for the client.
  • The system emails invoices and payment receipts to the client.
  • Tracks car mileage for business purposes
  • A configuration area with all kinds of settings for my system.

Client Interface

  • Client can change their details
  • Client can retrieve their password
  • Sections to view each project and work on each project
  • Shows current balance, payments made, payments owed.
  • Client can print yearly payments for tax purposes
  • Client can search their own account.

I hope this sounds fun to you. It did not all happen at once. Through the course of my job if I needed something to make my job easier with regard to billing, I coded it. But everything I had to do to build this helped me in other projects and continues to help me to this day. I now use a version of this for my wife’s business, customized to meet her needs

You’ll learn to build all kinds of forms, to work with databases and general CSS, HTML and Javascript. You also want to make billing and invoicing easy. You shouldn’t have to spend hours and hours doing it at the end of the week or month. The best thing for me is that this system makes my billing and invoicing very simple so I can spend time building websites.



Leave a Reply

Your email address will not be published. Required fields are marked *