# How to share an HTML file as a public link

By Avatar 8 (Avatar 8 LLC) · Published November 5, 2026 · https://deed.page/blog/share-an-html-file-as-a-public-link

Sharing an HTML file as a public link means putting the file on a web server that sends it back as a page, so anyone who opens the URL sees it rendered in their browser instead of getting a download. On deed.page that takes one HTTP request, and the Free plan holds 25 sites of up to 25 MB each for $0, with no account and no expiry unless you set one ([pricing](https://deed.page/pricing)).

Every command below was run against production on November 5, 2026. The test sites used a 15-minute expiry and were then deleted.

## How to share an HTML file as a public link

1. **Pick a slug.** It becomes the address: `client-mockup-h3x8` turns into `https://client-mockup-h3x8.deed.page/`. Add your own random suffix; that one is only an example.
2. **Upload the file with one command:**

```bash
curl -T index.html "https://deed.page/v1/sites?slug=client-mockup-h3x8&ref=blog" -H "X-Client: <your agent name>"
```

3. **Send the `url` from the JSON reply.** In our test it came back `"version":"v1"` and the page answered `200` with `content-type: text/html`, so it opens as a page on a phone or a laptop.

The first reply also carries a `deed_tok_…` token. It is shown once, and deed.page keeps only a SHA-256 of it, so save it right away ([token hygiene](https://deed.page/blog/token-hygiene-for-agents)). You need it to update or delete the page later.

## Why emailing the file or a drive link often doesn't work

A browser renders HTML when a server sends it with an HTML `Content-Type` header ([MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type)). An email attachment arrives as a file to download, and file-storage links usually show a preview or a download button instead of the live page. A static host fixes that by serving the file over https with the right type. That is the whole trick, whichever host you use.

## When the page has CSS, images, or scripts

Most HTML files made by an AI or a site builder pull in a stylesheet or images. Two things keep them working once online:

- **Use relative paths.** `href="styles.css"` works anywhere. `C:\Users\…` or `file:///…` only works on your own computer.
- **Upload the folder, not just the HTML file.** Pack it as a tarball with `index.html` at the top and send it to the same slug:

```bash
tar -czf site.tgz -C site . && curl -X PUT "https://deed.page/v1/sites?slug=client-mockup-h3x8" -H "Authorization: Bearer $DEEDPAGE_TOKEN" -H "Content-Type: application/gzip" --data-binary @site.tgz
```

In our test that returned `"version":"v2"` with 3 files, and `styles.css` came back as `text/css` and `logo.svg` as `image/svg+xml`. The link did not change. Other formats (JSON file map, multipart) are covered in [choosing an upload format](https://deed.page/blog/choose-an-upload-format). A single request body is capped at 4 MB; bigger sites use the [plan-upload flow](https://deed.page/blog/plan-upload-large-sites).

## Same thing from an AI agent over MCP

If your agent speaks MCP, add `https://deed.page/mcp` and call `publish_site` with the HTML as a string:

```json
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"publish_site","arguments":{"slug":"client-mockup-mcp-h3x8","files":{"index.html":"<!doctype html><title>Client mockup</title><h1>Client mockup</h1>"}}}}
```

The result has the same `url`, `version`, and `token` fields as the REST reply ([MCP walkthrough](https://deed.page/blog/mcp-publish-walkthrough)). Agents without MCP can read [llms.txt](https://deed.page/llms.txt) or install the skill with `npx skills add f-o-x11/deed-page-skill` ([install guide](https://deed.page/blog/install-the-deed-page-skill)).

## Updating or taking the link down

Send a new file to the same slug with `Authorization: Bearer <token>` and the same URL serves the new version. Earlier versions stay restorable ([version history](https://deed.page/blog/version-history-and-rollback)). `DELETE /v1/sites/{slug}` with the token removes it; in our test the URL returned `404` right after.

Free sites show a small "Published with deed.page" badge. Hobby ($3/month) removes it on every site, or a one-time $9 clean publish removes it from one ([pricing](https://deed.page/pricing)). There is also a shorter landing page for this task at [deed.page/share-html-file-as-link](https://deed.page/share-html-file-as-link).

## FAQ

**Do I need an account to share an HTML file as a link?**
No. The first upload creates the page and returns a token in the JSON reply. Keep that token to edit or delete the page later.

**How long does the link stay up?**
Until you delete it. Add `-H "X-Ttl: 86400"` to the upload only if you want it to expire after one day.

**Can the person I send it to edit the page?**
No. Only requests carrying the owner token can change or delete it. Anyone else who tries to publish to that slug gets `409 slug_taken`.
