DEV Community

Cover image for How to Grow Your Open Source Project: 11 Tips and Examples 🎯🎁⚑
Anmol Baranwal Subscriber for Opire

Posted on • Originally published at opire.dev

How to Grow Your Open Source Project: 11 Tips and Examples 🎯🎁⚑

There are millions of open source projects on GitHub, but only a few ever reach 500 stars and even fewer hit 1,000 stars or more.

If you want to grow your open source project (not only in terms of stars), this article would be the perfect place to start.

I've been an open source maintainer for very long and will use my experience to give you 11 tips with detailed references.

Let's jump in.

banner gif


1. Create Open Source Bounties using Opire.

This might be the most underrated way to grow your project by attracting a huge number of contributors.

All you need to do is create small rewards for solving issues on GitHub. By offering those rewards, you can motivate developers to get involved.

Opire helps you create those bounties in the easiest way possible.

Opire

As you would have guessed by now, Opire is a platform for solving and creating bounties in open source. They are moving towards the vision that anyone can make a living from open source.

As a developer, you can solve real problems to show in your portfolio and build credibility. As a project owner, you can create those bounties to increase the growth of your project.

opire dashboard

Reputed organizations like Cal.com use these bounties to speed up their projects. It also gives a strong message that the project is serious about the growth and the value that it creates.

Nobody wants to contribute to the repository that might be archived the next day, creating those rewards is an indirect way to say the project is going for long-term growth.

It will spread the word and can lead to more Recognition ⟿ more Stars ⟿ more Contributors ⟿ 100x Growth of your project.

Β 

🎯 How to create and solve those bounties?

You can create and manage bounties in 2 simple ways:

βœ… Install the bot which handles communication with the Opire API. That way, it will be shown in the Opire dashboard.

You can use commands such as:

-β†’ /reward [amount] : to create a reward.

-β†’ /try : try to solve the issue.

-β†’ /claim #[issue_number] : to claim rewards.

-β†’ /tip [amount] @[user] : for tip in USD to the mentioned user.

Β 

βœ… If you don't want to install the bot, then you can also create those rewards from the dashboard. I have attached a snapshot.

opire rewards dashboard

You can read the docs for detailed flowchart about the lifecycle of rewards and how it actually works.

Β 

Some of the useful use cases can be:

⚑ Collaborate on open source projects and earn money for your contributions.

⚑ Include paid technical tests as part of the selection process in your company by adding rewards. This can help you evaluate your candidates' skills while valuing their time, which sends a very strong message.

⚑ Support maintainers of open source projects by contributing financially. They don't get enough recognition for the work they do!

open source

Β 

Algora is active in this domain but the main reason you will love Opire as a creator is because it will save you a lot of money. Algora charges 19% which is very expensive while Opire takes only 4%.

Even the subscriptions that Opire launched recently are very profitable. Developers receive 100% of the rewards regardless. No tricks in that!

monthly subscription

monthly subscription

Β 

yearly subscription

yearly subscription

Β 

Moral: Save money with Opire and grow your project in the fastest way possible.

Opire is open source with docs and the website. Please star the repo to show your support!

Star Opire ⭐️


2. Build a standard community profile for your project.

There are some guidelines that every project on GitHub needs to follow to meet certain community standards, which are often overlooked but crucial for your project's health and growth.

This is referred to as the public repository's community profile.

It helps others to understand HOW anyone else can contribute to the project with a few other requirements.

These standards include:

-β†’ Contributing guidelines (contributing.md) :

It is the guidelines that contributors should read on how they can contribute to the project. The best example that I've come across is from Simple Icons.

-β†’ README (Readme.md) :

This is the most important document that provides information about a project, including its purpose, installation instructions, tech stack and more. It can vary for every project but a good Readme always attracts more contributors. A good example is dailydotdev.

-β†’ Code of conduct (CODE_OF_CONDUCT.md) :

This file sets the ground rules for participant behavior, helping to create a friendly and welcoming environment. A solid example is the GitHub Community Code of Conduct.

-β†’ Description :

