Pinned
We’re proud to share a public roadmap for 2i2c's team - it's a step toward more participatory, transparent open development with our member and upstream communities. 👉 2i2c.org/blog/public-...
2i2c
@2i2c.org
A non-profit dedicated to helping communities create and share knowledge with open infrastructure for interactive computing. We work in the open, follow along with our blog here 👉 https://2i2c.org/blog
365 followers4 following133 posts
Pinned
We’re proud to share a public roadmap for 2i2c's team - it's a step toward more participatory, transparent open development with our member and upstream communities. 👉 2i2c.org/blog/public-...
A new Linux kernel zero-day called CopyFail lets code break out of containers onto the host. We took a close look at our community hubs, confirmed they're likely safe, and added another layer of protection just in case. Here's a post about what we learned 👉 2i2c.org/blog/copyfai...
We took a few extra measures on our hubs, like deploying copyfail-ebpf-k8s (thanks iwanhae!) across our hubs. It blocks the specific kernel feature CopyFail depends on.
We're sharing this writeup because we think transparency about security work matters. If you run JupyterHub on Kubernetes, this might save you some investigation time. 👉 2i2c.org/blog/copyfai...
A new Linux kernel zero-day called CopyFail lets code break out of containers onto the host. We took a close look at our community hubs, confirmed they're likely safe, and added another layer of protection just in case. Here's a post about what we learned 👉 2i2c.org/blog/copyfai...
We tested the public Kubernetes proof-of-concept on a staging hub running on AWS / EKS. The exploit was unable to break out of our container. This was a good indicator, and we spent a bit of time investigating why.
It turns out JupyterHub hardening back in 2021 (for a totally different security issue) had already significantly reduced our exposure (and anybody else running z2jh.jupyter.org). A great example of how defensive work and open source can pay dividends years later!
We just contributed a JupyterHub feature that lets hub admins keep their admin powers while still using a shared password for participants (often used in workshops). 👉 2i2c.org/blog/shared-...
Hub admins can now set two passwords instead of one: a participant password and an admin password. Attendees still get a simple shared login, while organizers regain group management, the admin dashboard, and shared directory access.
As part of this work we contributed the SharedPasswordAuthenticator upstream to the JupyterHub project, check out the docs here, and thanks to MinRK for the reviews! jupyterhub.readthedocs.io/en/latest/re...
2i2c reposted
Why does 2i2c upgrade core infrastructure quickly when new versions come out? Our collaborators at NASA VEDA recently asked us this exact question. Here's how Yuvi explained it. 👉 2i2c.org/blog/why-upg...
2i2c reposted
How can open infrastructure organizations build sustainable growth models? @2i2c.org recently engaged IOI to help strengthen their business development systems and refine market strategy. Learn how:
Why does 2i2c upgrade core infrastructure quickly when new versions come out? Our collaborators at NASA VEDA recently asked us this exact question. Here's how Yuvi explained it. 👉 2i2c.org/blog/why-upg...
Of course, upgrading can break things. We've had communities hit issues in the past, and it's important to move carefully. But staying current means when security fixes drop, rollout is fast because the hard work is already done.
If you encounter a bug in popular open source software, you can often "just wait" for a fix. But someone, somewhere, has to put in the effort to make it happen. 2i2c is committed to being one of those someones! 👉 2i2c.org/blog/why-upg...
Why does 2i2c upgrade core infrastructure quickly when new versions come out? Our collaborators at NASA VEDA recently asked us this exact question. Here's how Yuvi explained it. 👉 2i2c.org/blog/why-upg...
Staying up-to-date keeps the whole ecosystem moving forward. Upgrades aren't just maintenance - they're how we drive improvements upstream in JupyterHub, Helm, and the wider open source tools we depend on.
For example: our move toward Helm 4 has driven merged PRs in JupyterHub, validated fixes still in review, and surfaced a bug being worked on in Helm itself. This only happens when users try things out and open issues and patches.
Here's a little post from Chris about work we did helping Jupyter Book deploy jupyterbook.org from a collection of github repositories with MyST: blog.jupyter.org/how-we-combi...
We're proud to support the Berkeley Institute for Data Science in joining the mybinder.org federation! This strengthens the resilience of mybinder.org and shares the load across another contributing institution! blog.jupyter.org/berkeley-ins...
We spent a bit of time updating Jupyter Book's landing page documentation, and making it more useful for communities with multiple content repositories under one domain. Here's a little post about it: 2i2c.org/blog/jupyter...
For a deeper technical dive, check out a blog post we wrote for the Jupyter Book blog here: jupyterbook.org/blog/posts/2...
The Jupyter Book and Jupyter Hub teams are hiring a community manager! This is a one-year contract to help us pioneer this critical role by improving and growing our community. Read more here, and please share and apply! blog.jupyter.org/call-for-app...
2i2c reposted
I've always admired Project Jupyter from afar and to join as a JupyterHub maintainer is definitely a LIFE GOALS achievement for me. The difference between then and now is that I better understand the power and impact of the open source community and *people*
We’re incredibly proud to announce that Jenny Wong was invited to join the JupyterHub team as a contributor and maintainer! 2i2c.org/blog/jenny-j...
We’re proud to share a public roadmap for 2i2c's team - it's a step toward more participatory, transparent open development with our member and upstream communities. 👉 2i2c.org/blog/public-...
We also want to use this to experiment with fractional co-funding, so multiple member communities can share the cost of impactful work. You can learn more about how our membership model works here: 2i2c.org/membership
This is part of our open practices: doing our work in the open, inviting feedback, and making it easier for communities to see and influence priorities. 2i2c.org/open-practices
We’re proud to share a public roadmap for 2i2c's team - it's a step toward more participatory, transparent open development with our member and upstream communities. 👉 2i2c.org/blog/public-...
Our roadmap is how we deliver the most value to our member communities - roadmap initiatives focus upstream contributions in open source to enhance infrastructure for research and education. Our roadmap is here 👉 2i2c.org/roadmap Comment on our initiatives here 👉 github.com/2i2c-org/ini...
We’re incredibly proud to announce that Jenny Wong was invited to join the JupyterHub team as a contributor and maintainer! 2i2c.org/blog/jenny-j...
We’ve enjoyed seeing Jenny bring care, follow-through, and a collaborative mindset to her upstream work. That’s what makes someone a great maintainer <3.
Huge congrats, Jenny. And thank you to the JupyterHub community for building an open, welcoming culture that creates real pathways for contributors to grow into leadership. You can learn more about JupyterHub's team here: compass.hub.jupyter.org
We’re incredibly proud to announce that Jenny Wong was invited to join the JupyterHub team as a contributor and maintainer! 2i2c.org/blog/jenny-j...
This kind of recognition comes from showing up with consistent, trusted work over time. Jenny’s contributions span nbgitpuller and grafana-dashboards, plus active participation in project meetings and community planning.
Angus just gave a FOSDEM 2026 talk on Introducing Jupyter Book 2 and why this stack matters for reusable, reproducible computational publishing. 2i2c.org/blog/fosdem-...
In short: Jupyter Book 2 (now built on the MyST Document Engine) gives communities a better path to publish and maintain computational narratives without locking content into one format or workflow.
If you want the full context, the SciPy 2025 paper is the best deep dive: proceedings.scipy.org/articles/hwc... Watch the full FOSDEM talk recording: video.fosdem.org/2026/aw1120/...
UC Berkeley's DataHub team shared error log data that helped us redesign error handling in nbgitpuller - a tool used across education and research to distribute Jupyter content via a single link. 2i2c.org/blog/nbgitpu...
Instead of showing every user the same raw git output, nbgitpuller now detects the error type and displays a targeted, human-readable message with specific steps to resolve it. The terminal log is still available - just tucked behind a toggle.
Thanks to Eric, Sean, and Balaji at UC Berkeley for sharing the data and feedback that drove these changes, and BIDS for facilitating collaborations like these. The pre-release (v1.3.0b1) is available now. Feedback welcome via GitHub issues. 2i2c.org/blog/nbgitpu...
UC Berkeley's DataHub team shared error log data that helped us redesign error handling in nbgitpuller - a tool used across education and research to distribute Jupyter content via a single link. 2i2c.org/blog/nbgitpu...
The Berkeley DataHub team shared over 2,000 error logs with us! This real-world data revealed the most common failure patterns: merge conflicts (45%), fetch errors (23%), and URL mistakes by instructors (22%). Each category needed a different solution.
We helped STRUDEL run a workshop where 30+ researchers prototyped building scientific web applications in a single day. Everyone left with a working prototype, even folks who'd never built a web app before! 2i2c.org/blog/strudel...
If you're thinking about running workshops that need pre-configured environments, this setup might be useful. Tips on using STRUDEL with AI assistants here: github.com/strudel-scie...
More details about how we put it all together in the blog post. 2i2c.org/blog/strudel...
We helped STRUDEL run a workshop where 30+ researchers prototyped building scientific web applications in a single day. Everyone left with a working prototype, even folks who'd never built a web app before! 2i2c.org/blog/strudel...
People built prototypes for real work in astrophysics, genomics, energy, water quality, and light sources. The hub gave them space to experiment without worrying about infrastructure. strudel.science/engage/news/...
What we found interesting: this shows how JupyterHub can support more than just notebooks. The same patterns we use for Jupyter environments work for modern web development tools and AI assistants too.
We helped STRUDEL run a workshop where 30+ researchers prototyped building scientific web applications in a single day. Everyone left with a working prototype, even folks who'd never built a web app before! 2i2c.org/blog/strudel...
Our goal was to provide an AI-assistant environment with zero friction. We configured a JupyterHub with VS Code for the Web and Cline (an AI coding assistant) so participants could start building with AI help immediately instead of spending hours on environment setup.
We pre-configured Cline with OpenRouter, which let the workshop team manage AI costs centrally with a shared API key. Participants got access to premium models without needing their own accounts or API setup.
Community work is infrastructure work. It’s how open source projects stay healthy, resilient, and welcoming over the long term. We're proud to share that our April (our People Lead) has joined the Jupyter Community Building Working Group! 2i2c.org/blog/april-j...
If you’re curious what the group does (and how it reports out), the charter is a great place to start: jupyter.org/governance/c... Thanks to Project Jupyter for the leadership and time that goes into community building, and for bringing more people into this work.
We helped empower CloudBank to provision and manage their own infrastructure on our shared platform. Instead of waiting on 2i2c engineers, they can now handle these changes themselves. 2i2c.org/blog/cloudba...
This is part of how we think about agency vs safety on a shared open platform, give partners control in a way that's safe for other member organizations. As a result, CloudBank can run routine Terraform changes, and they validated it by deploying a hub without 2i2c in the loop.
This is nuanced and complex, so if you'd like to learn more, see discussion about how to do this here: github.com/2i2c-org/inf...
We helped empower CloudBank to provision and manage their own infrastructure on our shared platform. Instead of waiting on 2i2c engineers, they can now handle these changes themselves. 2i2c.org/blog/cloudba...
The core fix was to move CloudBank’s Terraform state into CloudBank’s own GCP project, so access is scoped to their cluster and can’t spill over to other communities. It allows them make their own changes while still using our multi-community platform.