Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Rebuilding the Pythia Gallery on shared MyST tooling

A few infrastructure improvements from the 2026 Cookoff

2i2c

The Project Pythia Cookbook Gallery is a central resource that Pythia uses to show off all the cookbooks its projects have created. Under the hood, it uses the MyST Document Engine to execute and build each cookbook.

The redesigned Cookbook Gallery, with a search bar and consistent cards.

The redesigned Cookbook Gallery, with a search bar and consistent cards.

Previously, the gallery ran on a collection of custom scripts and MyST plugins. This year at the 2026 Pythia Cookoff at NCAR, we used some hackathon time to rebuild it on upstream tooling that is more sustainable and re-usable across projects. Here’s a quick summary of what we did:

The old gallery ran on a custom MyST extension that collected cookbook metadata from the Pythia organization and displayed it in a gallery of images. We decided to improve the UI and UX of this experience, and turn it into a Jupyter Book plugin in the new myst-contrib GitHub organization.

You can find the new myst-listing plugin here. It defines an experimental three-step process for collecting sources of content and information, transforming them by adding extra metadata, and displaying them in a variety of output styles. This is an experimental plugin, but we hope others can start to try it out and make improvements as they go along.

Along the way, we switched the cookbooks gallery to use this new myst-listing plugin. To do this, we removed all of the old custom plugin code and replaced it with a lightweight MyST plugin that simply collects cookbook metadata from each repository, and uses the myst-listing plugin to render it into a nice gallery. We added the searchfilter plugin as well to get a nice search bar at the top.

Check out cookbooks.projectpythia.org and the PR that implements this: ProjectPythia/cookbook-gallery#33.

A new blog setup with the listing plugin

We also decided to re-build the blog on the same myst-listing plugin. This was a way to test whether the plugin we’d created above could generalize to a new kind of use-case. The blog also used to be a collection of custom scripts and plugin code, and it’s now replaced with a simple call to :::{listing}. Check out the PR that implements this: ProjectPythia/projectpythia.github.io#582.

Executing cookbooks with remote kernels on Binder

The week also gave us a reason to push on clinder, our BinderHub CLI and GitHub Action for executing cookbooks with a remote kernel in the cloud. It lets a MyST or Jupyter Book build execute its notebooks on mybinder.org in CI instead of the runner, which is a nice fit for cookbook-style content. We added a documentation site, preview deploys, and tests on pull requests, so it’s easier to pick up for your own builds.

You can find a PR demoing this new functionality in pythia-foundations PR #655, where the build comment links to a working preview of the book executed on Binder.

Learn More