A clear project description increases visibility and can help your project get featured in GitHub's Explore more repositories section. This is what your people users see first.

description of a good project

Example of a project's description

Β 

-β†’ License (LICENSE) :

By definition, every open source project must have an open source license. If a project doesn't have a license, it is not considered open source.

Open Source is an unusual circumstance, however, because the author expects that others will use, modify, and share the work. But because the legal default is still exclusive copyright, they need to explicitly give these permissions with a license.

You can refer to the official guide on which license you should choose for your project. Find all the licenses.

-β†’ Security Policy (Security.md) :

GitHub repositories involve lots of packages and dependencies, which can lead to security vulnerabilities. A security policy helps address these issues.

Learn how to Add a security policy to your repository in the official docs.

This will be helpful because whenever someone creates an issue in your repository, they will see a link to the security policy associated with your project. A good example is the security policy of Novu.

-β†’ Issue templates .github/ISSUE_TEMPLATE/file_name.yml :

Issues are used to track bugs, feature requests, and other tasks related to a project. They can be opened by anyone, and everyone uses it to track and prioritize work that needs to be done.

Issues can be assigned to specific team members, labeled with tags, and can have discussions related to them.

Read on how to create an issue in GitHub in the official docs.

You can create these issue templates that contributors will see when they try to create a new issue.

issue templates

You can find a list of issue forms in this gist.

-β†’ Pull Request template .github/ISSUE_TEMPLATE/file_name.yml :

These templates ensure that contributors provide clear and consistent information when submitting pull requests.

Read official docs on Creating a pull request template for your repository.

You can create multiple pull request templates to offer options for required information in different types of pull requests.

project

Β 

If you're wondering how to find these guidelines, then you can check the insights tab in your repository as shown below.

community standards

community standards under the insights tab

Β 

You can read more about community profiles for public repositories on the official docs of GitHub.

Remember, there's no rule saying you have to promote an open source project when you launch it.

There are many simple reasons to work in open source that have nothing to do with popularity. For instance, most project maintainers do the work without expecting anything in return!

Moral: Instead of hoping others will find and use your open source project, you have to spread the word about your hard work!

planning


3. Figure out the value your open source project makes.

Before you start the actual work of promoting your project, you should be able to explain:

βœ… what it does.
βœ… why your project matters.
βœ… why you created it in the first place.

the overall idea

All the people who will get involved with your project as users eventually can become contributors because your project solves a problem for them.

Just think and view the value proposition through the lens of what users and contributors might want.

For example, seed (recently open sourced) tells about the motivation to make this and how they're solving it.

example of the project's motivation and solution

repo: github.com/supabase-community/copycat

Β 

They have used the code example so developers can easily tell what is the overall solution.

It's important to realize that ONLY you know how amazing your product is: its unique features, good user experience and the impact it can bring in others' lives.

The users will not know. Most of the time they don't care and normally they do not even make an effort to understand. Even if they try to do it, you can't guarantee that they will do it right.

So it's all up to you to deliver the right message.

Moral: Creating a clear value proposition helps people understand what makes your project super valuable.

A couple of blogs I recommend reading to help you refine your message:

brand messaging


4. Help people find and follow your project.

This might be slightly related to building your community but both things are entirely different.

As Peter Cooper and Robert Nyman suggest, you need a single β€œhome URL” where people can learn about your project. It doesn't have to be anything fancy or expensive, a simple, memorable focal point will do the job. You can check out their blog on How to Spread The Word About Your Code for more insights.

Β 

There are two simple ways to do that:

βœ… Online presence can help you promote your work.

Having a Twitter handle, GitHub URL, or IRC channel makes it easy for people to find your project. These platforms also give your growing community a place to gather.

If you're not ready to create separate accounts for your project, you can always promote your personal Twitter or GitHub handle in everything you do. It's a simple way to let people know how to reach you or keep up with your work.

online presence

Β 

βœ… Create a website for your project.

Even a basic website can work really well. It becomes even more powerful when you add documentation and tutorials, but starting with something simple is just fine.

