# Website (`website/`)

Public dropbits.org surface for **v8**. Does **not** contain the CMS runtime — landing + `/docs/` guides.

## Layout

| Path | Role |
|------|------|
| `index.php` | Landing (W4) — self-host pitch, docs CTAs, Codeberg / dist pointers |
| `docs/` | **Symlink** → [`../dropbits/docs`](../dropbits/docs/) (public HTML + guide Markdown + Pagefind) |
| `scripts/` | `docs:sync` renderer + `deploy-website.sh` + `deploy-playground.sh` + Codeberg publish |

Playground UI lives at repo-root [`../playground/`](../playground/) (not under `website/`). Canonical product URL: **`https://playground.dropbits.org/`**. Marketing deploy excludes any leftover `playground/` path; operator deploy: `scripts/deploy-playground.sh`. [docs/PROVISIONER.md](../docs/PROVISIONER.md).

## Design locks

See [docs/OPEN-DECISIONS.md](../docs/OPEN-DECISIONS.md) **Release / docs**:

- Reuse v4 appearance + IA; **rewrite** content for Admin (no AdminHub / evaluator).
- Tree lives **in this repo** under `website/`.
- Public guide sources + published HTML: **`dropbits/docs/`**; `website/docs` → symlink (enables whole-repo DocumentRoot later).
- Normative Spec / companions stay at repo-root `docs/` + `SPEC.md` (not under `dropbits/docs`).
- Codeberg: [codeberg.org/fkamos/dropbits](https://codeberg.org/fkamos/dropbits) — runtime on branch **`v8`** (`git clone -b v8 …`); v4 tip archived as tag `archive/v4-2026-07`.
- Dist for self-host = `dropbits/` runtime (includes `dropbits/docs/` guides), not this marketing tree.
- dropbits.org deploy: `bash website/scripts/deploy-website.sh` (or `npm run docs:deploy`) → SSH `dropbits.org` path `/www/htdocs/w0193e9b/fkamos/htdocs/dropbits.org/` (`rsync -L` follows the docs symlink).

## Sync

Sources + output: [dropbits/docs/](../dropbits/docs/) (manifest [docs/publish-manifest.json](../docs/publish-manifest.json)).

```bash
npm run docs:sync     # MD → HTML + Pagefind under dropbits/docs/ (via website/docs symlink)
npm run docs:deploy   # docs:sync then rsync website/ → dropbits.org
```

Preview locally (repo root):

```bash
npm run docs:sync
php -S localhost:8080 -t website
# open http://localhost:8080/
# open http://localhost:8080/docs/
```
