Your first content type
Goal: model a blog post and read it back through the API.
1. Define the type#
In the admin UI: Content Types → + New.
| Field | Value |
|---|---|
| Name | Blog Post |
| Slug | blog-post |
| Is hierarchical | off |
Then add field definitions:
| Slug | Type | Required | Searchable |
|---|---|---|---|
title |
text | ✓ | ✓ |
slug |
slug | ✓ | |
excerpt |
text | ✓ | |
body |
markdown | ✓ | ✓ |
hero_image |
asset | ||
published_at |
datetime | ✓ |
2. Create your first post#
Content → + New and pick Blog Post. Fill in the form, hit Save.
3. Read it back#
bash
1 2 3 | |
Response:
json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
4. Resolve assets#
The hero_image value is a bare asset UUID. The API proxy serves it at
/api/v1/assets/<id>/file?variant=medium. The delivery service resolves
these automatically when rendering.
What's next#
- Wire it into a template pack (next tutorial).
- Build a list page that queries content by type.
- Add taxonomies for tags/categories.