What is Skuilder?
Briefly, skuilder is a set of npm packages that provide:
- a modular and extensible architecture for interactive tutoring systems
- skeleton implementations suitable for a variety of contexts (eg: community platform, SaaS, static deployments)
- a CLI to help tie things together and scaffold applications
... Why is Skuilder?
To boldly go where no heirarchical SRS++ dev stack has gone before!
The overall vision is to simplify the production of top-tier interactive educational tech. To this end, we have some broad goals:
Improve accessibility and user onboarding
... to SRS applications by replacing complex config and canonical death spirals with simpler goals + time commitment configuration. We want our apps to immediately maximize time-on-task for learners.
Status: ✅ Core session management and time-based study flow implemented.
Encourage richer interaction
Second, we'd like to apply the paradigm to a broader set of skills than has traditionally been targeted. SRS is a proven paradigm for knowledge building, but we expect it can be taken from 'mere' retrieval into contexts with procedural and even creative aspects. The move is from a knowledge-builder to a skill-builder.
Status: ✅ Extensible card system supports custom question types, multi-dimensional performance evaluation, and compositional skill hierarchies.
Discover blended pedagogical models
We'd like to intelligently blend SRS with hierarchical knowledge graphs, dynamic difficulty matching, and other tutoring interventions. This blending should be responsive to revealed deficiencies in learner progress, and learning bottlenecks should surface automatically.
Status: ✅ Core implementation complete.
- ✅ Dual-dynamic ELO system (user + card ratings co-evolve)
- ✅ Configurable navigation strategies (prerequisites, interference avoidance, priority ordering)
- ✅ Visual authoring UI for strategy configuration
- ✅ Pipeline architecture for strategy composition
- ✅ Evolutionary orchestration (strategies automatically tune toward effectiveness)
- 🔜 Per-tag skill targeting, self-healing content, barrier detection
See the Pedagogy System doc for details.
Create an open-source Curriculum Package Manager
We aim to specify a format to declare, package, and re-use educational content.
Status: 🟡 Design phase. Static course bundling works today; package management semantics are in development.
Tech Stack
Skuilder uses the following major dependencies:
- vue@3.x + vite - for SPA frontend, reusable component libraries, and build process
- vuetify@3.x - material-ui component library and theming engine
- Apache CouchDB as server-side database, and
pouchdbas a client interface - express as backend in
- yarn workspaces - for monorepo management
This site
This is developer documentation, mainly intended for persons interested in building their own SRS / adaptive tutoring system.
Organization
The Learn section provides conceptual background on the architecture and its components.
The Do section is a guided tutorial. Open it side-by-side with your terminal, IDE, or claude-code.
Caveat and Working Assumption
This documentation is both in-progress and not intended to be fully comprehensive.
The project's modular components require a little cajoling to work together in different contexts (eg, static-site vs live backend, standalone course vs course development platform). This site focuses on standalone courses built for static deployment and browser-local user data, as described in the quickstart document.
General information should be reliable, but specifics like "foo must be exported from bar" may apply only to the assumed context.
Contributing
External collaboration welcome. First and foremost, run the quickstart and raise issues wherever you stub your toes.
Small PRs that present as unambiguous wins are always welcome. Before working on a major PR, consider raising the work as a github issue or being in touch through this contact form.