This is a duplicate of the same post at NeoInvoice.com, since that site will be gone soon.
Good news for those of you who would like a large application to tear apart! The Flippa Auction has ended without any bids, and I will be open sourcing NeoInvoice in the next few days. This would theoretically be bad news for our active users, but honestly, NeoInvoice doesn’t have any.
I started NeoInvoice back in late 2009 or early 2010 while needing some invoicing / time tracking to keep track of what I was doing for my clients. The smart thing to do would have been to search for some online software which does exactly what I need. Goodness knows that these apps do exist, here is a small list of this very crowded space:
- http://www.freshbooks.com
- http://www.blinksale.com
- http://www.invoicemachine.com
- http://www.lessaccounting.com
- http://www.billingorchard.com
- http://www.getcashboard.com
- http://www.billmyclients.com
- http://www.invoicesmadeeasy.com
- http://www.invoiceplace.com/invoice
- http://www.invotrak.com
- http://www.simplybill.com
- http://www.time59.com
- http://www.getharvest.com
- http://www.getballpark.com
- http://www.invoice2go.com
- http://www.bill4time.com
- http://www.invoicebus.com
But, as you can probably tell, I never did look for this sort of software. I instead did the crazy thing and built software from scratch which did everything I needed it to; time tracking, invoicing, issue tracking, email PDF invoices, you name it! I also completely failed to market the project. Like, I did the worst job anyone could ever do, even for a programmer.
Don’t get me wrong. I don’t regret having built this application. For the longest time I knew I had a lot of PHP development skill, but unfortunately I never had any projects worth mentioning. After building this project, it went straight to the top of my Resume. And I credit this to a lot of things, namely my career at Quicken Loans, as well as my entry into Y Combinator. Not to mention all of the skill I learned while building the project.
NeoInvoice is built using CodeIgniter 1.7.2, as well as an open source AJAX framework named MochaUI, which is based on MooTools. Without having built NeoInvoice, I never would have realized how much I dislike both of these technologies. NeoInvoice also makes use of some PHP 5.3 features, a tweaked lighttpd server, MySQL, and Memcache. I was able to learn a lot about these technologies thanks to NeoInvoice.
I also prematurely optimized the website by pointing a hundred web browsers to the main AJAX page and having them all reload the site every 5 seconds for an hour, followed by tweaking the code and caching over and over until it held up. This results in 7 PHP script executions per request, which is about 140 per second. The site was able to hold up to the abuse, even on the cheapest shared hosting I could find, which means the site should be able to handle perhaps a thousand concurrent normal users.
At the time of writing this, the repo is not yet public. In a few days, after I’ve made sure no user data is in the repo, recorded a video showing all of the features of the website, and killed the live site, it will be available. The URL will end up being https://github.com/tlhunter/neoinvoice. You can bookmark that URL or keep an eye on my GitHub user account, tlhunter.
The site has around 11,000 LOC written for it (so none of the framework code is counted in that) including PHP, JavaScript, MySQL, CSS.