Metering notebooks by the minute
How app.nz notebooks run free in the browser or on metered CPU/GPU sessions with pricing from the same endpoint, idle stop, balance stop, and durable session rows.
Listen to this article
On-device voiceUses the voice built into your browser; no article text leaves this page.
Audio narration is not supported by this browser.
Hosted notebooks look like an interactive product, but operationally they are timed cloud sessions. A user starts a marimo notebook on a CPU or GPU machine, app.nz records the session, meters it by minute, and stops it when it is idle or out of balance.
That is the difference between "rent a GPU" and "use a notebook without fear."
Session rows
A notebook session records:
- user,
- notebook,
- provider,
- machine type,
- status,
- endpoint,
- created time,
- ready time,
- last active time,
- stopped time.
The machine type maps to a price. The session timestamps map to billable minutes.
Pricing source
The notebook pricing endpoint returns the available machines and credits-per-minute. CPU machines have different markup economics than GPU pods because the base prices are much smaller. The UI uses the same endpoint the meter uses, so the picker and invoice do not drift.
Users should not need a spreadsheet to understand a session. The picker should say what it costs before the machine starts.
Idle stop
Idle stop is the safety feature. If a notebook has not been active for the configured window, app.nz stops the session and terminates the machine. The default is designed to avoid weekend burn.
Activity is not just "the browser is open." The server needs a durable last-active signal from real session use. Otherwise a closed laptop can leave a GPU running.
Balance stop
The meter also checks credit balance. If balance is insufficient, the session stops. That protects the user and the platform.
This is one reason metering is in the server, not only in the UI. A hidden tab cannot be trusted to stop paid infrastructure.
Browser versus cloud runtime
app.nz notebooks can run examples in the browser with Pyodide or run on cloud machines with marimo. The browser path is free because compute is local. The cloud path is billed because it provisions infrastructure.
That distinction should stay visible. A user exploring a CSV should not accidentally start a GPU. A user who needs CUDA should be able to choose one deliberately.
Why marimo helps
marimo notebooks are Python files, so they are easier to store, diff, and run outside the platform. That matches app.nz's broader philosophy: generated artifacts should remain normal files when possible.
The platform adds session lifecycle, datasets, auth, and billing. It should not trap the notebook itself.