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.

Build an Interactive Tutorial

ProtoSchool is a community-driven effort, and we rely on contributors like you to create great educational content!

ProtoSchool content is designed to introduce learners to the concepts, protocols, and tools that support the decentralized web. We're excited to add new tutorials to our collection, and we'd love your help brainstorming and building new content content about projects such as IPFS, IPLD, libp2p, Multiformats, Filecoin, and more.

Share a tutorial idea

Our guide to designing effective ProtoSchool tutorials covers the process for proposing and outlining a new tutorial with community input and explains the skills needed to build a tutorial using the ProtoSchool platform. Perhaps more importantly, it clarifies the scope of ProtoSchool and outlines some of the key elements of an effective learning experience, so that you can design the best possible tutorial for our users.

Ready to share your idea for new content? After reviewing the guide, please check out the existing tutorial proposals in the ProtoSchool issue queue. If there's a similar idea there already, join the conversation!

If you have an idea for a new tutorial that has not yet been proposed, please open an new issue so we can share feedback before you get started building.

Don't feel like you have the skills to build a tutorial yourself? Please still go ahead and share your idea!

Build a tutorial

Whether you've shared your own tutorial idea or found an existing proposal you're excited about, we'd love to have your help building it.

Our boilerplate files make it easy to build new tutorials using Markdown formatting for lesson content, and you can create text-based or multiple-choice lessons without any coding background. To build coding challenges, you'll need to create validation tests using JavaScript, a process that feels similar to creating a unit test suite which the learner must pass by implementing the correct code. Whichever lesson type you choose, our detailed instructions on building tutorials will walk you through every step of the process.

If the type of lesson you're hoping to create isn't supported by the current lesson structure, please open an issue and tell us more about the format you have in mind.

Other ways to contribute

Not ready to build a tutorial quite yet? We'd love your help improving existing tutorials, answering technical questions, making our documentation more clear, or hosting local events. Learn more about the many ways to contribute.