# Landing page — version archive

Every public marketing-site design we have shipped, kept whole so the next
rebuild cannot erase the last one.

**There is no index page in this folder on purpose.** The versions are listed
in the main mockups index — `../index.html`, served at `/mockups/` — under
"Public marketing site", both as a row near the top and in the All-screens
catalog. Add a v4 there, not here.

| | Design | Built | Stack | Signature | Status |
|---|---|---|---|---|---|
| **v1** | Charcoal Trading | 2026-05-26 | Vue 3 + Inertia + motion-v | **live bid-stream ticker** | superseded |
| **v2** | Design-system rebuild | 2026-07-02 | Blade + vanilla JS | supply ticker (exchange symbols) | **deployed** |
| **v3** | Outcome-led multi-page site | 2026-09-01 | static HTML + CSS | 7 pages, 4 solution pages | current |

## What is actually serving (verified 2026-09-01)

- `https://ads.crackle.tech` → **v2**. Title is
  "Crackle — One campaign. Every exchange. Only at your price."
- local `/` → **v2** (`routes/web.php` → `view('landing')`).
- **v3 is not deployed anywhere.** It is the current design direction, but no
  route or host serves it yet. Cutting `/` over to v3 is a separate job: the
  route, the request-access form, the legal links, `LandingPageTest.php` and the
  e2e landing snapshots all point at the v2 Blade view.
- `https://crackle.tech` is a **different site** — a WordPress/Astra publisher-
  facing corporate site ("Maximize Your App Revenue"). It shares no markup with
  v1/v2/v3 and is not part of this lineage.

## What is in each folder

### `v1/` — static snapshot + source + screenshots
Same treatment as v2: **`index.html` is real markup, not a picture.**

- `index.html` — the actual rendered DOM, captured 2026-09-01 from the live
  route with Playwright (headless Chromium, dark scheme, full scroll walk so
  every reveal fired and the bid-stream table had filled). The Vue/Vite runtime
  is stripped so the file cannot re-mount and blank itself.
- `assets/landing-v1.css` — the **production** CSS, concatenated from the Vite
  build (22 stylesheets: the app layer plus every landing chunk). Not dev CSS.
- `src/` — the full component tree, copied from
  `code/backend/resources/js/pages/archived/landing/2-july/`
- `src/landing.css` — the v1-era stylesheet, recovered from `a0fc1f499^`
  (the commit that deleted it)
- `screenshots/` — three captures of it *running*, which the frozen snapshot
  cannot show: the hero, the **bid-stream ticker mid-stream**, and the
  supply-fabric marquee.

**What the snapshot cannot do.** It is frozen: scroll reveals are pinned open,
the marquee does not scroll, and the ticker shows the 15 rows it was carrying at
capture time instead of streaming new ones. That is why the screenshots exist
alongside it.

**Why it was captured at all.** Packet
`docs/todos/sprint 21/claude-task--036--cut-the-public-landing-over-to-v3.md`
**deletes** the `/archived/landing/2-july` route and the Vue tree behind it, on
the operator's decision that deprecated designs should not be publicly reachable.
After that ships, `src/` is source that nothing draws, and these captures are the
only thing left showing what v1 looked like. Do not delete them.

**Until s21t036 ships** the app also renders it live at `/archived/landing/2-july`.
That route needs the app running and will 404 afterwards — `index.html` will not.

**How it was captured**, if it ever needs redoing before the route goes: run
headless Chromium from inside the dev container against `http://nginx/`, with
`public/hot` moved aside for the duration so the page serves the built assets
instead of the host's Vite dev server (the in-container browser cannot reach
`localhost:5173`). Restore `public/hot` immediately afterwards.

### `v2/` — static snapshot + source
- `index.html` — the real rendered HTML fetched from `/`, with `/landing/*`
  asset paths rewritten to `assets/*` so the file stands alone
- `assets/` — `landing.css`, `landing.js`, `og.png`, favicons
- `src/landing.blade.php` — the Blade template that produced it

The remaining absolute links (`/login`, `/privacy`, `/terms`, `/overview`) are
app nav, not design assets; they 404 when opened standalone.

**v2 is still what ships.** Nothing here is wired to it — this is a copy. The
live files stay at `code/backend/resources/views/landing.blade.php` and
`code/backend/public/landing/`.

### `v3/` — the whole site, as delivered
Unpacked from `crackle-dsp-site-share 2.zip` (2026-09-01). Fully standalone:
`index.html`, `product.html`, `pricing.html`, `faq.html`, `solutions/` (4 pages),
`assets/` (css, js, 3 images). Its own `README.txt` has the author's view notes.

Sections fade in on scroll, so the page looks half-empty until you scroll once.
That is the design, not a broken asset.

## Adding a v4

1. `mkdir v4/` and drop the design in.
2. Add it to `../index.html` in **both** places: the "Public marketing site"
   row near the top, and the catalog section of the same name.
3. Move the `deployed` pill to whichever version is actually serving — check
   first, do not assume.
4. If the version you are replacing was only ever renderable through an app
   route, **screenshot it before you remove the route.** v1 nearly went out
   without that.
4. Add a row to the table above.

Nothing else to do — nginx bind-mounts this folder read-only at `/mockups/`
(`docker/nginx/default.conf:21`), so a new folder is browsable the moment it
exists. There is no second copy to keep in sync.
