TranslateProject/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md

172 lines
12 KiB
Markdown
Raw Normal View History

[#]: subject: "Our open source startup journey"
[#]: via: "https://opensource.com/article/22/10/tooljet-open-source-journey"
[#]: author: "Navaneeth PK https://opensource.com/users/navaneeth"
[#]: collector: "lkxed"
2022-12-12 10:49:48 +08:00
[#]: translator: "CanYellow"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
2022-12-13 19:12:27 +08:00
开启我们的开源之旅
DN
Our open source startup journey
======
2022-12-13 19:12:27 +08:00
ToolJet 是一款开源的代码量少的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。
DN
[ToolJet][1] is an open source, low-code framework for rapidly building and deploying internal tools. Our codebase is 100% JavaScript and TypeScript.
2022-12-13 19:12:27 +08:00
ToolJet于2021年由一名开发者启动开发并于2021年6月推出公测版本一炮而红。此后 ToolJet 成立了基金会。目前已经有一个20人的开发团队了。
DN
A lone developer in April 2021 started ToolJet. The public beta launched in June 2021 and was an instant hit. With this traction, ToolJet raised funding, and currently, we have a team of 20 members.
2022-12-13 19:12:27 +08:00
### 为什么选择开源
DN
### Why open source?
2022-12-13 19:12:27 +08:00
在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。
DN
Before working on ToolJet, I worked with a few enterprise clients as a consultant. Many of these clients were large enough to build and maintain dozens of internal tools. Despite the constant requests from sales, support, and 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 utilities.
2022-12-13 19:12:27 +08:00
我尝试过多个平台来构建和维护内部工具。大部分的平台是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台代码,而且大多数的平台工具都不支持本地托管。
DN
I tried using a few platforms to build and maintain internal tools. Most of these tools were very expensive, and frequently, they didn't really fit the requirements. We needed modifications, and most utilities didn't support on-premise hosting.
2022-12-13 19:12:27 +08:00
作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。
DN
As a Ruby developer, I primarily used ActiveAdmin and RailsAdmin to build internal tools. Both utilities are amazing, but making them work with more than one data source is difficult. I then realized there is a need in the market for a framework that could build user interfaces and connect to multiple data sources. I believe any tool built for developers should be open source. Most of the tools and frameworks that developers use daily result from people from all over the world collaborating in public.
2022-12-13 19:12:27 +08:00
### 第一次提交
DN
### The first commit
2022-12-13 19:12:27 +08:00
制作像 ToolJet 这样的工具需要全身心的投入出售我的一个个人项目后我获得了5-6个月的空闲我立即着手将在我脑海里酝酿了两年的想法付诸现实。
DN
Building something like ToolJet needed a full-time commitment. Selling one of my side projects gave me a runway of 5-6 months, and I immediately started working on an idea I'd had in mind for at least two years.
2022-12-13 19:12:27 +08:00
2021年4月1日我完成了 ToolJet 的第一次提交(使用 rails new 命令)。
DN
The first commit (rails new) of ToolJet was on April 1, 2021.
2022-12-13 19:12:27 +08:00
稍等!我刚刚说 ToolJet 的代码是完全基于 JavaScript 的?请接着往下看。
DN
Wait! I said the codebase is 100% JavaScript. Continue reading to discover why.
2022-12-13 19:12:27 +08:00
TD
### 构建工具并推销给投资者
### Building and pitching investors
2022-12-13 19:12:27 +08:00
4、5月间我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。
DN
I sat in front of my screens for most of April and May, coding and pitching to investors for a pre-seed round.
2022-12-13 19:12:27 +08:00
我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时, ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。
DN
My work also included creating the drag-and-drop application builder, documenting everything, ensuring there was documentation for setting ToolJet up on popular platforms, creating a website, creating posters and blog posts for launch, and more. The process went well without any major challenges. At this point, the frontend of ToolJet was built using React, with the backend using Ruby on Rails.
2022-12-13 19:12:27 +08:00
编程工作进行得很顺利然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件都石沉大海。大部分邮件都被忽略了不过也有一些公司向我说明了拒绝的原因另外一些则给我来了电话。
DN
While the coding was going well, investor pitches weren't going great. I sent around 40 cold emails to venture capitalist firms and "angel investors" focused on early-stage funding. While most of them ignored the email, some shared their reason for rejection, and some scheduled a call.
2022-12-13 19:12:27 +08:00
大部分的电话内容都是一样的:我无法说服他们接受开源商业模型。
DN
Most of the calls were the same; I couldn't convince them of an open source business model.
2022-12-13 19:12:27 +08:00
### 工具发布
DN
### The launch
2022-12-13 19:12:27 +08:00
6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这是原始的[发布帖][2]。
DN
June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2].
2022-12-13 19:12:27 +08:00
I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars.
![ToolJet repo stats on GitHub][4]
Image by:
GitHub StarTrack for ToolJet. (Navaneeth PK, CC BY-SA 4.0)
### Getting funding
The traction on GitHub was enough to be noticed by the venture capitalist (VC) world. The days following the launch were packed with calls. We had other options, but did not consider seriously consider them, including:
- Bootstrapping: During the early stages of the product, it was hard to find paying customers, and I did not have enough savings to fund the project until that happened.
- Building as a side project: While this strategy works great for smaller projects, I didn't feel it would work for ToolJet because we needed to create dozens of integrations and UI widgets before the platform could become useful for customers. As a side project, it might take months or years to achieve that.
I knew it could take months to build the platform I wanted if ToolJet became just a side project. I wanted to accelerate growth by expanding the team, and VC funding was the obvious choice, given the traction.
The good news is that we raised[$1.55 million in funding][5] within two weeks of the HN launch.
### Stack matters in open source
Soon after the launch, we found that many people wanted to contribute to ToolJet, but they were mostly JavaScript developers. We also realized that for a framework like ToolJet that in the future should have hundreds of data source connectors, only a plugin-based architecture made sense. We decided to migrate from Ruby to TypeScript in August 2021. Even though this took about a month and significant effort, this was one of the best decisions we've made for the project. Today, we have an extensible plugin-based architecture powered by our [plugin development kit][6]. We have contributions from over 200 developers. We've written extensively about this migration [here][7] and [here][8].
### Launching v1.0
Many users have been using ToolJet on production environments since August, and the platform did not show any stability or scalability issues. We were waiting to wrap up the developer platform feature before we called it v1.0. The ToolJet developer platform allows any JavaScript developer to build and publish plugins for ToolJet. Developers are now able to make connectors for ToolJet. Creating a ToolJet connector can take just 30 minutes, including integration tests.
### Building a growing community
![ToolJet star history][9]
Image by:
ToolJet Star History (Navaneeth PK, CC BY-SA 4.0)
We didn't spend money on marketing. Most of our efforts in spreading the news about ToolJet have been writing about our learnings and being active in developer communities. We have a team of three members who take care of community queries.
### The business model
ToolJet won't be a sustainable business without a [commercial product][10] to pay the bills. We've built an enterprise edition of ToolJet, for which customers must pay. There's no limit on usage for the free community edition, and additional features in the enterprise edition are relevant only to large teams. We have very large companies as paying customers right now, but we haven't started monetizing ToolJet aggressively. We have enough money left in the bank to build an even better ToolJet, so our focus currently is on product improvement.
### What's next?
We frequently release better versions of ToolJet with the help of constant feedback and contributions from the open source community. Many major improvements and dozens of connectors and UI components are in progress. We're moving faster than ever towards our initial goal of being the open framework that can connect to hundreds of data sources and build even the most complicated user interfaces!
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/10/tooljet-open-source-journey
作者:[Navaneeth PK][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/navaneeth
[b]: https://github.com/lkxed
[1]: https://github.com/ToolJet/ToolJet
[2]: https://www.producthunt.com/products/tooljet-0-5-3
[3]: https://news.ycombinator.com/item?id=27421408
[4]: https://opensource.com/sites/default/files/2022-10/tooljet-repo-stats.png
[5]: https://blog.tooljet.com/raising-vc-funding-for-open-source-project
[6]: https://www.npmjs.com/package/@tooljet/cli
[7]: https://blog.tooljet.com/migrating-toojet-from-ruby-on-rails-to-nodejs
[8]: https://blog.tooljet.com/how-we-migrated-tooljet-server-from-ruby-to-node-js
[9]: https://opensource.com/sites/default/files/2022-10/tooljet-star-history.png
[10]: https://opensource.com/article/19/11/product-vs-project
2022-12-13 19:12:27 +08:00
[11]: https://www.producthunt.com/