# Saving A Generation — Visual Training Manuals

Step-by-step visual guides for every SAG audience — HTML hub online, print / PDF download.

**Live:** [https://savingageneration.netlify.app/training/](https://savingageneration.netlify.app/training/)

**Product truth:** Public marketing site + invite-only portals under **`/portal/*`** on the same Netlify deploy · API on Railway. Host safeguarding gates the Host portal. Need-support intake is **ops-only** — never shown in CSR or Host demos.

**Demo logins:** see [demo-users.html](./demo-users.html) (and [DEMO-USERS.md](./DEMO-USERS.md)) — password `Password123!` for seed users.

## Manuals

| Manual | Online | Audience |
|--------|--------|----------|
| **Hub** | [index.html](./index.html) | All roles — start here |
| **Screenshot gallery** | [screenshots.html](./screenshots.html) | Full UI capture pack |
| Ops admin | [ops-admin.html](./ops-admin.html) | SAG platform staff |
| CSR sponsor | [csr-sponsor.html](./csr-sponsor.html) | Corporate partner admins |
| Host node | [host-node.html](./host-node.html) | Church / community hosts |
| Public · sponsor | [public-sponsor.html](./public-sponsor.html) | Individuals / themes / donate |
| Public · CSR | [public-csr.html](./public-csr.html) | Companies exploring CSR |
| Public · host | [public-host.html](./public-host.html) | Prospective Host Nodes |
| Need support | [need-support.html](./need-support.html) | Families & youth (dignity-first) |
| Go-live checklist | [go-live-checklist.html](./go-live-checklist.html) · [PDF](./pdf/SAG-Training-go-live-checklist.pdf) | Ops runbook: demo → production |
| Demo users | [demo-users.html](./demo-users.html) | Workshop credentials |

Each role manual includes: cover + demo login · numbered steps with screenshots · **common mistakes** · quick reference · sticky role switcher · **Download PDF** / Print · prev/next.

Shared styles: [`_manual-styles.css`](./_manual-styles.css).

## Publish to the site

Source of truth is `docs/training/`. Netlify / `npm run build` syncs into `public/training/` → served at **`/training/`**.

```bash
npm run training:prepare   # refresh URLs + nav chrome (after editing HTML)
npm run training:sync      # copy → public/training for local next dev
```

## Local serve / PDF

```bash
npm run training:serve     # http://127.0.0.1:8765/
npm run training:pdf       # Chrome headless → docs/training/pdf/
```

---

*Saving A Generation · Training · Aug 2026*
