2 years of building a commercial open-source company
From first commit to moving away from coding.
It’s been 2 years since the first commit of ToolJet. This article walks you through my journey with ToolJet so far.
Motivation behind starting ToolJet was to make the lives of developers easier by letting them build internal tools quickly and go back to building their core products.
Building ToolJet beta in 2 months
ToolJet was initially a Ruby on Rails project with React frontend. A chain of events led to building ToolJet. I was jobless in March 2021, was able to sell my side project and a new wave of Covid was coming. I had some money to survive for next few months and the expenses were going to be super low due to new Covid wave. Two weeks into development, my in-laws, parents and I were diagnosed with covid in that order. For around 2 months, I was in home quarantine. It meant I was coding day and night for two months straight.
In April, some of my friends were actively using ToolJet and were giving constant feedbacks to improve. Everyone had proper internal tool use cases and it helped a lot in deciding which features to prioritise for public beta.
Meanwhile I was also reaching out to multiple VCs, angels and accelerators. Being an introvert meant I did not have any connections with anyone who can give me warm intros to investors. So I had to cold email or reach out on Linkedin. A few of them were kind enough to respond with the reason for rejection (conflict with a previous investment, not actively investing, not an area of interest, etc). Very few scheduled a meeting. Almost all of them were not interested in solo founder building a commercial open-source company.
YC invited for video interview even though I applied after 2 weeks after the date of closing application for the next batch. They were convinced about the idea but wanted to see some traction. I was not expecting them to even invite for the interview. The goal was to apply once so that I can apply again with traction for the next batch.
The launch and open-sourcing codebase
ToolJet’s public beta was launched on June 7, 2021. The codebase was also open-sourced on the same day.
Launch was unexpectedly interesting. We were trending at #1 on ProductHunt immediately. Even though we were getting upvotes and comments on ProductHunt, they did not translate into signups or stars on GitHub. Few people on ProductHunt were not happy with seeing an open-source alternative of a closed source product. That triggered some heated discussions between ProductHunt members.
At around, 5am PT, I posted on HackerNews under the ShowHN section. Within 20 minutes, ToolJet was trending on the homepage of HN at the first position. This was our turning point. ToolJet’s GitHub repository got more than 1,000 stars in less than 8 hours of posting on HN. It was a night of excitement - I was waiting along with my friends to see the number of stars crossing 1,000. It happened at around 2:30am IST. Along with stars, there were hundreds of signups for ToolJet Cloud.
This was not expected and I ran into issues like running out of emails on SendGrid plan, hitting usage limit of Firebase (we use Firebase for hosting the frontend), etc. I had to manually send the confirmation emails to few hundred users 😅
Fundraising
From the beginning itself, I did not want to build ToolJet as a small side project. I was chasing investors right after the decision to build ToolJet.
Things were easier after the launch. Few investors who reached out did not care about solo founder and were extremely interested in open-source. We got our first cheque of 200k almost immediately and closed 1.5m USD seed round within a few days after that.
Read more on the thought process behind raising VC funding for an open-source project.
Towards ToolJet 1.0
Even thought the seed round was closed in June, it took more than 5 months to incorporate a company and wrap up the structuring. So the money landed in the bank only in December.
June and July was mostly spent on migrating the backend from Ruby to Node.js. Many open-source contributors wanted to contribute to ToolJet but many of them were not familiar with Ruby. It made sense to migrate to Node.js which is getting more and more popular and has a young and active community.
In August, out first 4 engineers joined. I was looking for engineers who have built and launched their own products in the past. The reason was that I wanted to stay away from the codebase and let smarter people do the job.
We launched ToolJet 1.0 in January 2021. At this point, we had 8 members in our team. We were able to build features such as realtime team collaboration, decoupling every data source as plugins that live outside the codebase, added more connectors & UI components, added more enterprise features, cleaned up the application builder design, etc. Meanwhile we also got contributions from more than 100 contributors.
Activity from customers increased after the v1.0 launch. Many companies stay away from products in beta stage.
We also crossed 5,000 stars on GitHub right after launching v1.0.
Towards ToolJet 2.0
As the new kid in the low-code space, ToolJet was still behind the products we were competing with in terms of features. We hired few more engineers and later hired our head of product (who is now the CPTO of ToolJet). At this point, engineering team’s dependency on me was almost zero.
In June, we crossed 10,000 stars on GitHub. Number of active contributors were also increasing. Some of the community members were contributing plugins like Amazon SES, MariaDB, etc.
We did not try to sell ToolJet aggressively to customers. Our focus was on building a product that is loved by our community. We had some paying customers during this period. They were all inbound and included even Fortune 500 companies. Feedback from these customers were very helpful in building our enterprise edition.
We consistently released a new version of ToolJet every two weeks. Finally we launched ToolJet 2.0 in January 2023.
2.0 had a lot of major features such as support for Python, multi-page applications, redesigned application builder, support for multiple environments, installable plugins, etc.
Meanwhile we also closed another round of funding mostly from our existing investors. We wanted to expand our engineering and community teams to move faster in a market that is competitive.
Catching up with competitors
Today, we have a solid product that competes with offerings of our competitors. Some of these competitors have a team size of 5x or even 10x of ours, have been in the scene from 2-3 years before we came in and have raised 8-25x of money we’ve raised. We’ve intentionally kept our team size small to make sure we don’t slow down. More members in engineering team usually does’t translate into faster execution. More people means more stakeholders, managers and meetings. At this stage, we have to move faster than others.
Here is an article that explains why bigger teams might lead to slower execution: https://www.linkedin.com/pulse/why-does-product-delivery-slow-down-company-gets-bigger-james-simpson-1c/
Over the last 22 months, our GitHub repository got more than 18.4k stars and 300+ contributors. The strong pull from open-source community has helped us a lot in improving the platform. The activity on our Slack community has also grown over the last one year.
What’s next?
We are working on improving ToolJet every day with the same passion that we had on day 1. We believe ToolJet is still too early and young, there is a lot that we can do to make the lives of developers easier.
More new features and improvements are coming very soon. Checkout our GitHub repository: https://github.com/ToolJet/ToolJet.