Learn Holochain
Welcome to Learn Holochain! This guide is an implementation of the Open Holochain Curriculum, a self-directed, self-paced, free online course designed to help you learn Holochain development.
What is Holochain?
Holochain is a framework for building distributed applications that doesn’t rely on centralized servers or global consensus blockchains. Instead, it uses an agent-centric approach where each participant maintains their own chain of cryptographically signed records, while a distributed hash table (DHT) enables data sharing and validation across the network.
Prerequisites
This curriculum assumes you have:
- Basic familiarity with JavaScript
- Some experience with Rust programming
- Comfort with command-line tools
- Understanding of basic programming concepts
If you need to brush up on Rust, these resources can help:
- Chapters 1–11 in the Rust Book
- Leetcode problems
- Rust on Exercism
Learning Path
This curriculum is organized around four progressive modules, each building on the skills and concepts from the previous one:
- Module 1: Actions and Entries: Learn the fundamentals of Holochain’s data model by building a joke app with CRUD operations
- Module 2: Links and Collections: Explore relationships between data by creating a blog with posts and comments
- Module 3: Testing and Validation: Implement data validation rules and tests to ensure integrity
- Module 4: Scaffolding and Signals: Learn rapid app development with scaffolding tools and real-time communication
Other Helpful Links
- Holochain Developer Discord - Join the #app-developers channel for help
- Developer Portal
- Holochain Glossary
- Programming References
How to Use This Guide
We recommend working through the modules in order. Start with Module 1 to grasp the fundamentals, then progress through each subsequent module to build your Holochain development skills.
Before diving into the modules, make sure to complete the Installation steps to set up your development environment.
Ready to begin your Holochain journey? Let’s get started!