WellaPath marketing website — wellapath.org. Clinical decision support for Nigeria.
# wellapath-website
The WellaPath marketing website — `wellapath.org`.
## Start here
| Document | What it is |
|---|---|
| **`docs/WEBSITE_GUIDE.md`** | The brand, content and experience guide. Read §1 and §2 before designing or writing anything. |
| **`docs/DESIGN.md`** | The design system — tokens, type scale, component specs. Derived from Stripe, governed by the guide. |
| **`docs/PLAN.md`** | Build plan, verified figures, measured budgets, open decisions. |
| **`docs/PROGRESS.md`** | Where the build stands today: what is done, what is measured, what is blocking launch. |
`docs/website-guide.html` is the guide, styled — open it in a browser or print to PDF.
## The one rule
WellaPath is a **clinical decision support system**, not a diagnosis engine. It tells a user how
urgently to seek care and where — never what they have. Every word on the site has to survive that
sentence. See §1 and the banned-word list in §4.2.
`npm run check:copy` enforces the banned-word list against the rendered pages.
## Running it
```bash
npm install
npm run sync:kb # pull clinical artifacts from ../wellapath-knowledge-base
npm run dev #
localhost
```
```bash
npm run build && npm start # production
npm run check # phone + copy + layout/a11y + SEO (needs the site running on :3737)
```
### The build will fail, and that is correct
`npm run build` refuses to complete while any danger-sign label in
`content/red-flag-labels.ts` is `reviewed: false`. 36 of 48 currently are. Those sentences sit at the
top of every condition page and need a clinician's sign-off, not a copywriter's.
To build a preview anyway:
```bash
ALLOW_UNREVIEWED_RED_FLAGS=true npm run build
```
## Launch signup
The "Notify me at launch" form posts to `/api/notify`. It takes **an email
address or a WhatsApp number, and either one on its own is enough**. Requiring
the email would undo the reason the number is offered: it reaches people email
does not.
Postgres is the sou …