How to build a successful opensource product
Tags: kubernetes, sealos, go, docker
Published: 2022-04-17 07:45:01

Hello everyone, I am the author of [sealos](https://github.com/fanux/sealos), sealos has 8.4k stars, and I am very happy to share with you some of my experience in doing open source and running an open source project.

**Choose a large market**

This is very important. You can choose a large market or a fast-developing market. Everyone knows that those who do algorithm tutorials must have a wider audience than the low-frequency tools at the bottom of a compiler. From the perspective of acquiring more stars, It is very important to choose a common requirement. For example, sealos chooses to start by installing kubernetes, because almost everyone who practices cloud native needs an installation tool, which is a very good entry point.

If you still choose to make tools in the openstack ecosystem, it is obviously not in line with the general trend of the times, and it is difficult to make the project successful, because it does not conform to the general trend of development, and the stock market is not large. Sealos' choice of kubernetes ecology is not only in line with the current market size, but also in line with the rapid growth of the entire market, so it can take this train.

So insight into the development of technology is very important, otherwise, even if you finally build a successful project, the growth will be stagnant after two years.

**Hit the user's pain point just need**

How are pain points discovered? First of all, let’s talk about sealos. The pain point comes from my own work. Three years ago, I found that installing kubernetes was too painful. The official documents did not provide high-availability tutorials. I wrote the script myself, thinking that many people should use it. This tool was open sourced until it was iterated to the current golang version.

So when you have a problem at work, or complain that someone else's tool is difficult to use, congratulations, you found the pain point! Even sometimes when you google a lot and can't find a solution, or a better alternative, there is a huge opportunity in front of you.

Don't repeat the wheels, or even repeat the wheels that others have already built. Unless you have a very big advantage, you should check to see if there are any carriages in the market, fill the vacancies, or let the existing ones There is something to optimize to make him better.

Combination innovation is also very important. What users need is a carriage. Now there are horses and wheels. At this time, the most important thing is to assemble a carriage for users.

It is also important to communicate more than users and collect users' needs, but collecting needs does not mean doing what the users say. Many people have heard the story of Ford Motor. It is probably said that if Ford collects user needs, users will only want a more A fast carriage will never raise the demand for cars. It is obviously wrong to understand the demand here. The real demand of users is "faster car", not "faster carriage". The carriage car is the solution, which should be provided by our insight into technology, even you The user's needs can be abstracted into "the user wants to move faster", so that you can build a time-space shuttle by understanding the needs! This is the ability to refine and abstract requirements.


**Good Product is at the heart of everything**

At the beginning of a good work, the judging criteria come from ourselves. Usually, there is a very good idea that will keep you awake. I want to make it the next day, so I start working every day until midnight, and when it is released, you have a lot of money. The sense of achievement, I think she is really beautiful, it is a great creation.

Then you find three or five experience users, and then you are poured cold water, and you find that what users want is not what you do, and there are a lot of parts that need to be optimized. Sealos was like this at a certain period. The installation required three executions of commands. Early users The feedback didn't excite me, it even hit me a bit.

At this time, I made up my mind to further optimize, and achieved 70 points to 90 points. In the end, I did it. I put everything into one command, and introduced a lot of new technologies for this time, which was finally praised by trial users.

**Create early users**

At this time, it was suitable for a relatively small-scale publicity. Sealos acquired a lot of users from the beginning, but the product was not mature at that time, so I had to deal with a large number of users every day, and I didn’t even have time to iterate on the product.

I found that it would not work like this for a long time. I listed all the common problems of customers into a long form, and then spent a lot of time every day to solve them one by one from the technical level, some very detailed and very small problems, but all users may ask Shielded by technical means, this period of time has brought product maturity to a very large level.

So in the early days, I felt that I could serve less than 10 users, focus on their feedback, and optimize the product. Once more than 8 users are satisfied, then congratulations, I can start to focus on and promote the product.

**early publicity**

The early publicity of sealos almost relied on blogs. We have also tried other channels, such as google ads, meetup, etc., and finally found that blogs are the most cost-effective, as well as some technical articles, FAQ posts, etc.

**word of mouth period**

Knowing that sealos has achieved natural growth after more than a year, a large part of it is mutual recommendation among users, which depends on the quality of the product. I still often chat with some customers and ask them if they are willing to introduce us to other colleagues, and a large number of developers are willing or even have done so.

**Capitalizing on media explosions**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a83fuxlzoqeclb8l0fvn.png)
 
We published articles in some better quality media, which formed a vertical rise for a period of time. In fact, this was a chain reaction. During that time, we were listed on the github trend list, which led to a secondary spread, and even we continued to dominate the list for a week until the holidays. arrival.

**funny viral spread**

Encountering a lot of interesting content can sometimes trigger users' interest in sharing. For example, a promotional phrase from sealos: "Because sealos can shorten the workload of a week to three minutes, it may lead to your lack of work and be fired by your boss." Many people are interested and forward it in the group.

**Active ecological cooperation**

When your project has a certain popularity, you need to cooperate with upstream and downstream projects to further increase its popularity, such as providing integrated tutorials in the document, publishing cooperation case articles, etc. No open source project has a closed attitude towards ecological cooperation, so Ecological cooperation not only helps oneself and others, but also helps users.