If your project is hosted on GitHub, you can use GitHub Pages or services like Vercel to host it for free. There are many simple templates available to help you get started.

project with the website

most of the successful open source projects have a website

Β 

Moral: Even a simple website can make a big impact because you never know where your first users will come from.

Now that you have got a clear message and an easy way for people to find your project, let's get out there and talk to your audience!


5. Go where your project's audience is (online).

Online outreach can be a great way to spread the word quickly.
With the right approach, you can connect with thousands of people without too much effort.

There are a lot of platforms that you can use:

⚑ Hacker News, Reddit, Quora.

⚑ LinkedIn, X (formerly Twitter), Instagram, YouTube.

⚑ Stack Overflow.

⚑ Dev.to, Hashnode, Medium.

Find the channels where you think people will most benefit from or be excited about your work.

A good rule of thumb: Any platform that has more than 1B users will always have your target audience.

online

Β 

Some of things you should avoid (❌) and some you can try (βœ…):

❌ Do not ask for things in return and not focusing on helping others.

❌ Pitching to everyone irrespective of the target audience.

❌ Don't cross personal space for feedback.

βœ… Search through related forums for people who fall into your project's target audience. Answer their questions and when appropriate, suggest your project as a solution.

βœ… If your project is perfect for data scientists who use Python, get to know the Python data science community. As people get to know you, natural opportunities will arise to share your work.

βœ… Listen and respond to others' feedback, rather than simply promoting your work. Treat them with respect.

As Pazdera wisely said, Each program has very specific functions that only a fraction of users will find useful. Don't spam as many people as possible. Instead, target your efforts to communities that will benefit from knowing about your project. You can read more about this in Spreading the word about your open-source project.

Β 

Remember not to get discouraged when nobody pays attention or responds to your initial outreach! Most project launches are an iterative process that can take months.

If you don't get a response the first time, try a different tactic, or look for ways to add value to others' work first. Promoting and launching your project takes time and dedication.

stop wishing, start doing


6. Go where your project's audience is (offline).

Offline way is the best way in my opinion to reach an engaged audience and build deeper human connections, especially if you are interested in reaching more developers.

Once you're ready, consider speaking at a conference to promote your project. Conferences can help you reach more people, sometimes from all over the world.

speak at a conference

⚑ Start by finding a local meetup that's related to the language or ecosystem of your project.

⚑ Look for conferences that focus on your specific language or ecosystem. These events draw an audience that's already interested in what you're doing.

⚑ Before submitting your talk, research the conference to understand its audience. This will help you increase your chances of being accepted as a speaker. You can get a feel for the audience by checking out previous speakers at the event.

offline meetup

offline meetup in Philippines

Β 

When you speak at a meetup or event, be sure to include your contact information in your bio or slides. This makes it easy for people to reach out to you afterward.

Major conferences like ReactConf or Nextjs Conf are great examples of events where you can make an impact.

nextjs conf

James (CEO of Payload) speaking at Nextjs conf

Β 

You can check a lot of conferences and meetups happening around the world at dev.events.

Moral: Getting out there and speaking about your project in person can be one of the best ways to someone get interested in your work.


7. Make a community around your project.

A community is a place where people have an emotional connection to your product. They can connect with each other and your product.

When people are emotionally invested in your community, they're more likely to stick with your project, digest your content, tell their friends and family about your company and stay engaged with your content.

In simple terms, a strong community shows the best kind of loyalty to your project.

community

You might think about starting a newsletter but the problem is that it's just a one-way connection. From my experience, it's not as effective. Instead, focus on creating a community on platforms like Discord or Slack.

Here's why building a community is so powerful:

⚑ You can get instant feedback without going anywhere else.

⚑ Some of your users might get converted to contributors or maintainers in the future.

⚑ Growing your community ensures you'll always have an audience. You will always have instant access to your users.

⚑ That will validate your solution and more people will be interested to join them, considering there are already others who trust your project.

community

For example, LEGO has its own community called Insiders, where members can earn loyalty rewards and share their creations with other LEGO enthusiasts.

lego

taipy

