Skip to content

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.

This work is complete-ish.

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.

This work is complete-ish.

Discover blended pedagogical models

Third, we'd like to intelligently blend the SRS paradigm with heirarchical knowledge graphs, dynamic high-demensional dificulty sorting, and other bespoke tutoring intervtions. We'd like this blending to be responsive to revealed deficiencies in userbase progress through course materials, and we'd like these learning bottlenecks to be surfaced automaticlly. Further, we're interested in generalized A/B or marketplace mechanisms for pedagogical strategies over given curricula.

This work is in progress, with a dynamic high-dimensional difficuty sorting default pedagogy, and existing API definitions and data storage hooks for custom "ContentNavigationStrategies".

Create an open-source Curriculum Package Manager

Finally, we aim to specify a format to declare, package, and re-use educational content.

This work is in design phase, but will lean on existing mechanisms for declaring contents of serialized courses.

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 pouchdb as 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

The Do section is a guided tutorial that . Open it side-by-side with your terminal, IDE, or claude-code(-clone).

Caveat and Working Assumption

This documentation is both in-progess and also not really 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.

All "general purpose" information should be reliable, but specifics in the vein of "foo must be exported from bar" may apply to the specific assumed context.

Contributing

External collaboration welcome. First and foremost, run the quickstart and raise issues wheverver 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.