storyblok → one schema
Stories
A second headless CMS — Storyblok’s deep story envelope flattened onto the same clean contract.
Source provider
Upstream shape
Storyblok wraps each entry in a deep envelope — uuid, group_id, position, alternates, translated_slugs, plus content nested as _uid / component / body blocks.
What Manifold did
- Stripped the Storyblok story envelope to a flat { title, slug, component, publishedAt, tags }.
- Pulled the human identity (name, slug, dates) from the story top level and the component from its content.
- Normalized it onto the SAME contract shape as the Contentful articles — two different CMSes, one schema.
TransformstoISO
Normalized schema
story · v1Every source above is projected onto exactly these fields — one contract, whatever the upstream shape.
- titlestringrequired
- slugstringoptional
- componentstringoptional
- publishedAtdateoptional
- tagsarrayoptional
This page
Fetched live from /v1/entries?type=story through the key-holding proxy.
- entries shown
- 5
- schema fields
- 5
Field mapping
source field → transform → normalized field- name→title
- full_slug→slug
- content.component→component
- published_attoISO→publishedAt
- tag_list→tags
Normalized entries
phoenix
43da156a-10d6-474d-8697-f746773114ce
fiddle
190b2471-a668-420d-a492-2b3d95916468
vue
e157498d-fe81-4d26-a7f8-bcb5d2e8264d
demo
5d604f1f-2a77-4dba-9ad6-f9e6e720c917
health
a9ffea87-ae7d-48b5-9589-7f4c7af121ac