Taipy has its own community

Β 

copilotkit

Copilotkit has its own community

Β 

opire

Opire also has its own community

Β 

Join Opire community πŸ”₯

Β 

You should read about 7 tips for building a brand community.

Moral: Create such a strong community that every user feels like a Brand Ambassador.


8. Make your community inclusive and organize weekly calls.

Now that you have your community set up, it's time to increase engagement.

A lot of communities hold weekly calls where users can discuss their questions, share ideas and get help directly through live interactions.

Some even have weekly office hours where small issues are fixed on the spot and users can stay in the loop about what the core team is working on. Or if anything is being planned for the community.

These calls make the community feel more connected and personal. While chat is useful, hearing someone's voice makes a big difference. We all enjoy real conversations :)

appwrite

appwrite weekly calls

Β 

copilotkit

copilotkit office hours

Β 

Moral: Making time for live interactions builds a stronger, more connected community.

If you want to read an article, then I recommend 13 Secrets to Increase Online Community Engagement (2024).

You can also watch this video by Pat on how to build an engaged community!


9. Focus on organic word of mouth.

In a world full of ads and promotions, people are getting tired of constant marketing. A study by Optimove shows that 27% of people feel overwhelmed by ads (including me) and 66% want fewer ads.

Instead, people are turning towards recommendations from friends, family or online communities when making decisions.

stats on avoiding product

Imagine a stranger who just found your project very helpful and then sharing the word with their friends or community. That's the most powerful way to get your project noticed!

As long as you keep your Developer Experience (DX) and User Experience (UX) solid, everything else will follow.

It's like creating something amazing and letting your satisfied users do the marketing for you. This also shows that your project really connects with the people you're trying to reach (target audience).

products for your customers

A great example is Canva. They started by focusing on people who had no design experience but wanted to create great designs. They've grown by building an active community (plus free sign-up to try the product). One of their successful word-of-mouth strategies is their β€˜Design Stories' series, where users share their experiences.

Moral: People trust each other more than brands.

Two articles that will give you effective tips on how to increase word of mouth for your project:


10. Building more apps around your domain.

Another underrated strategy that many popular projects follow is to create more apps around your main domain.

Let me explain with a simple example, let's suppose you have a domain of devz.com and your target audience is developers. You can build a job portal like jobs.devz.com or any simple tool app that could be useful.

It will somehow redirect the traffic to the main website because most users will just check it out. Eventually, you could reach more people by building a product that the user wants.

latitude prompt engineer jobs

Latitude created a jobs platform to redirect the traffic.

Β 

Moral: Growing your project isn't rocket science. Create more value to get more traffic.


11. Building a solid reputation.

Once your project has a solid user base, it's important to highlight the positive feedback you've earned over time.

Building a strong reputation is a simple hack for attracting more users. You can display testimonials from users or even from companies that have benefited from your project.

reputation

resend showcasing the powerful reputation

Β 

It doesn't have to be complicated. Most users are happy to provide strong feedback, which you can proudly display on your website.

Moral: When people see that others have had a great experience with your project, they're more likely to jump on board too.

Β 

brand


A couple of more resources that I recommend checking out to help you get more ideas to grow your project.

  • A video by Kunal Kushwaha (a bit promotional but decent enough)

Β 

finding users for your project

Β 

  • I have covered everything about open source in one of my articles including the legal side. You can check it out!

I have tried to cover everything I could think of.

If you have any awesome ideas, please share them with us in the comments.

Also, share your project (this is the audience) you're trying to grow, I might share a few tips using comments.

Have a great day! Until next time :)

You can join my community for developers and tech writers at dub.sh/opensouls.

If you loved this,
please follow me for more :)
profile of Twitter with username Anmol_Codes profile of GitHub with username Anmol-Baranwal profile of LinkedIn with username Anmol-Baranwal

Follow Opire for more content like this.

Top comments (41)

Collapse
 
martinbaun profile image
Martin Baun

