Why Contribute to Open Source and How to in Apostrophe
Published: 2021-08-17 12:28:07

There are millions of open source projects living on GitHub; some professional, some project-based, some passion-fueled, and others just for fun. Whatever the purpose of the project, it is important that they not only exist, but flourish. The open source community is a thriving environment and is a critical component to the larger tech landscape. In 2009, when the rumblings of ApostropheCMS were beginning, we committed at that time that it would always be possible to ship great websites with the free and open-source edition of Apostrophe. So the team selected an MIT license for the core project, and the rest is history. In this post, we will briefly share our perspective on why open source matters and the top 7 ways to contribute to Apostrophe.

#Why Does Open Source Matter?
The team at Apostrophe has always recognized the significant benefits to the quality of the product and the energy created by building in the open source environment. So much so that [we wrote a manifesto] (https://apostrophecms.com/blog/why-we-are-open-source) about it and more reasons that have shaped and influence our love for open source. Much of that describes our welcomed obligation to give back to the community and why we chose to maintain most of our product in the open.

Here we want to touch upon why open source matters at a much larger scale, beyond our CMS. To that point, we will start with some of the more technical reasons. "Coding in public" holds developers to the highest quality code standard. Workarounds and temporary bridges are seen, called out, reported, and fixed, in a transparent manner, with developers taking pride in the work as a result. Anyone building with or contributing to open source code are all working towards the best possible end product, therein not only improving the project, but improving as developers themselves. Furthermore, in a time of serious hacks on a global scale, security is at the forefront of conversation around technology maintainability and sustainability. Open source provides a field where contributors can identify and help to fix security issues before such errors are used to the demise of the application.

While best in class code standards and security are primary factors in choosing open source, the cost benefits to build, scale, or develop a company, or an idea are certainly another. From enterprise organizations leaning into open source for competitive benefits and saving some cash over highly overpriced closed source solutions, to nonprofits looking for a cost effective way to amplify their message, there is much to be said about the cost efficiency of an open source solution.

Open source also matters a great deal to the millions of individual contributors around the world. Developers at all levels of experience and from various backgrounds find that participation in this community is a good way to make connections beyond the limitations of their professional, scholastic, or social networks. Be it through community engagement, volunteer opportunities or professional pathways, there are skill bases ready to be sharpened. Developers can augment career trajectories by working on their skills in real world applications, all while building a portfolio of code to share with potential employers.

##Open Source Contributions Come in Many Packages
While there are many ways to get involved in open source projects (everything from recipes to book chapters), here we are specifically speaking to OSS projects. There are two primary categories that we have broken out below. Contributions to the codebase are more technical in nature and focus on more directly improving the project itself. The second category is more community driven, benefiting other contributing and interested developers, as well as the longevity of the project.

###Contributions to the codebase
* Fix a typo
* Report a bug
* Contribute directly to the code
* Suggest a feature or enhancement
* Answer questions in the community (Discord, Discussions, Slack)
* Build an extension

###Contributions to community learning
* Host an event
* Write a How-to tutorial
* Record a video demo
* Be an advocate, start conversations
There are several other ways to become a contributor or expand your contributions. A solid resource that dives into this in more detail can be found [here from Open Source Guides] (https://opensource.guide/how-to-contribute/).

##Top 7 Ways to Contribute to Apostrophe
The above lists great ways to contribute to open source projects. Here we want to get specific on the best ways to contribute to Apostrophe.

1. **Report bugs**: Particularly with the recent launch of our latest version of Apostrophe - A3 - we have many new features to roll out, and all of this will benefit from the feedback of the community.

2. **Improve documentation**: This includes shooting up a hand to point out an error, as well as, telling us specifically where documentation may be falling short.

3. **Publish your own open source Apostrophe module**: We encourage developers that are working with Apostrophe that have solved a problem with a module of their own to submit it to the Apostrophe repository. Our submission form is now available on our [Extensions page] (https://apostrophecms.com/extensions).

4. **Review existing and create new issues**: Submit pull requests to advance an open issue further toward correction or create a new issue to raise a topic for review.

5. **Write for the community**: We want to appreciate the energy of our community with a stipend depending on technical level, length, and appropriateness for Apostrophe. Interested in sharing a written work in our program? [Reach out here for more details] (mailto:hello@apostrophecms.com). 

6. **Vote and comment on what's on the roadmap**: We know that there are many sites that rely on Apostrophe, so we do our best to prioritize what comes next and roll out releases according to the greatest need. [Voices in the roadmap] (https://portal.productboard.com/apostrophecms/1-product-roadmap/tabs/2-planned) help us understand what is important to everyone.

7. **Plan an event**: Online or in-person, getting together to talk about Apostrophe, what could be better?! We're happy to support your endeavors with swag to give away, sponsorship, or even Zoom drop-ins from Apostrophe team engineers. [Let us know what you’re planning] (mailto:hello@apostrophecms.com) and we’ll send you some support.

However you want to be a contributing member to Apostrophe, our code is always open (literally, that's the whole point). Alex, co-founder of Apostrophe may have said it best:

*“If you've ever tried the demo, fired up a sandbox project in your development environment, submitted a bug report or PR, said hi in our Discord server, reached out about partnership opportunities, or interacted with ApostropheCMS or our team in any way over the years - thank you. The energy from the development community and our ecosystem of partners is a huge part of what keeps propelling us forward into new territory.”*

##Your involvement matters
Whether you are preparing for your first contribution, or making another one of many, your involvement matters. Apostrophe has come a long way since deciding to open source our software and that is because of the community that has rallied around us. We share this with all other open source projects, an unyielding gratitude to all of those who have come and left their individual mark onto something much larger. We see no end in sight for Apostrophe and all the other great projects in the ecosystem.

##Ready to contribute to Apostrophe?
Review complete documentation on [how to contribute to Apostrophe ⇢] (https://github.com/apostrophecms/.github/blob/main/CONTRIBUTING.md)
Go straight to [Apostrophe documentation ⇢] (https://v3.docs.apostrophecms.org/)
Connect with us in [Discord ⇢] (http://chat.apostrophecms.org/) and [GitHub Discussions ⇢] (https://github.com/apostrophecms/apostrophe/discussions)
 
*Photo included in header image by [Walkator] (https://unsplash.com/@walkator?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on Unsplash.*