Block library

Every block on this site

This page is assembled from the same blocks as the rest of the site. The label above each section is its Storyblok component name.

Discover more

  1. Define
  2. Register
  3. Compose
  4. Render
Named blocks connect the content model to React components.

feature_grid

Feature grid

Title and text

Each card is a nested feature block with a title and a short text.

steps

Steps

Numbered in the order editors arrange them.

  1. Drag to reorder

    Moving a step in Storyblok renumbers the list.

  2. Link a file

    A step can name the file that implements it.

    src/components/Steps.tsx

rich_text

Rich text

Storyblok rich text renders on the server with StoryblokServerRichText. It supports bold, links, and lists:

image_text

Watercolor wireframe sketches showing reusable sections in website layouts
Hal Gatewood / Unsplash

A page built from blocks

The image and text belong to one section. Editors can change both, move the image to the other side, and choose where the link leads.

How it works

accordion

A closer look at the blocks

What can an editor change?

The fields in Storyblok control the content. Editors can reorder sections, update copy, and add any block allowed by the page model.

Does this interaction need JavaScript?

No. This accordion uses the native HTML details and summary elements. It can be opened with a mouse, touch, or keyboard, even before JavaScript loads.

pull_quote

One block at a time. Each with a concrete example.

The approach behind this project

comparison_table

What changes in the CMS, what changes in code

Editors work with the blocks developers provide. The content model connects both sides.

Content and component ownership
TaskEditor in StoryblokDeveloper in the repository
Copy and translationsEdit fields and publishNo deploy needed
Arrange sectionsReorder existing blocksDefine allowed blocks in the schema
Add a new blockUse the available blockAdd the schema, React component, and tests

code_example

The schema names resolve to React components

The server registers the component map before rendering a story. Each block name in the CMS resolves to its implementation.

export function registerStoryblokComponents(): void {
  setComponents(storyblokComponents);
}
The registration function used by the server renderer.

cta_band

View the source

The components and content models behind this page are on GitHub.

View on GitHub

related_content