better than .pdf

.bdf

Self-contained HTML, with a stable URL. Two URLs per document: one to edit, one to share. No accounts, no databases, just the web.

See how it works Open the editor →

Get started in one message

Ask your LLM to publish it as a .bdf. It hands you back a shareable URL.

Create me a slide deck on why .bdf is great.
Sure. Here is your slide deck. The pitch: HTML is the new PDF, and .bdf is how you send it.
Publish this as a .bdf.
Sure thing. Here is your link:
bdf.pub/C3WocNNqLHU9/v/…
Or upload manually. Open the editor →

URL-Based Auth

Anyone with the edit URL can edit. Anyone with the view URL can read. That's it. No accounts, no sessions.

File Upload

Drag and drop any .html file onto the editor, or click to browse. The document is published instantly with the filename as the title.

Portable Storage

Store documents on local disk for development or on S3-compatible backends like Fly.io Tigris for production. One env var switches between them.

Edit Anytime

Keep the edit URL to update content, titles, or regenerate the share link at any time. Old view links die instantly.

Built for Agents

Every page exposes its actions through HTMX forms and links. An LLM agent can parse the DOM and know exactly what actions are available.

Agent-native API

HTML responses for humans, JSON for machines. The same endpoints serve both.

# Publish a document curl -X POST "https://bdf.pub/create" \ -H "Content-Type: application/json" \ -d '{"title": "My Doc", "html": "<h1>Hello</h1>"}' # Response { "id": "abc123", "edit_url": "https://bdf.pub/abc123/e/EDIT_TOKEN", "view_url": "https://bdf.pub/abc123/v/VIEW_TOKEN" } # Update later via the edit URL curl -X POST "https://bdf.pub/abc123/e/EDIT_TOKEN" \ --data-urlencode "title=New Title" \ --data-urlencode "html=<h1>Updated</h1>" # Open the view URL in a browser, or share it. curl "https://bdf.pub/abc123/v/VIEW_TOKEN"