# JupyterHub / marimo

Notebooks you host. JupyterHub is BSD-3-Clause; marimo is Apache-2.0 — Google Colab without the hosted runtime seat.

**Replaces:** Google Colab

**Tier:** Medium

## Problem

Google Colab is a hosted notebook runtime. You wanted kernels, users, and a notebook file on hardware you control. JupyterHub is BSD-3-Clause (jupyterhub/jupyterhub; last push 24 Oct 2026) — a multi-user server that spawns Jupyter notebook servers. marimo is Apache-2.0 (marimo-team/marimo; last push 25 Oct 2026) — a reactive Python notebook stored as a script. JupyterLab is BSD-3-Clause if the job is the IDE JupyterHub can spawn. This is not Colab's every GPU SKU, Drive mount, or hosted runtime. A research Q&A notebook stays on /replace/notebooklm (SurfSense).

## Stack

- [JupyterHub](https://jupyterhub.readthedocs.io) — BSD-3-Clause multi-user notebook server — the published Colab path
- [marimo](https://marimo.io) — Apache-2.0 reactive Python notebook

## Estimated SaaS cost saved

| You stop paying | Typical / year | Self-host instead |
|---|---:|---|
| Google Colab / hosted notebook (small team) | $1,200 | JupyterHub or marimo + a volume |

**About $1,200 / year** on a small team, before you count lock-in.

## Deploy on Railway

Placeholder: JupyterHub (proxy plus a spawner) or marimo plus a volume for notebooks. Bind HTTP to 0.0.0.0:$PORT. No one-click template in this repo yet — Start on Railway. Cited research stays on /stacks/surfsense-research.

[Start on Railway](https://c17.io/go/railway/jupyterhub-notebooks?from=%2Fstacks%2Fjupyterhub-notebooks.md)

[SurfSense if this is a research Q&A notebook, not a data-science kernel](https://c17.io/stacks/surfsense-research)

## AGENT_PROMPT

```
Replace Google Colab with JupyterHub (preferred) or marimo (https://jupyterhub.readthedocs.io / https://marimo.io).

- Official docs. Persist notebooks on a volume. Create one user and one notebook. Do not claim Colab GPUs, Drive mounts, or hosted runtimes.
- marimo if the job is a reactive Python file. JupyterLab is the IDE JupyterHub can spawn. Research Q&A stays on /stacks/surfsense-research.
- Write AGENT_PROMPT.md.
```

## FAQ

### JupyterHub or marimo?

JupyterHub if you want the published Colab-shaped multi-user server (the path). marimo if you want that reactive Python file — /compare/jupyterhub-vs-marimo.

### Is this NotebookLM?

No. Cited research stays on /replace/notebooklm (SurfSense). This page is a data-science kernel.

### Are these free?

JupyterHub and JupyterLab are BSD-3-Clause. marimo is Apache-2.0. You pay hosting and any GPUs you attach. Template users never pay c17.

Source: https://c17.io/stacks/jupyterhub-notebooks
