Publish a course

Push it to GitHub – learners add it by its repository, and the marketplace lists it.

Share it

Push the course to a public GitHub repository. Anyone can then install it:

npx dojofoo add owner/repository

Get listed

There's nothing to submit. The first time anyone installs a public GitHub course, the marketplace fetches its manifest from GitHub and validates it. The course starts in trial – installable by its repository, not listed yet – and is listed once it's reviewed and its security checks pass. Its page then shows installs and how far learners get.

The checks run again on every version. Code that runs on install – a postinstall script, mise hooks – earns a warning, and learners are asked before installing; a script piped from the internet fails, and the course can't be installed until it's fixed.

Fill in author, language, framework and tags in the manifest: they're the marketplace's filters.

Stay unlisted

For starters, test fixtures and private work that should stay installable but unlisted:

private: true

As in a package.json, private keeps it off the registry; anyone can still install it from GitHub. Older courses spell it marketplace: false, which still works.

Set it on a listed course and the listing goes the next time someone installs the course from GitHub.

Release an update

Push to the repository. Learners get it with npx dojofoo update <name>; raise version so they can tell.

Edit on GitHub