A few people have asked me to discuss my product launches, and I have been hesitant to do it in a public light. Not because they aren't good launches, but because most of my life was spent in industries I didn't like, but was just really good at. In this post, I will talk about my first side project launch and my first product launch for a paying job, both couldn't be more different in expectations or outcome.
AdTools - A Craigslist ad analytics platform
This was my first baby. When I was 18 years old (way back in 2006), before the crash of 2008's first rumblings in January of 2007, I had a fledgling VPS hosing service. I would advertise it on Craigslist in various cities and wait for emails to roll in.
I would get an few emails a day for more information and pricing, and probably one new customer per month. Not knowing how many people were viewing my ads, I decided to build a little web site for myself using ASP.Net Web Forms.
The tool was called, very creatively, AdTools, and I just hosted on my Windows Server 2003 box I had from CoreNetworks using sub domain off my personal domain so that I didn't have to find a new domain name (I was cheap). It was the simplest website I could create do what I needed and hosted in the easiest, cheapest way I could.
There was a login/register form on the index page. When you logged in or registered, you were dumped on a page called "Trackers" which had a form at the top to add a new tracker and a list of trackers underneath it.
To add a new tracker you only needed to give it a description ("VPS Houston 2006-11-12") and click the submit button. The page would redirect into the tracker details, and the HTML of the tracker would show up at the top of the page.
Way back then, you were still allowed to embed HTML in a craigslist ad, so you would just paste that HTML at the bottom of your ad, and presto, 15 minutes later people were viewing your ad and being tracked using cookies. The tool would allow me to see who had viewed previous trackers, their IP address, User Agent and their (pretty inaccurate) IP Geolocation.
After I started getting more requests for what tracker I was using, I started including a link from the tracker back to my sub domain in all of the new tracker HTML code. I was 18 and I didn't think such a simple tool would ever make any money, so I just wanted to get rid of all of these people distracting me from my VPS sales.
My VPS sales peaked in January of 2007 before taking a nose-dive from around 20 customers to 2 by March. And one of the 2 was on a pay me what you can plan. When I lost my last real paying customer in June, I realized that something was up. No one was replying to my ads for cheap VPSs and I had dropped the pricing from $30/mo to only $10 which would only cover the cost of my server if I filled it.
At the time, I didn't realize this was the first signs of the housing bubble popping. My full-time job was still going strong, so I stopped posting Craigslist ads and just did my day job. About a month later, I left that job for one closer to home. My father had just be diagnosed with throat cancer (DON'T SMOKE KIDS!), and if anything were to happen, I didn't want to be a 2-3 hour commute from him. So I took a local job at a school district working in the IT department. I learned a lot more about infrastructure and managing servers than I did as a developer, so that was beneficial, but the politics of the job got to me, and eventually I quit to consult full time.
I started posting ads in Craigslist again for web development work, and started including my trackers on each of those posts as well. I got enough work to keep paying the bills, but I knew I needed steady work and started searching for my whale of a client.
Skip forward about three years or so, and I am working for my whale that ended up hiring me full time. I was just about to decommission my server at CoreNetworks as I didn't do much consulting, my personal site was now on a WordPress blog and I hadn't used my ad trackers in a few years.
First I pop open the database so I can pull the email addresses of everyone using the service to let them know I would be shutting it down, and that is when I saw I had over a thousand users half of which were active with more than 10,000 trackers having been created in the last 6 months and over 150,000 ad views having happened in only the last month.
I realize a thousand users isn't much, but when MY ads had only been in the Houston, Dallas and Austin areas, and they spread from my little VPS and Web Development ads (each only receiving twenty or so viewers), it felt like magic. By this time in my career, I had created many websites that received hundreds of thousands of page-views a day and had tens of thousands of dollars in recurring revenue, but none of them were as simple to build or as featureless as this, and none of them got to all of those users without extensive marketing campaigns (either grass roots in forums or paid ads).
This tool was a success. I reached out to my most active of users asking them what features they wish it had, if they were willing to upgrade to a premium plan and how much they would be willing to pay, and I hadn't received a response. It wouldn't have mattered anyway, I would have had to rebuild it from scratch and at the time I didn't have well time to build something the right way to be proud enough to monetize it, so I let it keep going for a couple more years costing me $56.35/mo until Craigslist banned all HTML. When I shut it down in late-2011, the service had just under 2000 users and almost 100,000 trackers since its conception.
It was a sad day when I shut it down, but it lived out its usefulness, and besides, I had bigger things I was working on.
Linklicious - The first commercial back link pinging service
This was my first big product I conceptualized, developed, launched and successfully monetized. It was also the most copied product that I have ever made. It was so successful, the company I worked fro stopped taking on client work and focused completely on making new products. My job had become 4 blocks of 20% time and 1 block of actual maintenance and support. It was EXCITING.
I don't want to get ahead of myself, so I will take you on a magical journey back to November of 2010 (One year prior to me shutting down AdTools). My company had been going through a restructuring phase since May when we lost our largest client. During this time, we had to let go a project manager, two developers and our Michael.
The team was down to myself, Mary Rolandelli and the owner. We had a few clients left, and we were working to maintain their needs while trying to drum up new business. One of our joint-ventures with a Brazilian Jiu Jitsu school (a mobile video training app) was kind of floundering, and we needed to get more traffic. The owner and I took a week off to figure out how to get non-paid traffic. My idea had been through social media and reaching out to people, but the owners idea was much better: Search Engine Optimization.
I know, not that original of an idea, even for 2010, but just wait.
This wasn't the old school method of "write good content and use H-tags and bold." This was off-page SEO. Build backlinks by any means necessary. We found a few services out there that automated the backlink building process for a fee of course, and we paid it.
It was helping, not much, but a little bit. We spread our account out over all of our clients, and they all started ticking up in the rankings. And the most important client of all (ourselves) saw marked improvement in the JV with the BJJ school. I think it was a 20-25% increase in recurring revenue, but I might be off a little bit as the JV wasn't my focus at the time.
We had our backlinks being built for us, but we found out that Google wasn't finding well over half of them. So tasked with figuring it out, I went to work on a proof of concept based on my blog's use of Ping-O-Matic, which will let google know to crawl your blog post after you publish it.
I launched a new sub domain, and added a word press blog to it. I then added a redirection plugin that if you visited a post, it would redirect you to the URL of your choice. I set up 100 posts pointing to 100 other pages on domains either I or my boss owned. I then bulk published them and an hour later opened up my server logs. I saw that within seconds of publishing some of the links were already getting crawled. The last of the 100 links was crawled in less than 30 minutes. I then took the next day or two compiling all of the logs from the other sites that were crawled, and I found that they two were crawled within a few minutes of the original page being crawled.
I built the first version of lts.me, which just stood for Long to Short. It was billed as a link shortening service, but instead of building one short link at a time, it could do around 1,000 per second. I then wrote a daemon to submit each link to Ping-O-Matic, and we started submitting out link reports through lts.me.
Once Google started finding more of our links, we were actually able to lower our account at the link building service saving us a few hundred dollars a month, allowing that small uptick in revenue from our JV to pay for the SEO practices.
I added an account system to lts.me and a couple other features like how many links per hour you want to ping, to slow the crawls and not get your site black listed by Google, then we released it for free to the link building service's support forum.
This application was running on a dual core Intel work station under my desk on Windows 2008 and SQL Server Standard. Within 2 hours it was over heating, so I popped the side panel of and put a box fan in front of it exhausting from it. This kept it going for about 8 more hours and the PC shutoff, and our office was getting dozens of phone calls, all of which were forwarding to my Boss's cell phone. Since I lived less than a quarter mile from the office, I went in and started profiling the app to fix the issues. In the 10-12 hours since launch we had over a thousand users and two million links fed into the system. So I implemented link limits of only 1,000 per user, which just exploded the user accounts and didn't slow down the amount of links coming in or what really was killing the service was the number of links going out and google bots coming in.
We bought a GIANT VPS at some unknown VM hosting service recommended on some forum somewhere I found and lost over the last 6 years, with 8 vCPUs, 16GB of RAM, a 500GB RAID-10 hard drive and a 1Gbps un-metered connection. This allowed us to stem the instability for the next few days while I fixed my shitty code (splitting the responsibilities of the application into 2 services, the short-linking service (LTS.me) and the account management system(Linklicious.me - later .co)) but by the end of the weekend, we needed a bigger system. We went with Softlayer after only a few hours of research, 3 servers and a NAS:
- Database - Dual Quad Core Xeons, 64GB of RAM, 500GB 10k spinning drive
- Web - Quad Core Xeon, 12GB of RAM, 500GB 10k spinning drive
- Utility - Same as web
It was overkill for my optimized version of LTS.me, but we knew we would be growing into it within the coming months. I spent the next 2 months working with Mary to design and build out a use-able front end. No more just plain HTML, we went professional. We added payments and paid accounts, and by March of 2011 we were making $40k/mo recurring.
This was the final setup for the next couple of years actually. The only thing that changed was the NAS and RAM amounts. We did eventually, in 2013, switch all of our products over to Microsoft Azure. Well all except for one which we needed the thousands of inbound IP addresses provided by our host.
I have since moved on from this company, but I stand by all of the work I put in to each of the products we launched, including a number of my ideas that didn't get any traction, but were still used internally to save money.
- Put your shitty code on the web.
- Tell people about your shitty code.
- When people ask you questions about your shitty code, its probably smart to answer them, they might have money.
- Never underestimate the need for single purpose easy to use utilities.
If you have shitty code you would like to discuss or get feedback on, you can always reach out to me via email (firstname.lastname@example.org).