# Maintaining the Converting prototype space

How to keep `prototype.converting.now` current. Mirrors the conventions used by
`relay-creative` / `firmclerk-creative` / `bookingitnow-prototype`.

## The model
- **Pure static.** No build, no CI. Files are served as-is by Cloudflare Pages.
- **`prototype` is the deploy branch.** Most prototype work commits **directly to `prototype`**;
  Cloudflare Pages auto-builds on push and serves `prototype.converting.now`.
- **`main`** holds the canonical apex site (`converting.now`) — keep it separate from prototypes.
- **`noindex`.** `index.html` carries `<meta name="robots" content="noindex, nofollow">`. Keep it.

## URL conventions
- **Current version → clean URL.** Ship the live version behind a clean path via `_redirects`,
  e.g. `/web/app → /web/app-v3`. Update the redirect target when you ship a new version.
- **Archived versions → version-suffixed, kept reachable.** Don't delete old versions; leave the
  file (e.g. `app-v2.html`) so links don't rot, and tag its card `Archived`.
- **Explorations → namespaced.** Group experiments under a folder (e.g. `/web/checkout-explore/…`).

## Adding a prototype
1. Drop the file in the right folder, **version-suffixed**: `web/app-v1.html`.
2. (Optional but preferred) add a clean URL in `_redirects`:
   `/web/app   /web/app-v1   302`
3. Add a card to the matching section in `index.html` (one anchor per prototype):
   ```html
   <a class="card" href="/web/app">
     <div class="card-top"><span class="card-tag is-new">New</span><span class="card-arrow">↗</span></div>
     <div class="card-title">App — v1</div>
     <div class="card-desc">One line on what this proves.</div>
   </a>
   ```
4. Commit to `prototype` and push. Pages redeploys automatically.

## The card system (how dimming works)
- `card-tag.is-new` → the card stays at **full opacity** (current / hero work).
- A card with **no `is-new`** dims to **45%** (older but still live).
- `is-archived-card` on the `<a>` (with an `is-archived` tag) dims to **55%** (superseded).
- Hover restores full opacity on any card.

So: tag the thing you're showing off `is-new`; let everything else recede.

## Superseding work
1. Ship the new version (clean URL now points at it).
2. On the old card: drop `is-new`, switch the tag to `is-archived` (`<span class="card-tag is-archived">Archived</span>`),
   and add `is-archived-card` to the `<a class="card …">`.
3. When it's truly done, move the file under `_archive/` and update its href.

## Deploy wiring (one-time — needs Cloudflare + DNS access)
Done by EC; the code can't grant itself account access.
1. Cloudflare → **Pages → Create → Connect to Git** → `christensen-digital/converting-web`.
2. Build settings: **Framework preset = None**, **Build command = empty**,
   **Build output directory = `/`** (repo root, static).
3. **Production branch = `prototype`** (NOT `main`). This is the key setting.
4. After the first deploy: **Custom domains → Set up a domain → `prototype.converting.now`**.
   Since converting.now is on Cloudflare DNS, this auto-creates the proxied CNAME and TLS.
5. `_redirects` (repo root) is honored natively by Pages — no extra config.

> **Note on `CNAME`:** the GitHub-Pages `CNAME` file (`converting.now`) is **not** on the
> `prototype` branch — Cloudflare Pages uses its own custom-domain config, and a stray apex
> `CNAME` here would be wrong. Keep `converting.now`'s `CNAME` on `main` only.

## Verify
- `curl -sI https://prototype.converting.now` → `server: cloudflare`, HTTP 200, valid TLS.
- Index renders; a `_redirects` clean URL 302s; favicon loads; `noindex` present.
- A push to `prototype` triggers a fresh deploy.
