How can you contribute to the Cosmos Ecosystem
Cosmos is an ever-expanding ecosystem of interconnected apps and services that is built for a decentralized future. Cosmos connects independent parallel blockchains, each powered by a BFT consensus algorithm, by using IBC, the Inter-Blockchain Communication protocol. This interconnected magic enables the sharing of assets, such as tokens and other data, between independently running blockchains.
With Cosmos open source projects, developers of all backgrounds can quickly build customized blockchains that offer scalability, security, performance, and flexibility. Anyone can contribute to the Cosmos ecosystem. No matter what your experience level is, there’s a place for you in the Cosmos network.
One of the main advantages with open source projects is that you can step into a group and safely say “I don’t know.” Members of the friendly open source Cosmos ecosystem community can offer you guidance. You learn with another person, even though you might be worlds apart.
Why Contribute to the Cosmos Ecosystem?
Contributing to open source projects has many rewards. Here are the top five reasons you should consider contributing to the Cosmos ecosystem:
1. Real-world experience: Cosmos is one of the largest open source blockchain projects. The Cosmos ecosystem is continually expanding and is currently host to more than 250 open source projects . Cosmos is being used for a variety of innovative applications in daily life. For example: CHAI , the payment app by Terra and Uptick , the decentralized mobile NFT marketplace dapp built on IRISnet. When you contribute to a large open source project like Cosmos, you get to know how things work in the technical domain, gain knowledge about technical internal complex systems, and help strengthen your understanding of the project. Also, by working on an open source project that is used by the community, you’re improving the quality of work for everyone.
2. Write cleaner and better code: Open source guidelines give you a great head start so that you can learn how to write “clean code” while you contribute to the code base. Cosmos core team maintainers establish guidelines and best practices so that the code is readable, maintainable, well organized, and contains all the required tests. Being open, the source code is exposed to the world. When you know that anyone anywhere can access open source code, you automatically focus on making the code easy to understand, easy to change, and easy to maintain. Your open source community holds you to higher standards while helping you achieve them.
3. Network with the community: Open source projects let you build meaningful relationships and achieve quality results by working with other developers. The Cosmos ecosystem community is the core of our software projects, which makes contributing to Cosmos projects an amazing experience. By contributing to the code base and ecosystem growth, you are opening yourself to be mentored by industry experts and you get to meet and engage with awesome community members. As a fellow Cosmonaut, you can grow your network, inspire others, guide those who follow, learn from each other, and teach each other.
4. Build an outstanding portfolio: Whether it’s learning to design, code, improve user interface design, write tests, documentation, moderate local communities, translations, increase the awareness about cosmos via social media or organize an event, you can learn these skills and grow your portfolio by working on open source projects and engaging with the community. Your contributions affirm your interests, skills, motivation, show others how you approach solutions for complex problems and deal with working together with a worldwide remote and decentralized team.
5. Gain recognition: There are a lot more perks available to Cosmonauts. The Cosmos ecosystem community recognizes value, and lets you earn amazing swag for your valuable input. This ongoing support and recognition will enrich your experiences as a Cosmonaut and inspire you to continue your journey.
Ways to Contribute to the Cosmos Ecosystem
There is a place for everyone in the Cosmos ecosystem. You can help a project by contributing in various ways:
1. Write code and submit patches: The Cosmos code base is open source so all the code is hosted in the open world on GitHub. Your first step is to get started. GitHub issues in many repositories are labeled as good first issues. Good first issues are often mentored bugs, so if you are stuck on any step, a code maintainer can help you. By using asynchronous communication, you learn about the code and best practices as you work. Always review the contributing.md file in any repository before you jump in. After you become comfortable working on good first issues, you can jump on trivial bugs. You can also help improve tooling, testing, and automating the project setup.
- Starport codebase and docs — github.com/tendermint/starport
- Cosmos SDK codebase and docs — github.com/cosmos/cosmos-sdk
- Tendermint Core — github.com/tendermint/tendermint
- Useful Cosmos SDK resources — github.com/cosmos/awesome
- Cosmos Glossary — cosmos.network/glossary
2. Stake your assets or become a validator: Validators play an important role in the Cosmos ecosystem and secure the network. The first way to learn about validators is to carefully select your validator when you stake your ATOM tokens. Staking is the process of locking up a digital asset (ATOM in the case of the Cosmos Hub) to provide economic security for a public blockchain in return for staking rewards. When you stake your ATOM, you help secure the Cosmos Hub and you earn rewards. See these resources to learn more about validators:
- Cosmos Network website — FAQ What is a validator ?
- Cosmos Hub docs — Validators Overview and Validator FAQ
If you have a keen interest in network matters and are looking forward to becoming a validator, you can join us in our Forum.
3. Contribute to docs and tutorials: You can always help improve the documentation and tutorials. When you build blockchains and apps with the Cosmos SDK and Starport, documentation is tremendously important. As with all active open source projects, project documentation and tutorials benefit from community engagement. When you see an error, simply file an issue and submit a PR. Fixing typos and adding a clarifying paragraph here or there is extremely appreciated.
- Tendermint Core Documentation
- Cosmos SDK Documentation
- Contributing to Cosmos SDK Documentation
- Starport Documentation
- Starport codebase
- Cosmos SDK Tutorials
- Contributing to Cosmos SDK Tutorials
4. Propose, suggest changes and support to Cosmos roadmap: If you help us make the cosmos roadmap better or contribute in a non-trivial way to support the cosmos roadmap, we will recognize your valuable contributions and can incentivize you through our grant program. Read more about the Intercahin foundation program here.
5. Organize events in your city or country: You can help by organizing events and broadening the Cosmos community. You can evangelize and present talks that are relevant to Cosmos products.
Want to host your own Cosmos event?
We can help you start a meetup, host a hackathon, and more. For more information and details, fill out the google form.
6. User experience design: As a Cosmos user, you are in a good position to provide feedback on your user journey. Always follow the guidelines of the repo for the code you are using. For example, for Starport, see Providing feedback for details on how you can best provide actionable feedback.
7. Community Support: The Cosmos Community page provides resources about places users can visit, post questions, and seek help about Cosmos and Starport. By engaging with the community, you can get answers from your fellow Cosmonauts. Getting started on your Cosmonaut journey is the first step. And, to take that first step, you don’t need to be a programming expert.
How to Ask for Help?
1. Choose the right place to ask your questions: Every community follows different norms when it comes to communication. Community members and code maintainers, tune into different communication channels including Discord, Telegram, Reddit and dedicated topic-based Slack channels. For the Cosmos ecosystem, you can find answers to many technical questions in relevant channels in the Cosmos Community on Discord . After you find the right channel, don’t just barge in! Take a look around to understand how a particular community communicates before you ask for help. By following established community communication protocols, developers can focus on new questions while allowing newer community members to find answers to questions that have already been asked and answered. To do your homework properly, do a web search and look at the repo issues. Following best practices in the Cosmos ecosystem also protects resources while preventing antagonising the regulars. Many web search results include links to sites like Stack Overflow and Github that provide excellent sources of programming help.
2. Practice the 15-minute rule: Take 15 minutes to solve the problem any way you can. However, if you don’t have an answer after 15 minutes, you must ask someone. Because if you keep escalating bugs without even trying to figure it out, you are never going to learn how to solve problems on your own for yourself. When you take time to really research the problem, at least you’re armed with the full context of the problem at hand.
3. Details matter, explain your goal and results: For all questions, be sure to explain exactly what you are trying to do. Give details on your ‘big-picture’ goal. Be sure to clarify the problem you’re experiencing. For example, instead of saying “I tried to run XYZ and it didn’t work. Please help!” take the time to provide details, commands, environment, and other information that will help others understand your predicament. Incomplete questions are not helpful and you won’t get any responses. The responses you do receive are likely to be unhelpful. If you’re very lucky, someone might say “I can’t help you unless you give more details.” The Cosmos ecosystem is composed of many experienced and helpful people. Be sure to provide enough information so they are able to help you. A helpful tip is to avoid the phrase “I think,” instead, share what you know to be true.
4. Share what you have already tried: When you ask for help, be prepared to provide details on the ‘solutions’ that you’ve already tried. Share your code, error messages, and the exact commands you’re using. Conduct a web search on the particular error messages you encounter to learn from those who went before you. Even if you don’t understand the error message, someone else might know the cause and actions that will fix your issue. Be sure to share the actions you have already attempted. Be sure to say if you have already tried using a particular data structure instead of a different structure. Mention that you tried looking for your question on Stack Overflow. Provide links to the docs that you reviewed and ask questions about the particular section you didn’t understand. Providing your user journey and the history of your problem is essential to finding answers on how you can solve your predicament. Your problem can be someone else’s solution. Thank you for taking the time to help those who follow.
5. Say thanks and give feedback: Always come back and say ‘thank you’ to let people know if their advice helped you. The most important payback for giving out free help is to know it matters. By letting people know their solution helped you, you affirm their efforts. Your acknowledgement of their specific help is a fine reward. Sharing knowledge and giving thanks is also an investment in goodwill. Community members who receive recognition are more likely to be there for you next time if you are one of the few who say “Thank you for your help. This fix makes everything work perfectly. YAY!”. It would be really great if you can help others too, it will help in growing the community and giving back to the community is always a great effort.
So what are you waiting for?!
Bring out the Cosmonaut inside you!!
If you still have any doubts, let me help you get started! Feel free to ask me or anyone on Discord a question. The Cosmos ecosystem community is friendly, helpful, and supportive. I’m Sonia, a proud member of the Tendermint Ecosystem Development team. You can also find me on Twitter and LinkedIn!