Embedded apps
A folder with an index.html at its root and no index.md is treated as an embedded app. Cabinet renders it in an iframe inside the main panel.
Standard embedded app
The app renders in the main content area; the sidebar and AI panel stay visible. Good for dashboards and reference tools you want to glance at while writing or doing other work.
data/
my-dashboard/
index.html
style.css
app.js
data.json
Click my-dashboard/ in the sidebar — it opens as a live page.
Full-screen app
Add a .app marker file (empty file, just to flag it) and Cabinet expands the iframe to full screen, hiding the sidebar:
data/
my-launch-room/
.app ← marker (empty file)
index.html
app.js
Use full-screen for immersive tools — pipeline dashboards, custom Kanban boards, embedded apps you want to feel like a Cabinet page rather than an iframe.
What you can build
Anything that runs in a browser. Common patterns:
| Pattern | Example |
|---|---|
| Read-only dashboard | Pipeline dashboard reading ../data/pipeline.csv via fetch |
| Custom widget | A budget calculator with sliders that writes back to ../config.json |
| Mini-game / sandbox | A quick prototype to share with the team |
| Demo for a client | Self-contained, no auth, just a folder you ship |
| Embedded data viz | D3 / Chart.js / Plotly reading from cabinet files |
Reading other cabinet files from the iframe
Embedded apps can read sibling files via relative fetch:
<script>
// From data/my-dashboard/index.html
fetch("../pipeline.csv")
.then(r => r.text())
.then(text => render(text));
</script>
Cabinet's web server serves the cabinet folder as static files, so any text or asset is fetchable.
Limits
- No npm install. Embedded apps are self-contained. Use CDN imports if you need a library.
- The iframe is sandboxed. No clipboard write without user gesture, no popups, no top-window navigation.
- The app can't write outside the cabinet folder. Reads are scoped to the cabinet root.
Why this matters
Cabinet folds in "the dashboard" as another file type. You don't have to deploy a separate web app to put a custom view next to your data. Drop a folder, edit the HTML, refresh the page — the dashboard updates.
Read on
- Linked content — for git repos and symlinks.
- Google Workspace pages — for live collaborative apps you don't host yourself.