March 2026 update: Improving cost controls and content sharing UX
In March we made progress on a number of initiatives, and worked on our muscle to iterate and collaborate with member communities and project partners more efficiently. The 2i2c team roadmap has helped us focus and guide these conversations. We launched a new initiative on compute tracking and quotas in partnership with the EarthScope Consortium and made progress on nbgitpuller UX. (more on that below)
Along the way, we created several more initiatives in our /initiatives repository. We've heard that initiatives are helpful to describe big chunks of improvements in upstream communities, and we'll continue developing this idea further (JupyterHub even adopted a similar process that they're working out now). We love engagement, feedback, and suggestions in these initiatives, so please keep them coming.
Here's what stood out last month...
Launching a usage quotas initiative
A big theme this year is cost monitoring and control. As part of this, we launched a new initiative to let hub administrators set compute limits (per user or per group). Computation and memory are often the biggest drivers of costs, so this project will let you do things like "Apply a memory quota of 5,000 GiB-hours over 30 days for user group A." Here's a preview of what happens if you hit that quota!
A compute quotas error message!
We're building this with EarthScope as our driving partner, many thanks to that team for funding the work and collaborating with us!
Do you care about cost monitoring and control? Reach out to April (april@2i2c.org) to discuss joining a consortium of stakeholders that can provide us guidance on this work! Or, just follow along at the initiative below.
This month
Here's some progress we and our upstream collaborators made this month.
nbgitpuller 1.3.0 brings better error UX: Jenny's contextual error handling improvements went from beta testing on community hubs to a public release from the JupyterHub team. If you use nbgitpuller to share content with students, errors now tell you what went wrong and how to fix it. Blog post ›
mystmd 1.8.2 brings interactive widgets: The Jupyter Book team released a new {anywidget} directive that lets authors embed interactive JavaScript widgets directly in MyST pages. This let's you do all kinds of interesting things with interactive data and content on a page. We collaborated on a blog post explaining some of the major new functionality. Jupyter Book blog post ›
Enabling multi-repository documentation in mystmd: We completed an initiative to refactor and improve Jupyter Book's documentation. Along the way, we made a bunch of improvements to multi-repository community documentation (like jupyterbook.org!). This is another common usage pattern for research and education communities, so we wrote up a brief guide to doing this. Jupyter Book blog post ›
What we're working on
A subset of the initiatives from our roadmap currently driving our work.
Canvas/LMS integration for the University of Toronto: We're working on improving Canvas Authentication for the University of Toronto hubs. This lets you connect a user's identity in Canvas (a common course management system) with their identity on a hub. We aim to build this in a reusable way so other institutions that use Canvas benefit from this as well. GitHub initiative ›
A CLI tool for remote execution with Binder for Project Pythia. This revitalizes and simplifies the Binder Bot tool from the Pangeo community. It helps researchers execute their computational content in a remote BinderHub environment as part of a build system (e.g., used in CI/CD pipelines to check reproducibility or provide interactive previews that require cloud resources). GitHub initiative ›
Six new initiatives on the roadmap: We opened six new initiatives in March after some community feedback. Three focus on LMS/Canvas integration (building nbgitpuller links from within Canvas, customizing resources from LMS launches, and secure autograding with otter-grader). The others target large-scale performance testing (e.g., 10k+ concurrent users), JupyterLite for lightweight community hubs, and discrete event analytics. We're not starting work on most of these yet, but using them to drive discussion and identify potential funding sources. See all initiatives ›
Shout-outs
EarthScope for continuing to be an excellent design partner on the compute quotas initiative — your early requirements and feedback are making this a better tool for everyone.
The UToronto team for their patience and partnership as we build out Canvas integration together!
Project Pythia, CIROH, and Openscapes for coordinating with us on workshops and some content migration this month.
And thanks to you all for being a part of the 2i2c community,
-- Chris and the 2i2c Team