← Back to prototypes

Studio Jan Henrik Hansen

How it works

A short guide to the Prototypes site — for humans and for the AI assistants we use to create prototypes.

What this is

A lightweight host for shareable HTML prototypes. The whole site lives in a GitHub repo (SpaceMusicZH/Prototypes) with one folder per prototype under sites/. Pushing a new folder — or using the Add button on the index page — triggers a rebuild and the prototype appears on the landing page automatically. Hosted at prototypes.origin-infinite.com.

Adding a prototype

Two ways:

  1. From this site. Click + Add prototype in the header, pick a .html file or a .zip, fill in title and tags, submit. The server commits a new folder to GitHub and the site redeploys within ~30–60 seconds.
  2. Via git. Create a folder under sites/, drop in index.html plus meta.json, commit, push to main. dev push redeploys.

meta.json schema

{
  "title":  "Human-readable title",   // required
  "author": "armin",                   // optional
  "date":   "2026-05-13",              // optional — falls back to folder prefix
  "blurb":  "One or two sentences.",   // optional — appears on the card
  "tags":   ["ui", "experiment"]       // optional — clickable filters on the index
}

Folder naming

Folders use the pattern YYYY-MM-DD-slug. The date prefix drives default sort order (newest first). Use the Date field in the Add modal to backdate a prototype if you're uploading something you made earlier.

ZIP rules

Search & filter

The search bar matches against title, author, blurb, and tags. The tag chips at the top toggle filters — selecting multiple tags shows prototypes matching any of them (OR). Search and tag filter combine: matches must satisfy both. Click Clear filters to reset.

Editing & archiving

Each card has a ⋯ menu in the top-right with two actions:

Where files live

Folders starting with _ or . are excluded from the index but still served.

For AI agents

If you're an AI assistant being asked to add a prototype, read CLAUDE.md in the repo — it has the local recipe (folder name, meta.json, build + commit). The same conventions apply whether you upload via the button or push directly.

← Back to prototypes