Notebook limitations
Lapis notebooks are markdown-native and intentionally narrower than full Observable notebooks or general-purpose Jupyter environments.
Supported today
Section titled “Supported today”- JavaScript, TypeScript, SQL, and dynamic markdown cells
- Explicit execution with stale-cell tracking
- DuckDB over vault files and app metadata tables
- Reactive
view(Inputs.*)inputs with downstream reruns - Tables, charts, markdown, text, images, errors, and trusted
html/svg - Static ESM imports for configured or installed packages
- Generated output persistence across reloads
Not supported today
Section titled “Not supported today”| Area | Status |
|---|---|
Python (py / python) | Not available |
| Full Observable JS | Mutable variables, generators, implicit invalidation, and @observablehq/runtime imports are out of scope |
| Observable imports | Use Lapis lapis.* helpers instead of Observable notebook imports |
| Relative cell imports | Rejected until notebook-local module resolution exists |
| Some input types | button, checkbox, radio, select, file, search, table, form throw if used |
Public nb namespace | Removed; use lapis.* or documented bare globals |
Observable-inspired subset
Section titled “Observable-inspired subset”The System Guide notebook in a fresh vault exercises the current parity
slice: async cells, display(), plain inputs, markdown interpolation, trusted
html, and lapis.FileAttachment(). It documents what the runtime targets,
not every Observable feature.
Browser vs desktop
Section titled “Browser vs desktop”- Browser / PWA uses DuckDB-Wasm and vault adapter reads for file registration.
- Desktop (Electron) can use a native DuckDB sidecar for filesystem vaults, which avoids moving large file buffers through the renderer.
Both hosts share the same cell syntax and lapis.* surface.
Safe Mode
Section titled “Safe Mode”Safe Mode can disable notebook execution while you review untrusted vault content. When execution is blocked, run commands surface a recovery notice instead of starting cells.
See Safe mode.