Spaces:
Running
Running
| 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 `<!doctype html>` | |
| 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 <http://localhost:8000>. OAuth only works when served from the | |
| Space; locally, paste a token instead. | |