File size: 2,588 Bytes
49ef41b
f1b492f
 
 
 
49ef41b
f1b492f
 
 
 
 
 
49ef41b
 
 
f1b492f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
---
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.