Nice tips! Good documentation is a very important step as well. If you want a project to get traction, regarding both usage and contribution, you need to have documentation making it easy to setup and use, and to dive into the code to make changes.

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Yes.. especially if someone is looking for contributors.
The difference between a popular project and a non-popular one might be the docs. After all, it's the first thing any developer checks out so it needs to be very very good.

Most developers won't go through the trouble of contributing if the docs aren't good enough.

Better docs ⟿ better DX.

Collapse
 
neurabot profile image
Neurabot

This is good article.

Thread Thread
 
anmolbaranwal profile image
Anmol Baranwal

Thanks for reading :)

Collapse
 
depapp profile image
depa panjie purnama

hi, thanks for the great article about open-source.
anyway i've built web that can summarize your open-source contributions,
here's the full article: dev.to/depapp/showcase-your-open-s...

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Whoa! I love the concept.

Just improve the UI a little bit and add some more filtering options.. it might grab the attention of many devs. I've starred the repo to show support. Thank you for sharing :)

Collapse
 
depapp profile image
depa panjie purnama

thank you so much @anmolbaranwal for the feedback & support. really appreciate it

Collapse
 
kerkg profile image
kerkg

Great post, also yeah Δ± have a project, its called multicellular and its a graphical manuplating framework that lets you manuplate graphical assets (editing videos or images or creating them or making them) also it turns them into nested list so its much more easier to use (also we have a game engine mod that turns mlcl (abbrevation for multicellular) into a game framework) Only problem is that its not done yet (still working on the core services and Δ± dont have a lot of time to spare) and also some dev problems but dont worry yall Δ±ll finish it (also sorry for my potential spelling mistakes Δ±m on my phone and its hard to type here :)

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

building in public is a great option as well.

Collapse
 
kerkg profile image
kerkg

thanks

Collapse
 
robbenzo24 profile image
Rob Benzo

Nice work :D

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Thanks for reading Rob :)

Collapse
 
robbenzo24 profile image
Rob Benzo

:D

Collapse
 
prakhars profile image
Prakhar Shakya

Feeling Motivated! Should I post my own opensource project here in the comments for some feedback and traction? don't wanna tread on people's personal space

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Yes, why not.. Take this chance to share it. I'm sure others will love to check it out.

Please just make sure it's open source!

Image description

Collapse
 
prakhars profile image
Prakhar Shakya

Sure, Thanks to your article I made a post here about my project yesterday.
Would appreciate any feedback.

Thread Thread
 
anmolbaranwal profile image
Anmol Baranwal

Whoa! I loved the landing page video.

I thought it would be a side project but you already have a $650k investment.. which bothers me why isn't this famous yet?

I've starred the repo and followed up on LinkedIn for support.

It is bound to grow eventually. Thank you for sharing!

Thread Thread
 
prakhars profile image
Prakhar Shakya

Thank you for your kind words!

We've just now got funds are are planning to make some noise around this. But, as First time founders - Distribution among devs is something we're still learning and experimenting upon.

We've active on Discord as well, if you want to contribute in any manner!

Collapse
 
goldenthrust profile image
Adeniji Olajide

It is as if this is for me. I just got motivated to grow one of my open source project: Virtual-Bank.

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Wow! Thanks for sharing.
The docs are so detailed... it receives more recognition :)

Collapse
 
buzzpy profile image
Buzzpy πŸ’‘

Great tips! Saving for the Dev Encyclopedia project! 🐳

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

It has already crossed 250 stars, so it will only grow exponentially...
It's an awesome project πŸ‘. If anyone's interested, here’s the repo.

Collapse
 
nevodavid profile image
Nevo David

You can also get some information on: gitroom.com

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Definitely. I'm sure many devs will be following your tips and the blogs at Gitroom.
Thanks for sharing πŸ™Œ

Collapse
 
fernandezbaptiste profile image
Bap

great tips! πŸ‘πŸ‘πŸ‘

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Thanks for reading Bap πŸ’œ

Collapse
 
the_greatbonnie profile image
Bonnie

Well-written article.

Thanks for sharing, Anmol.

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

Thanks for reading Bonnie. Appreciate your support πŸ™Œ