DEV Community

Cover image for Why Discord Is a Must-Have for OSS
Matej Bačo for Appwrite

Posted on

Why Discord Is a Must-Have for OSS

Appwrite is an OSS company, and we share as much as possible with our community. Since transparency is both a value and a mindset for us, we share articles like these to provide knowledge that might help developers all around the world.

Today we will focus on the topic of handling community around your open-source project outside of GitHub.

Don’t get me wrong, the GitHub issue and discussion section is a great place for keeping track of topics, but we noticed people consider these too “official”. From our experience, we see questions about failing installations more often on Discord than on GitHub. The reason behind that is that people think they must have done something wrong, and don't want to “spam” GitHub with issues that will be resolved with 1 comment. Instead, they visit Discord and freely chat about the problem they encountered.

Before looking at the advantages of the Discord community for an open-source project, let’s quickly talk about Discord!

🤖 What Is Discord?

Discord is a place for any kind of community to chat or talk. Many different communities use Discord nowadays, such as school classes, gaming communities, companies, or even your group of close friends. You can be a member of one or many communities, and set up a different profile for each of them.

Open-source projects love Discord, because of its nature of being interactive. With Discord live chat, people tend to expect answers within a few hours or minutes, which gives them a great opportunity to ask questions about a bug, specific feature, or approach to a problem using your project. Without Discord, many developers might leave your project frustrated from a mistake they made instead of asking for help on GitHub.

With a clear picture of what Discord is, let’s jump into the reasons why developers and maintainers tend to use the Discord server.

💭 Collect Feedback

Feedback is an important, if not the most important tool for an open-source project. This comes down to the reason you decided to make a project open-source! OSS allows others to not only use it but also help you improve the quality of the project by requesting or adding features they are interested in.

As mentioned earlier, GitHub discussions would be the best place for keeping track of feedback about a project, but developers find these channels too formal for pitching a feature they need for their project. With Discord, the maintainer can set up a dedicated room called #ideas and let developers freely chat about any idea they have. Some will be already implemented, and some will be out of the scope of your project... There will also be some ideas that don’t receive a lot of attention, meaning the rest of the community doesn't find them too useful. On the other hand, if an idea receives dozens of reactions, you can easily assume this feature would be appreciated by many developers. A lot of the tiny features in Appwrite come from our Discord ideas channel, and they make the project way more interesting.

🙌 Provide Support

With every new attempt to use your tool, developers can face a new issue, an undocumented edge case, or even an issue with their specific hardware. All of these are close to impossible for developers to debug on their own, as they are not familiar with your source code.

What happens next? Developer hops into your Discord server, look for a #support room and ask the question. You can get an enormous amount of positive feedback (and GitHub stars 😈) if you provide quick support to a developer. You also prevent a new developer from losing interest in your project without actually trying it, because some bug didn't let them. Last but not least, reading “Thank you” or “You are great” from time to time feels amazing!

As your community grows, you will notice that some community members that were asking questions a few weeks ago are now answering the questions of newcomers. These are usually people that really enjoyed using your project, and want to stick with it. There are so many reasons why people do this, and why you should value those, it deserves its own article! The most common reason to provide such support is to improve their own skill with your project, as providing support forces you to think about problems you likely never encountered before. On Appwrite Discord, we have a few of these, and if I see them having any questions, I instantly jump in to help them. In the end, that is the least I can do to show appreciation for their hard work.

👨‍💻 Hire New Maintainers

People who actively chat on your Discord should already be considered contributors! They know (and use) your project, they see many use-cases, they hear a bunch of feedback, and they perhaps even created a PR or two for you. If at any point your budget allows you to hire a maintainer, your active community members should be the first developers you consider. They not only share the same passion for the project as you, but they are also more likely to quickly get familiar with the source code. Fun fact, all of the early Appwrite hires were active contributors 🤯

📃 Share Development Updates

Again, going back to the roots of the mindset behind an open-source project, you want to be as transparent as possible, to get feedback for features you are working on. With no interest shown by the community in the feature you are developing, you might as well consider delaying it for another release.

Discord is a great channel for sharing those updates, as it automatically sends a notification to members. These development notes show that you actively work on a project, allow you to get feedback even before a feature is implemented, and help with building interest in your next release. At Appwrite, we started doing weekly community updates some time ago, and we already received a lot of positive feedback for doing it.

🧪 Find Alpha Testers

Developers love new features! By preparing an alpha build and sharing it with your community, you can easily get testers for your next release. This helps you prevent bugs before releasing a big feature and keep your application stable for production use. It also helps you fine-tune the feature, while still having the option to do breaking changes. We at Appwrite hosted many alpha tests for big features, such as Database refactor and Cloud Functions Gen-2.

📈 New KPIs

In an open-source project that wants to get funds for growth, the main strategy is to find an investor. Having a Discord community can provide a lot of insightful metrics to share with a potential investor for evaluation of your project. Of course, it’s not as simple as showing cool numbers, but having a gradually increasing amount of new members, active members or messages can all be key performance indicators for the investor to make a decision. Having an active Discord community can also help you fill in a slide or two with some heart-warming feedback messages to show proper validation of your project in the real world.

👨‍🎓 Conclusion

A Discord server can be a really powerful communication channel for any open-source project if used wisely. Discord server can help with collecting feedback, providing quick support, building new contributor relationships, getting releases tested, and building a community in general. With all advantages, the Discord server can provide, keep in mind that some new problems can arise. For us, the biggest challenge was to actively engage with our GitHub issues alongside Discord. We had to start requesting people to open GitHub issues for problems they report on Discord, otherwise, we would forget about them.

📚 Learn More

Appwrite is an open-source Backend-as-a-Service (BaaS), packaged as a set of Docker microservices, to give developers of any background the tools necessary to build modern apps quickly and securely. Chat with us on Discord, or learn more about Appwrite:

Discussion (2)

Collapse
andrewbaisden profile image
Andrew Baisden

Discord is amazing! I much prefer it to Slack.

Collapse
to_articles profile image
Articles to read online

discord online version: discord.onl/web/