--- title: HTML Studio emoji: 🛠️ colorFrom: indigo colorTo: pink sdk: static app_file: index.html short_description: Generate a site with any free model, ship it live hf_oauth: true hf_oauth_scopes: - inference-api hf_oauth_expiration_minutes: 480 pinned: false --- # 🛠️ HTML Studio → harvis.dev Describe a website. Any free open-weights model on the Hugging Face Inference Providers router writes it as a single self-contained HTML file. Preview it, edit it, then publish it to a live public URL on [harvis.dev](https://harvis.dev) in one click — no account, no build step. ## How it works This is a **Static Space** — there is no server. Everything runs in your browser: 1. **Pick a model.** The dropdown is fetched live from `https://router.huggingface.co/v1/models`, so every open-weights chat model the router serves is selectable. 2. **Describe the site.** The model streams back a complete `` document with all CSS and JS inlined. The preview renders as it types. 3. **Edit if you like.** The code pane is a live editor — changes re-render. 4. **Deploy.** The HTML is POSTed straight to `https://harvis.dev/api/upload` and you get a live URL back instantly. Deploying again reuses the site's deploy token, so it **updates the same URL in place** rather than creating a new site each time. Press **New site** to start a fresh one. ## Inference credits Click **Sign in with Hugging Face** to generate against your own free monthly inference credits (the OAuth token is requested with the `inference-api` scope). You can also paste a token from [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) instead. Nothing is sent anywhere except the HF router — the token lives in your browser's `localStorage`. ## Deploy links Every deploy returns two links: - **Live URL** — public, share it. - **Claim URL** — private. Open it and sign in (free) to attach the site to a harvis.dev account so you can edit or delete it later. **It cannot be recovered if lost**, and an unclaimed site expires 24 hours after its last deploy. ## Notes - The preview iframe is sandboxed without `allow-same-origin`, so origin-bound APIs (`localStorage`, cookies) throw inside the preview. They work fine on the deployed site. - harvis.dev limits: 50 MB and 500 files per site, static files only. ## Run it locally No build step — it's three static files: ```bash python3 -m http.server 8000 ``` Then open . OAuth only works when served from the Space; locally, paste a token instead.