1,532 Days Without a Code Change. How a Pet Project That Hasn't Been Touched in Over Four Years Still Gets Daily Signups.
The other day I got a phone call coming home from vacation. The call was from a New York number that wasn’t in my contacts which usually I’d ignore but since my brother was in NY I figured maybe it was a friend of his and something had gone wrong so I answered it. On the other end was a very faint voice, she asked cautiously, “Hi…is this the owner of Invoice Journal?”. I hesitated, in the 4+ years of running Invoice Journal I’ve never received a phone call so a million thoughts rushed through my mind before stumbling to answer “Yes”. “Okay, Umm, do you know when the site will be back up? I’ve been using this for all of my invoices and I haven’t been able to get on in days.” She uttered. “I really need to get my invoices out so if the site isn’t coming back up could you please send me the invoices I have in the system?”.
Okay, Umm, do you know when the site will be back up? I’ve been using this for all of my invoices and I haven’t been able to get on in days.
Hmm, at first I was a little taken back since I hadn’t thought about nor touched Invoice Journal in over four years. I had forgotten about it, I had neglected it, I had basically written it off but this soft voice reminded me that all though I had written it off she had not and that she actually relied on it to run her business. I was amazed. Being caught off guard and not really sure why it was in fact down I told her I was currently in the car but as soon as I got home I would check on the site and bring it back up for her. The call ended and for the next two hours Invoice Journal kept popping in my head.
Invoice Journal started as a pet project to occupy my time as I commuted on the train into work. I had roughly two hours of free time on the train everyday to do something so I figured why not build something I can use and learn something new in the process. At that point in time I was doing a decent amount of freelance work and being the cheap bastard that I am didn’t want to pay a service like Freshbooks to actually handle my invoices for me so I decided to write my own. From start to finish it only took a couple of months working on the train only and during the process I decided to build it in a fashion that anyone could use it once it was done. I never thought that it could actually catch on or that people might actually use it for real invoices. Boy was I wrong.
Later that evening when I arrived home I checked the server and for some reason apache was not running. I was probably messing with it last week and forget to fix an error in the config but a few keystrokes and she was up and running again. To close the loop I shot the women a quick email and she replied thanking me. Tired from a long vacation I crashed.
The next day while in the shower I thought about Invoice Journal again. I wondered, how many people are actually using the system still? Do people still sign up for accounts? I set a reminder(thanks Siri) to check these stats later that night. A few sql queries later and to my absolute amazement this is was I saw.
Not only were people still using it consistently to invoice clients but 130+ people on average were still signing up each month with zero advertising, zero promotional emails, zero effort at all. WTF? I hadn’t touched this code in over 4 years(4 years, 2 months, and 12 days to be exact), how is it possible that people still signup and use this after all this time. It must have major bugs in it, it must be missing major features that other services offer…this was crazy! Now I’m wondering if I had continued to work on it, if I hadn’t neglected it could it actually be a useful successful, dare I say profitable project?
Now, as for why this is happening I can only guess that I’m offering something a lot of budget conscious people(freelancers) are looking for. I’m really curious to pull some additional metrics like who has the most invoices, what’s the longest running user, and what’s the total dollar amount processed but I’ll save that for another night.
Unfortunately, I don’t have time to fix it up. It’s been way too long and I’ve moved on from Perl(I’m a Python boy now). I’d almost be afraid to look at the code and fix things for fear of breaking it for the people that are actively using it. As far as I can tell I have two options; I can let it run as is or I can find someone eager to take it over….any takers? :-)