Why ToolJet and why open-source

Before I started working on ToolJet, I had worked with a few enterprise clients as a consultant. Many of these clients were huge enough to build and maintain more than 20 internal tools. Despite the constant requests from sales/support/operations teams to add more features and fix the bugs in their internal tools, engineering teams struggled to find the bandwidth to work on the internal tools.

I tried using a few platforms that can be used to build and maintain internal tools. Most of these tools were very expensive and most of the time the tools didn't fit right in, we needed a few modifications. Also, many of these tools did not support on-premise hosting and self-hosting is something that many companies would prefer.

In March 2021, I was able to sell my side-project ( WanderWhale ) to Saeloun Inc. This gave me enough freedom to work on something full-time for a few months. I then thought about the idea that I had in my mind for a few months now. I found that there are some companies ( like Budibase ) that provide open-source platforms for building internal tools. I could not find any alternatives that are built using Ruby. I am a huge fan of Ruby & JavaScript and so I thought I will build something similar for the Ruby & JavaScript communities.

The first commit ( rails new :D ) of ToolJet was on April 1, 2021.

The first steps

As someone with limited experience in building frontends, my first challenge was to build proof-of-concept of a drag and drop system using ReactJS. Obviously, the choice of the library was React-DND due to its huge popularity.

Here is a screenshot from April 2, 2021. The name of the project was StackEgg at that time and that's why there is an egg on the screen.

ToolJet First Steps

Since ToolJet is going to be an open-source product, I won't be able to use a commercial bootstrap theme. But fortunately, Tabler provides a clean and simple open-source bootstrap theme. Using a theme helped me save a lot of time.

Priorities

I set my deadline to be the last week of May with a buffer of 2-3 weeks ( so that I can survive for 2-3 more months after the launch using my savings :D ). I tried to figure out which are the most used databases and services by enterprises. PostgreSQL, MySQL, MongoDB, Stripe, Google Sheets, Slack & Airtable were on top of the list.

I also made a list of widgets without which it won't be possible to launch. Obviously, tables, charts and forms were the most important ones.

The priority then was to build the core framework to which these data sources and widgets can be added as plugins/addons.

Planning ToolJet's Roadmap

A screenshot from April 10

Applying to accelerators & pitching investors

I started applying to accelerators and talking to investors ( both angels and VC firms ) right after the second week of April. I knew it is too early but my idea was to show them what I have built so far and then later contact them again after the launch. Outcome: I guess most of the emails landed in trash, some emails converted as meetings, a few reverted with a no and many ghosted. It was an experiment anyway. Many investors weren't interested in open-source and many weren't okay with solo founders.

After a couple of weeks, I got the invitation for a video interview from YC. It was not expected as my intention of applying even though it's about a month after the deadline was to show the progress the next time I apply. Got rejected after the video interview but that was totally expected for a product in its very very early stages.

Time

My in-laws tested positive for covid-19 and I had to be in quarantine for 2 weeks since April 16. after which, there was a state-imposed lockdown and again I was stuck at home. When the lock-down restrictions were being eased, I had to be again in quarantine as my parents tested positive for covid-19. Effectively I was stuck at home for about 1.5 months ( I still am at the time of writing this ).

This gave me enough time to work on ToolJet. Working on ToolJet kept me occupied and I did not feel too bad about not able to step out of my home

May 2021

I had started talking to customers in April itself. This helped me get a lot of feedback at a time it was needed. Many features were added when users found them missing. None of them was paying customers most of them were people that I know.

During the second half of May, I had to spend some time documenting ToolJet. Docusaurus was immediately selected as the framework for documentation. The reason was that it required minimal customisation and felt very clean right out of the box.

Towards the end of May, ToolJet was ready to be launched. I had to wait for a few more weeks to get a few things sorted on Stripe Atlas and also had to find a date that's okay for the ProductHunt hunter ( Kevin ).

While all these were happening, a few of my friends started contributing to the repository. Huge thanks to Jithin, Tejaswini, Sooraj, Akshay and Unni.

Getting AWS credits as part of the perks from Stripe Atlas was also very helpful.

Planning for launch

The plan was to launch on ProductHunt, post on HN and make the repository public on GitHub.

This needed a proper website, demo video and images to post on ProductHunt.

Had to spend significant time building the website as I was not satisfied with the layout and the content. With advice and tips from friends who are good at designing, I could finally get what I had in my mind. Using a bootstrap theme helped me save a lot of time.

Building images for ProductHunt was fun. It took some time but I learned fun facts like: you can convert images to gifs on mac with convert -delay 75 *.png thumbnail.gif.

The plan was to launch on June 1 but then I had to set a buffer as my parents tested positive for covid-19 and there was a chance that I could be infected too. And thus the launch was moved to June, 7.

Launch day

Kevin posted on ProductHunt at around 12:30 PM IST. Within a few hours, ToolJet was pushed to #2 on ProductHunt.

After 6 hours, there were only 70 new signups and the repository had just 50 stars.

I posted on HackerNews around 6 pm and in an hour, the post was #1 on HN. I was very happy to see that many visitors were signing up and starring the repository. Many of these visitors/users reported bugs in the application & documentation. Within 8 hours of posting on HN, ToolJet's GitHub repository was starred by more than 1000 GitHub users and there were hundreds of signups for ToolJet cloud.

ToolJet Launch
Stargazers over time

At the time of writing this, ToolJet has 2.4k stars on GitHub. The above graph is created using StarTrack - It is a cool open-source tool that can plot a graph of stargazers over time. You can even use it to compare different GitHub repositories in terms of stargazers.

I did not expect to get this great response for an open-source project within such a short time.

The future

More databases will be supported, more widgets will be added, test coverage will be improved and the overall usability of the tool will be improved over the coming weeks.

Thanks!