← 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.