When I first started working on Typesense six years ago, I set myself a simple rule:
I shall write some code everyday before or after work.
That’s it. No deadlines, no quarterly goals, no milestones.
I did not have a choice really — I was about to get married and was already working full-time in a demanding role. As you can imagine, building a search engine from scratch is not a trivial undertaking, so that was my way of not having to deal with additional stress.
With no self-imposed time pressure, I was able to focus on just one thing: showing up every day and writing some code. Some features took an hour to implement, some took several hours spread over days, some even stretched into weeks, but it did not matter because there were no deadlines of any sort.
Looking back, I cannot believe how much I’ve been able to ship over the past 6 years by just following this one rule.
Life kept throwing various curve balls at me: I got married, had a daughter, lost a loved one after a prolonged battle, underwent major health issues, battled COVID…
Yet, somehow, somewhere along the way, Jason and I have been able to build an open-source search engine from the ground up by simply hunkering down and persisting with it as a part-time project over a ridiculously long period of time.
Here’s a brief summary of our journey so far:
2015: Prototyping and benchmarking various data structures (secret sauce?)
2016: First official commit, building the core fuzzy text search engine
2017: HTTP API, support for numerical filtering and faceted search
2018: Client libraries, read-only replica, failed Hacker News launch
2019: Earning the first dollar, lots of tiny features that everyone takes for granted
2020: Clustering, Typesense Cloud, multiple demos, successful Hacker News launch
2021: Diving into Typesense full-time, writing our first blog post :)
The road we have taken goes against several prevailing conventional wisdom about launching a company.
We did not quit our day jobs to start working on Typesense full-time immediately. We did not seek venture capital or attempt to “corner” the market by chasing hyper growth. We did not have personal brands or wide networks to tap into. We did not even earn the first dollar till the 5th year.
Yet, we had an almost-infinite run-way because we excelled at our day jobs even as we plugged away at Typesense. By playing the long game, we were able to dive into Typesense full-time only when we had sufficiently de-risked that option.
If you want to find some modest success and independence by launching your own product, and wished to do so without too much risk, I invite you to try this playbook:
Pick an idea in a large market that will always be in demand and work on a product that caters to a subset of use cases exceedingly well.
By choosing an idea that is not a fad and doing so in a large and preferably growing market, you can afford to take a much slower route. As long as you keep plugging away at the problem, at some point, you will have enough of a product to start charging for it.
Let’s take the case of Typesense.
We began with a simple idea: to democratize good search by building a delightful search engine that worked out of the box. Even when we started out, we knew that websites and applications were always going to need search, and that this was a large and growing market.
As we slowly built Typesense, we watched a few other companies launching and gunning for the same market (yay, market validation!). Nevertheless, we kept chugging away purposefully and used the the slow ramp up we had to understand the market even better.
After six years of working on Typesense, our story has just begun and I’m as excited as I was back in 2015. Now that Jason and I are both working full-time on Typesense, we look forward to growing it on our own terms.
Every time a customer migrates their search experience to Typesense, it reminds us of the unreasonable effectiveness of just showing up every day.
Here’s to another 6 years!