Didactyl: a Python-native engine for repository-based tutorials
I’ve recently released the first version of Didactyl, a Python-native engine for building repository-based, exercise-driven tutorials.
It is heavily inspired by Rustlings, but is intended for people who want to build similar tutorials around their own Python libraries, tools or codebases.
Didactyl provides the tutorial machinery:
-
repository and exercise scaffolding
-
executable checks
-
hints and supporting material
-
learner progress tracking
-
automatic invalidation when completed files change
-
a terminal interface for navigating and running exercises
The tutorial author provides the content and decides how it is organised.
The original motivation came from wanting to build a practical tutorial for a specialist scientific and engineering modelling library. Existing documentation and notebooks are useful, but I wanted something that lets learners work directly in a repository, edit real Python files and progress through checked exercises.
The project is still at an early stage, and I’m currently working on making the course structure more configurable. In particular, I want tutorial authors to be able to define which materials each exercise includes and whether explanations live alongside exercises or in a separate lesson structure.
I would be interested in feedback from Scientific Python maintainers and contributors who create training or onboarding material:
-
Would this model be useful for teaching your own project?
-
What would you need before adopting something like this?
-
How do you currently organise practical, exercise-based material?
-
Are there common workflows that a general-purpose engine should support?