I built my business blind. Not "Ray Charles" blind, but "pilot flying in fog" blind. Except I didn't have any instruments.
I incorporated right out of university. The business was Debuggex Inc., and the first product was a regex debugger. This was an ultra-niche (I didn't realize just how niche at the time) tool to help you understand regexes. A regex is like ctrl+F on steroids - it lets you find not just specific pieces of text, but complex patterns.
Suppose you wanted to find all the dates in a document. You might want to match any digits that look like YYYY-MM-DD
. To solve this, you can use a regex like this: \d{4}-\d{2}-\d{2}
. A few squigglies, but overall, not terrible.
Now, let's say you wanted to match an email address. It's slightly more compli...
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
WTF is this s#!t? debuggex.com was supposed to answer that question, and it probably did the best job of any available tool by drawing a cool animated diagram to let you "step through" and see how the regex worked. This was my first experience building a "tool for insight", and I was hooked!
But it was a sucky business. I sold a single $4,000 license in the 6 months after launch, and had roughly $25/month in subscription revenue. People were using it, but they weren't willing to pay. Today, I'd estimate that the total market globally is maybe a couple million bucks a year. In the decade since I launched it, I've only ever personally used it twice. So the need just wasn't that great.
Fortunately, a ray of light had pierced the fog! Roughly 60-70% of the nastiest regexes saved on Debuggex were used for parsing HTML. For the less technical readers, this is like using a flamethrower to heat your house - vaguely in the direction of a good solution, but definitely not the way to do it! Our users were trying to extract data from websites that they were scraping.
So we (I had brought on a cofounder by now) decided to build a tool to help people scrape the web. It took exactly one year (to the day) to build the first version of parsehub.com, but on launch day, we got our first subscription: $79/month!! Wow! We had already beaten Debuggex's MRR and it was just the first day. Oh, and we somehow got up to 3 cofounders before the end of this paragraph.
Over the next 2 years, things went really well. We were able to grow revenue enough to pay ourselves (small) salaries and even get an office. I was working on the product and talking directly to customers. I had worked on substantial web scraping projects in the past, so I had a great intuition for how to make the product powerful enough to handle all the wacky edge cases that one might encounter. ParseHub was our second "tool for insight" - it let you visually see how data was being extracted from a webpage, which made it a lot easier to deal with the extraction.
I personally conducted hundreds of hours of user tests to polish off as many rough edges as possible.
We built what I consider to be the most capable tool on the market. Yes, we had some minor kerfuffles. One time, a customer emailed both my cofounder and I asking for a quote. We were using gmail for customer support, and the customer sent two separate emails, not a cc. We both responded within 5 minutes of each other with different numbers! That one was embarrassing. But on the whole, revenue was growing quickly and things were going well.
Early in this phase, I was able to spend a lot of time adding delight everywhere I could. For example, I personally wrote our entire API documentation. We modeled it after Stripe's docs, which I considered the gold standard at the time. It took me about two months to get our docs to be delightful. They were tightly integrated with our website so that your API key was already filled in (if you were logged in) and in the language of your choice. You could simply copy-paste the snippet and have a working API call in 10 seconds. Multiple customers have given us feedback that the reason they chose ParseHub over a competitor was because of our extremely clear and easy-to-use docs.
But as we grew the number of customers, it was no longer possible for me to keep wearing all of the hats I had been wearing. Just resolving the customer support requests was eating up 5-6 hours of my time every day.
So we decided to hire some new people. Any entrepreneur that's been through this will remember the distinct loss of control felt at this stage. It's like all the furniture in your house moves a bit every time you blink. You still have a rough idea of what the house looks like, but none of the rooms are quite the way you remember them. And if you don't visit a room for a long time, watch out! The oven might be glued to the bedroom ceiling, with a brand new bathtub underneath it to catch any dripping grease.
I sucked at management and the quality of the business suffered. We rushed to hire engineers because we were having frequent downtime. This exacerbated the problem[1]. We brought on customer support and sales people to take load off me and everything went amaz... no, actually, our revenue started dropping. Not the growth rate, the revenue! We were below 0% growth! This was an extremely stressful time in my life. We had hired all these people on the assumption that we could maintain the growth rate, and now our sales were declining. It got so bad that one month I had to lend $13,000 to the company to make payroll. This was all the money I had remaining from what I'd saved up in my internships. I was so relieved when our highest-paid engineer, and a friend of mine, resigned. I was planning on letting him go the next day.
Over the next few months, I dug into every cranny of our business. I discovered one of our sales/support people was being rude to customers. We let him go. A bunch of other team members were worried about the dropping revenue and left. When our interns finished in the summer of 2016, we kept 2 of them full-time, and didn't replace the rest. Our team that was once 14 people was down to just 5, but we were back to revenue growth and profitability. During this tumultuous period, I had to make the incredibly painful decision to fire one of my cofounders. The events leading up to it were 100% unforced errors on my part. Angie, if you're reading this, I'm sorry. We both would have been much more successful today if I was less of an idiot.
Now that I had removed all the metaphorical ovens from the ceilings, I was able to reflect on what happened. Why was it so gosh darn hard to see what was going on in my own business? After all, it wasn't like I was lacking access. I had admin privileges to absolutely everything: tools, databases, bank accounts, hiring/firing decisions, code, and the people in the company. So why did it take me 4 months to figure out that everything was failing? And our company was tiny, how much more painful would it be in a larger company?
The best answer I could come up with was data silos.
Data whats-a-whose-its?! Data silos. Every piece of information about our company was stored and isolated in a completely different system, and the systems don't talk to each other. Or maybe they "talk" to each other, but only through high-latency, low-bandwidth channels. Like when I asked May Sequel (our conveniently named IT lady) to please get me a CSV of this month's new signups from the database so that I could upload them to MarketingEmailVendor.
Data silos means that even if I have full admin access to absolutely every system in my business, it will still take me a long time to understand how and why things are happening. Even looking at just one customer, I have to visit multiple systems and manually piece together what's going on.
So, now we enter the era of momentcrm.com, our third "tool for insight", and the product I'm most proud of building. Moment's goal is to get rid of all the data silos in your business!
The idea behind Moment was to provide a suite of batteries-included products that were designed from the ground up to "join" to other products nicely. You see, it was always possible to get all of our systems to talk to each other, in theory. But at what cost? We didn't make enough money to spend $XXX,XXX/year on "integration engineers", and my hunch was that other businesses didn't either. But every founder and executive wants deep visibility into their business. Our aim is to drive the "cost of joining" down to 0, so that you can see exactly what's going on in your own business.
We haven't yet realized the full vision, but we already have competitive products in the following categories:
- live chat and unified inbox
- help center
- sales and marketing automation
- session replay
I'd like to show a small, but delightful example of what happens when products can talk to each other. If you rage click (a.k.a. quadruple click or quadruple tap on mobile) anywhere on this page, a feedback form will pop up. If you submit that form, Moment will create a "saved moment" and a support ticket in my inbox. I can then rewind time to see exactly what you saw on your screen when you gave your feedback, like this:
Pretty cool, huh? This is immediately available to everyone on my team, and captures the full context of what you were doing. Our developers can see exactly what happened, without playing broken telephone with you and our support staff. And when the issue is resolved, I can just respond directly to the customer. You'll get a notification in the little chat bubble the next time you come to my site, and an immediate email transcript if we have your email address.
We shipped this feature on a whim a month ago because it was annoying to write out detailed steps to reproduce every little bug we encountered. And I dare say, it's fun[2] to use, and has had instant uptake by our own team! Nearly every bug report we create now has a saved moment attached, and it's completely frictionless, all because our products can talk to each other.
Somehow, this post turned into a pitch for Moment. We have not completed everything we've set out to do yet. But I believe we can already generate revenue lift[3] for many businesses. In fact, I'd be willing to guarantee it: if you run a small (<50 employees) software business with between $200k and $20M in annual sales, I'll guarantee that working with us will give you a 1% revenue lift (above trend) in the first 2 months. You don't have to pay us anything if we don't deliver. Please reach out via the chat bubble either here or on momentcrm.com if you'd like to work with us.
I thought it was a great idea to hire interns because they were so much cheaper than full-time engineers. We had more interns than FTEs at one point. Needless to say, this was a mistake. ↩︎
After getting used to giving low-friction feedback, I now find myself getting frustrated when I encounter a bug on another site and I can't quad click to instantly bring up a feedback dialog. Needless to say, I don't end up reporting the bug because other channels take too long. ↩︎
It took longer than I'd like to admit, to find a subtle pun to call back to the pilot in the first paragraph. ↩︎
Stats
Paying customers: 5
Monthly revenue: $125