host an app
measuring…
host an app · documentation

Put a thing on the internet.
It'll be lovely.

Two products, one machine. Free puts a file online in seconds — it lives for seven days. Managed builds a durable app with a private database. Pick one; the docs never mix them.

product 1 · free

What you can publish

Every content type has a working starter: see the showcase and open one in a click.

Everything is one self-contained file. Paste it in, get a URL back, share it.

Web apps & pages

A single HTML file becomes a live page: a landing, a tool or a game.

Markdown documents

Write in Markdown, ship a typeset page. Tables and code render for you.

Mermaid diagrams

A flowchart or architecture in plain text, published as a zoomable visual.

Data explorers

JSON or CSV in, instant explorer out: search, filter, sort and chart.

extras

Set a password and visitors are asked for it before the page opens. Set one_time: true and the page deletes itself after the first visit. Project pages take passwords too — at create, or later from the page's settings or PUT …/frontends/{target}/password.

Quickstart

1

Make something

One self-contained file.

2

Publish it

The machine, one curl, or your agent.

3

Share the URL

sites.hostan.app/<slug> — works immediately.

4

Forget about it

Self-deletes after seven days.

POST /api/v1/deploycurl
curl -X POST https://api.hostan.app/api/v1/deploy \
  -H "Content-Type: application/json" \
  -d '{"type": "markdown", "content": "# Notes\n\nEverything I remember."}'

# → 201 Created
{ "slug": "notes", "url": "https://sites.hostan.app/notes",
  "expires_at": "…seven days later…" }

Connect your agent

Wire Host An App into your assistant once, then just ask it to publish. Three ways in — the MCP server is the one we recommend, because it hands your agent the whole platform as tools. The skill works without MCP; the REST API needs no agent at all.

recommended

MCP server

One command adds the server, and your agent gains the publish tools — plus everything managed: projects, backend, frontends. Any MCP client can use https://api.hostan.app/mcp as a remote HTTP server; these are the ones with a command-line add:

Add the MCP serverclaude code · codex · vs code
# Claude Code
claude mcp add --transport http hostan https://api.hostan.app/mcp

# Codex
codex mcp add hostan --url https://api.hostan.app/mcp

# VS Code
code --add-mcp '{"name":"hostan","type":"http","url":"https://api.hostan.app/mcp"}'

Free quick shares need no credential. For managed projects, connect over OAuth — the consent page names the workspaces the client may act in, and it is the only path that works for consumer clients like ChatGPT connectors, Claude and Perplexity. Codex authenticates with codex mcp login hostan; Claude Code and VS Code start the flow on first use. A headless or CLI setup can paste a workspace credential instead: Authorization: Bearer hstn_… on the same server entry. A client with no command-line add (Cursor, OpenCode) works the same way — add the URL in its config file or UI.

no mcp · skill

Agent skill

One file that teaches an agent to publish, for harnesses with no MCP support. Download it and save it in whichever folder your harness reads skills from — ~/.agents/skills/hostan/, ~/.claude/skills/, ~/.codex/skills/.

Download SKILL.md — or read it first. It ends by pointing at the full contract (/llms.txt), so it can never drift into a second source of truth.

no agent

REST API or the browser

POST a file's content and get a URL back — no agent, no account — or publish straight from the playground. See the quickstart above.

Limits

Deliberately small: fast to publish, easy to forget.

0 days
before automatic cleanup
0 MB
max size per file (413 over)
0
accounts or configuration
SurfaceRate limit
POST /api/v1/deploy30 req/min per IP, burst 15
POST /mcp30 req/min per IP, burst 15
POST /api/v1/auth/<slug>10 attempts/min per IP
/<slug>/__visit60 beacons/min per IP
POST /api/v1/reports10 reports/min per IP
Static contentNo rate limit

Over a limit: 429 with Retry-After: 60 — back off and retry. Platform full: 503 with a reason. Slugs are lowercase, hyphenated, 3–63 chars; a few names are reserved.

Reliability

uptime

99.9% monthly availability target — under 44 minutes of downtime per month. Static-first architecture on Cloudflare and Hetzner; a target, not a contractual guarantee.

FAQ