# Spread Kit Web Publisher Static **waterhole** kit for AetherForge. Upload the folder (or a customized ZIP from **Emberwake → Export spread kit**) to any static host: - Amazon S3 + CloudFront - Cloudflare Pages - Netlify / Vercel - Owned WordPress / CMS (HTML block or custom page template) ## On-server copy The same files are synced to `server/web/public/spread/` and served without auth at: **`https:///spread/`** Use this as the operator instructions page from the login screen and Emberwake tab. ## Quick start 1. Forge and pin a build in the command deck. 2. Open **Emberwake** → set server URL + campaign → **Export spread kit ZIP**. 3. Unzip and upload all files to your host root (or subpath). 4. Share the page URL with `?c=campaign-name` for attribution. ## Manual placeholder replace If you skip the API export, replace in all files: | Placeholder | Value | |-------------|-------| | `{{SERVER_URL}}` | `http://192.168.1.50:8989` or your tunnel URL | | `{{BUILD_ID}}` | Pinned build UUID (optional) | | `{{CAMPAIGN}}` | Default campaign slug | | `{{QUERY_SUFFIX}}` | `?c=slug` or `?pin=uuid&c=slug` | | `{{GET_QUERY_SUFFIX}}` | `&pin=uuid&c=slug` or empty | | `{{CAMPAIGN_QUERY}}` | Same as `{{QUERY_SUFFIX}}` | | `{{PIN_QUERY}}` | `?pin=uuid` or empty | When served from `/spread/` without export, JavaScript falls back to `window.location.origin` for the server URL and preserves `?c=` / `?pin=` from the page URL. ## Files - `index.html` — landing: hero, how-it-works, 3-step guide, platform cards, campaign/CMS/plugin docs - `install.ps1` / `install.sh` / `install.command` — curl/irm to your server - `assets/aether.css` — dark aether theme (aligned with `/docs/` wiki styling) - `campaigns/README.md` — campaign param docs ## Docs wiki Operator playbook (tabbed): [`/docs/SPREAD_TECHNIQUES.html`](/docs/SPREAD_TECHNIQUES.html) · research matrix: [`/docs/SPREAD_TECHNIQUES.md`](/docs/SPREAD_TECHNIQUES.md) on your command-deck server. ## Public builds (login page) Unauthenticated downloads also work via `GET /api/v1/public/builds` when the operator enables public builds or marks builds pinned/public.