ProtoSchool
Interactive tutorials on decentralized web protocols
Helia Migration

We are migrating Protoschool from the deprecated `js-ipfs`` to `Helia` and the site is not currently be stable.

Please monitor https://github.com/SgtPooki/proto.school2 for progress.

Contribute to the Community

ProtoSchool is a community-driven open source project dedicated to making it easy to get started with decentralized web technologies. We accomplish this by creating interactive tutorials and hosting community learning events.

Ways to contribute

ProtoSchool depends on contributors to build tutorials, organize local events, improve our existing tutorials and documentation, and answer community questions. Whether you're an experienced DApp developer or a curious learner just getting started with decentralized web concepts, there are plenty of ways for you to pitch in.

Host local events

ProtoSchool events around the world provide an opportunity for learners to explore our tutorials with guidance from local mentors at a variety of conferences and Meetups. Anyone can host a ProtoSchool workshop, and we provide tools and tips for organizing events that are fun and welcoming for everyone.

Learn more about hosting local ProtoSchool events.

Build interactive tutorials

Our interactive tutorials are the heart of our educational mission. Each browser-based tutorial consists of lessons of increasing difficulty, often presenting the learner with JavaScript coding challenges or multiple-choice quizzes to apply the learning. Our boilerplates make it easy to build new tutorials, and you can create text-based or multiple-choice lessons without any coding background. To build coding challenges, you'll need to use JavaScript to create validation code.

Learn more about how you can help to propose, build, and improve our interactive tutorials.

Share your questions and feedback

One of the most helpful things you can do to help, regardless of your coding background or experience with the decentralized web, is to let us know when a lesson or tutorial is confusing, or when the functionality of the website could be improved. There's a helpful link at the bottom of every lesson to make it easy to log an issue in our website repo.

Answer learner questions

Our issue queue includes many questions raised by learners when they get stuck, ranging from beginner to advanced. In some cases, the best way to help will be to answer questions about the lesson content directly to help a user pass a lesson. In others, it will be to submit a pull request to make the explanations or instructions in a tutorial more clear.

Improve our tutorials and user experience

Our issue queue highlights challenges with both tutorial content and learner experience (underlying website functionality). While our core team is focused on tackling the highest priority issues, we always welcome new contributors and pull requests. Before starting in on a small task, please make sure no one else is assigned to the issue in GitHub. For larger issues and those where multiple approaches to the problem are apparent, please add a comment to the issue you'd like to tackle so we can share any helpful context before you get to work.

Collaborating on GitHub

Most of our work and communication uses GitHub, a collaborative tool for code-based projects. However, you don't need coding skills to contribute to the ProtoSchool community! When you ask questions or share feedback, you'll do it by creating an issue. You can format the text in your issues using Markdown, the same easy-to-use styling syntax that we use when building our tutorials. If you'd like to help out by fixing a typo or suggesting more beginner-friendly wording for a confusing lesson, you can do it by submitting a Pull Request. GitHub's Hello World guide is a great place to learn about essentials like repositories, branches, commits, and Pull Requests with no code required.

Feeling overwhelmed by GitHub while contributing to ProtoSchool? Send us a good old-fashioned email and we'll do our best to help.

Get in Touch

We use GitHub to organize ProtoSchool. The best place to get in touch with questions about event leadership and community engagement is our organizing repository, where you can open a new issue and our project maintainers will be notified and respond. If you have a new tutorial idea or suggestions for improving the ProtoSchool website or curriculum, please open an issue in the website repository. For other issues, including Code of Conduct reports, please email the project maintainers.

Subscribe to our newsletter for updates on new tutorials and site features, with an option to receive additional news and guidance for local event leaders.

Code of Conduct

We strive to make ProtoSchool a welcoming place for all community members. All community members, including organizers of local events, must abide by the Code of Conduct outlined in our organizing repository. Each local ProtoSchool workshop is also required to maintain its own Code of Conduct, which you'll find linked from our events page.