← ClaudeAtlas

connect-domainlisted

Connect a user's own custom domain (subdomain e.g. recipes.brand.com via CNAME, or apex e.g. brand.com via A record) to a site already deployed on simple-host. Use when a user wants their site served from their own domain with automatic HTTPS, or wants a private/password-protected site (privacy is offered only on a connected domain). Drives the bind → DNS → verify → live flow; the agent does the API work and relays the one DNS record the human must add at their registrar.
vineetu/simple-host · ★ 1 · AI & Automation · score 74
Install: claude install-skill vineetu/simple-host
# Connect a Custom Domain A site deployed on simple-host is already live at `https://sites.simple-host.app/<handle>/<site>/`. This skill connects the user's **own domain** — a subdomain (e.g. `recipes.brand.com`) or an apex (e.g. `brand.com`) — so the site is served from it with automatic HTTPS. **This is agent-driven.** You do every API call and compute the exact DNS record. Then either **add that record yourself** if you have DNS access for the domain (a provider MCP/API — see step 3b; ask permission first), or hand the human the single record to paste. Buying a domain (when they have none) and — absent your own DNS access — pasting the record are the only human steps. ## When to use this - The user asks to use their own domain / brand for a site. - The user wants a **private** or **password-locked** page: privacy is a property of a *connected domain* (its own isolated origin), not of a path on the shared host. If they want privacy, connect a domain first. ## Service - Base URL: `https://simple-host.app` - Auth header: `X-API-Key: <api_key>` (the key from deploying the site) - One domain per site; a domain can be connected to only one site. ## The flow ### 1. Confirm the site exists and pick the domain The site must already be deployed. Ask the user for the exact domain they want. **Subdomains** (`recipes.brand.com`) are the simplest path (CNAME). **Apex domains** (`brand.com`) are fully supported too — the bind returns an A record instead of a CNAME. Prefer a s