← All playbooks · Raw API

news-pages

# News — Pedestal Health

Playbook for **news articles** (`resources/news`) — press releases, partnership announcements, conference coverage, and registry milestones.

## URL patterns

| Pattern | Examples |
|---------|----------|
| `/resources/news/{primaryTopic}/{slug}/` | `/resources/news/press-release/pedestal-health-announces-…/` |
| `/resources/news/{tag}/` | Tag listing (e.g. `/resources/news/hepatology/`) |
| `/resources/news/` | News hub / listings |

Primary topic comes from **asset-type** tag (e.g. `press-release`, `conference-presentation`, `partnership-announcement`).

## Typical content stack

News detail pages use the **resources/news** article type template.

| Region | Type | Role |
|--------|------|------|
| Template hero | **News hero** (article-sourced) | Title, subtitle blocks, date, tags, author, hero image |
| Body | **Article rich text** | Main story copy |

**Do not add News Hero to `content`** — the template renders hero from article fields.

## `featuredImage` vs `visuals`

| Field | Used for |
|-------|----------|
| `visuals` | Hero image on article page + listing card thumbnail (portrait composite) |
| `featuredImage` | OpenGraph / social (landscape composite) |

**Always set both** on news articles. Use **`cms-edit://customer/news-images`** (News Image Studio) to create or reuse branded composites — do not name images after article titles.

- Default OG: site `featuredImageAssetId` in `project.json` only as emergency fallback
- Search Contentful for `News composite —` to reuse an existing portrait/landscape pair and **one shared Media entry** for `visuals[0]` — never one Media entry per article when composites match

## Required / common fields

| Field | Guidance |
|-------|----------|
| `articleType` | `resources/news` |
| `title` | Headline |
| `subtitle` | Display blocks below title (`Partners: …`, `Cohort: …`) |
| `date` | Publication date |
| `authors` | Person links when byline shown |
| `tags` | Asset type, decision type, partner, conference, TA |
| `primaryTag` | Asset type — **must match URL segment** |
| `cmsLabel` on body | `News — {Article title}` |

## Hero tag display

Conference/venue tags on the hero follow `news-hero-tags.ts`. Asset type, decision type, and partner filters appear below the title — see `ARTICLE_PATTERNS.md`.

## Reference news articles

Clone tag + field patterns from existing items:

| Tag / topic | Use when |
|-------------|----------|
| `press-release` | Corporate announcements |
| `partnership-announcement` | Partner news |
| `conference-presentation` | Congress / meeting coverage |
| `registry-cohort-milestone` | TARGET cohort milestones |

```bash
cms-edit list --type article --sort date -n 10
cms-edit peek --article-slug <existing-slug>
```

## Workflow

1. Read `cms-edit://customer/articles` for shared routing
2. `cms-edit index sync`
3. `task-create-article` with `articleTypeSlug: resources/news`
4. Set `primaryTag` (asset-type), `tags`, `subtitle`, `visuals`, and `featuredImage`
5. Add **Article rich text** only in `content`
6. `create from-json --dry-run --strict` before save
7. `preview urls` → `diff` → `save` → `task-publish-handoff`

## Out of scope

- **Publications** — use `publications-pages`
- Duplicating **News hero** in `content`
- Home **News carousel** — auto-hydrated; edit the article entry, not the carousel query

## Publish handoff

`save` creates drafts only — publish in Contentful UI when ready.