How to Make Your Open Source Project Successful
The open-source projects that we know
Linux/Andriod/Chrome/VS Code/IntelliJ community…
When you program open-source, you’re programming COMMUNISM
What Is Open Source Project
A public available repository does not make a project
Open Source means:
- public available(of course)
- docs about how to use/set up/build/contribute…(Not just README!)
- feature requests/bugs/issues discussion
- pull request reviews
- License & Code of conduct(Can I use that in my personal project? Do I have to make it open source?)
- Formal release!(Is that library/tool Production Ready?)
In short, that’s all means “the community”.
To make your own a successful open source project, you need…
- Play well with other open source projects
- A brilliant idea that solving a real problem.
- A quality implementation.
- Make a formal release(eg, Maven repo/gradle plugin repo/intellij plugin repo/github release)
- Not only README, but detail doc/screenshots/example code and more…
- Build your community
- Let people know your project.
- Hold your position!
- Let The Bullets Fly(让子弹飞一会儿)
- Make your project profitable
How to contribute an Open Source project?
To learn how to manage an open-source project and how to contribute to another open-source project
What you could do?
- read README/contribution guide/License & Code of conduct first.
- Before you report a bug, you need your
Minimal reproducible code and search first(in case this is a known issue)
- Report bug
- Make pull request
- Create feature request
- Review pull request
- Participate in the issue/feature request/pr discussion
- Write your article/tutorials/docs about this project
- Answer questions in issues/starkoverflow…
What would happen next?
- your issue/pr didn’t get any response.
- your issue is confirmed but there no plan to fix it.
We won't accept your pr because...(if your a creating a BIG feature, make sure you talked with core maintainers/owner first.)
A quality implementation
- API design
- test case
- interact with other libs/frameworks
- less dependencies
- light weight
Make a formal release
- Is your lib/tools
- Where your lib hosted?
- Be responsive
- Keep your decision transparent
Let people know your project – SEO
- Your project name is really important. it should be easy to remember, gives some idea of what the project does, and does not conflict with an existing project.
- link to other projects/names/urls/blogs/papers/libs/framworks
- other keywords
Hold your position
- Are you doing Open Source as full-time job or part-time job or just for fun?
- What would you do if there a PR that conflicts with the original design of your project?
- What would you do if there a feature request would take a lot of time to implement?
- Who are your collaborators?
Let The Bullets Fly
If all goes well, there may be some tweets/blogs/official recommendations/article/tutorials talks about your project, that will make your project even more popular.
Make your project profitable
- Open Collective
- WeChat Pay/AliPay
Open Source Humor
Make sure you are will not accidentally share/open-source the code of your organization.