Embedding
Any page can be served chrome-less for embedding in another site via an auto-resizing iframe. Framing is deny-by-default: you opt in per project.
# dashdown.yaml
embed:
enabled: true
frame_ancestors:
- https://your-site.example
# secret: ${EMBED_SECRET} # required when auth is on (signed, page-scoped tokens)
# token_ttl: 3600
Add ?_embed to a page URL to render it without the header/sidebar/breadcrumbs.
The host page includes the small embed.js loader, which drops an
auto-resizing iframe and listens for the posted content height.
Authenticated embeds #
When the project has an auth: block, a cross-origin iframe can't send
credentials — so an authed page is embedded with a signed, page-scoped token
(?_embed=<token>), minted by GET /_dashdown/api/embed-token?path=… or the
dashdown embed-token CLI. The token is an HMAC scoped to that exact page and the
queries it reads, so it can't be replayed for other resources.
Tip
The Embed button (on the breadcrumb line, top-right of every page) copies a ready-made snippet for the current page.