Something Else

cms-edit · SE Studio (Dev)

← All playbooks · Raw API

articles

# Articles — SE Studio

## Routing

SE Studio uses **flat article URLs** — no `/articles` prefix and no primary tag in the path:

- Public URL: `https://se.studio/{slug}/` (e.g. `/arcticdb/an-identity-with-scale/`)
- Case-study slugs often use `{client}/{title-slug}` (e.g. `arcticdb/an-identity-with-scale`)
- Blog slugs are typically a single segment (e.g. `ask-your-website-anything`)

Read `cms-edit://customer/routing` for live rules. `enablePrimaryTagPartOfSlug`, tag indexes, and people indexes are all **disabled**.

## Article types (required)

Every article must link to an **articleType**. List types before creating:

```bash
cms-edit list --type articleType
```

| Type | Slug | Use for |
|------|------|---------|
| **Case study** | `/work` | Client project stories — primary content type |
| **Blog** | `/blog` | Studio thought leadership, product posts |
| **Video** | `/video` | Video-led pieces |

Prefer `--article-type-slug work` (or `blog`, `video`) in CLI/JSON — marketers should not need Contentful entry IDs.

Filter existing examples:

```bash
cms-edit list --type article --article-type-slug work
cms-edit list --type article --article-type-slug blog
```

## Template

Articles use **Article Template** (`18bSfHlEeNVisz9PWtOso0`). It adds **Related articles** in `postContent` automatically — do not duplicate that collection in article `content`.

Peek the template:

```bash
cms-edit peek --template-label "Article Template"
```

## Reference articles

| Slug | Type | Notes |
|------|------|-------|
| `arcticdb/an-identity-with-scale` | Case study | `subtitle` = client name; body is `Article rich text` |
| `ask-your-website-anything` | Blog | Single-segment slug |

Peek before creating similar content:

```bash
cms-edit peek --article-slug /arcticdb/an-identity-with-scale
```

## Article fields

| Field | Guidance |
|-------|----------|
| `title` | Article headline (H1 in hero) |
| `subtitle` | Client or series name — shown in article hero (`postHeading`) |
| `description` | SEO meta description |
| `slug` | No leading slash; use `client/title-slug` for case studies |
| `date` | Publication date (ISO) |
| `articleType` | Required — see table above |
| `featuredImage` | OG/social image — landscape preferred |
| `visuals` | Hero gallery images on the article page |
| `summary` | Rich-text summary shown in article hero |
| `tags` | Optional internal links; public tag pages are disabled |

## Article body components

Put main narrative blocks in article `content`:

| Block | When to use |
|-------|-------------|
| **Article rich text** | Primary body copy — default for case studies and blogs |
| **Article hero** | Only when a custom hero layout is needed beyond page-context fields |
| **Article description** | Standalone summary block (rare — summary field usually suffices) |
| **Centered / Wide / Right aligned quote** | Pull quotes within the article |
| **Two column rich text** | Side-by-side copy |
| **Left / Right aligned paragraph** | Simpler text sections |

Most case studies are a single **Article rich text** block plus fields on the article entry (`subtitle`, `summary`, `featuredImage`, `visuals`).

## Featured images

Read `cms-edit://customer/defaults` for the full decision tree.

1. **Custom image** — set `featuredImage` or `featuredImageAssetFilename` when provided
2. **Article type default** — inherit from linked **articleType** `featuredImage` if omitted
3. **Site default** — asset ID `5OU6quGThpQuSJFSbxHsHZ`

Set `featuredImage` and `visuals` explicitly when the brief provides distinct OG vs in-page hero images.

## Creating articles

1. Read `cms-edit://customer/components-index`
2. `cms-edit index sync` if the catalog may be stale
3. `cms-edit list --type articleType` — pick the type
4. Build JSON or use `cms-edit create article --article-type-slug <slug> …`
5. Always `create from-json --dry-run --strict` before saving

### Case study from a Google Doc

1. Read `task-create-from-document` or `task-create-article`
2. Map doc title → `title`, client name → `subtitle`, slug → `{client}/{kebab-title}`
3. Body sections → one or more **Article rich text** blocks
4. Set `articleTypeSlug` to `work`

## After save — preview

```
cms-edit preview urls <slug>
```

Flat slugs: use the full slug path (e.g. `arcticdb/an-identity-with-scale`), not `/work/...`.

Open **site live preview** or **staging** in a browser for drafts.

## Publish handoff

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