# Contribute to IPFS
So you want to contribute to IPFS and the ecosystem? Here is a quick listing of things we need help with and how you can get started. Even if what you want to do is not listed here, we probably accept contributions for it!
# Code
IPFS and its sibling-projects are big, with lots of code written in multiple languages. We always need help writing and maintaining code, but it can be daunting to just jump in. We use the label Help Wanted
on features or bugfixes that people can help out with. They are an excellent place for you
to start contributing code.
The biggest and most active repositories we have today are:
- https://github.com/ipfs/go-ipfs (opens new window)
- https://github.com/ipfs/js-ipfs (opens new window)
- https://github.com/libp2p/go-libp2p (opens new window)
- https://github.com/libp2p/js-libp2p (opens new window)
If you want to start contributing to the core of IPFS, those repositories are a great place to start. But the Help Wanted
label exists in all of our repositories across the GitHub organizations
IPFS (opens new window), libp2p (opens new window), IPLD (opens new window), and Multiformats (opens new window).
# Documentation
Again, IPFS is a huge project and undertaking. With lots of code comes the need for lots of good documentation! However, we need a lot more help to write the awesome docs the project needs. If writing technical documentation is your area, we’d absolutely love your help!
The best place to get started is by looking through the GitHub readme and issues at https://github.com/ipfs/ipfs-docs (opens new window). If you'd like to jump straight in, check the docs repo for issues labeled Help Wanted
(opens new window).
# Support
IPFS already has lots of users and curious people experimenting and using IPFS in their applications. These users sometimes get stuck or have questions that need answering. If you’ve contributed something with code or documentation, chances are that you can probably help a lot of people with their questions.
We do most support via the forum we have at https://discuss.ipfs.io/ (opens new window).
# Testing
We’re continuously improving IPFS every day, but mistakes can happen and we could release something that doesn’t work as well as it should — or simply doesn't work at all! If you like to dig into edge-cases or write testing scenarios, wrangling our testing infrastructure could be the job for you.
We work on continuous-integration tools at https://github.com/ipfs/jenkins (opens new window) and plan larger-scale tests at https://github.com/ipfs/kubernetes-ipfs (opens new window).
# UX and visual design
We have many design needs, but only a small team of visual and UX designers who divide their time between IPFS-related projects and other work here. That means there are a number of issues which could use your design contributions. As home to IPFS Desktop and Companion, the ipfs-gui (opens new window) repo is a good place to look for opportunities to help move our design work forward. Simply filter by the label that best fits your skillset, such as design-visual (opens new window) or design-ux (opens new window).
# Issues/triaging
With lots of code come lots of Github Issues. We need YOU to help with organizing all of this in some manner. We don’t yet have any proper resources for getting started with this. Get in touch if you can contribute a sense of extreme organization!
We currently don't have a single place for this. If you'd like to start it, please let us know.
# Community
If interacting with people is your favorite thing to do in this world, IPFS and co. are always happy to help you organize events and/or workshops to teach IPFS.
We have a repository (https://github.com/ipfs/community (opens new window)) for organizing community events and would love your help to have meetups in more locations or make the existing ones more regular.
# Applications
IPFS is designed for others to build applications around it! Building applications and services using IPFS is an excellent way to find use cases where IPFS doesn’t yet do a perfect job or uncover bugs and inefficiencies.
Get started by looking at our awesome-ipfs list. Build anything you think is missing! If you're unsure about something, please create an issue to get help or feedback on your specific problem/idea.
- https://github.com/ipfs/awesome-ipfs (opens new window)
- https://github.com/ipfs/notes (opens new window)
- https://github.com/ipfs/apps (opens new window)
- https://discuss.ipfs.io/ (opens new window)
# Protocol design
IPFS is ultimately about building better protocols, and we always welcome ideas and feedback on how to improve those protocols. Post feedback, issues, and proposals in the specs
projects in our Github organizations or in ipfs/notes
(opens new window).
- https://github.com/ipfs/specs (opens new window)
- https://github.com/libp2p/specs (opens new window)
- https://github.com/ipld/specs (opens new window)
- https://github.com/multiformats/specs (opens new window)
- https://github.com/ipfs/notes (opens new window)
# Research
Finally, we see Protocol Labs as a research lab, where YOUR ideas can become technologies that have a real impact on the world. If you're interested in contributing to our research, please reach out to [email protected] or [email protected] for more information. Include what your interests are so we can make sure you get to work on something fun and valuable.