Structures of Content

Account

An account consists of one registered user with a unique email address. Under one account you can create multiple spaces for your projects and invite other users to those spaces using their account email.

Space

A space is one content repository. Think of it as a place to keep all of the content related to one project. Each space has its own stories, content types, bloks, assets, and configurations. If your goal is to deliver the same content with different languages to multiple platforms (a common set would be the web, iOS, and an Android app), then you can use one space and create multiple API keys to deliver the content. If you want to launch several websites or apps that are independent from each other, the best way to do this is to create a separate space for each project.

Story

A “Story” is what we call the content entries you can create in Storyblok. Each story is defined by exactly one Content Type. A Content Type describes the fields that are available for that Story to be filled in by the content creators. In addition to the fields that you define, a Story ships with default properties like name, slug, published_date, and many more. Feel free to see the full list in our Content Delivery API documentation.

{
    "story": {
    "uuid": "ac0d2ed0-e323-43ca-ae59-5cd7d38683cb",
    "name": "My third post",
    "slug": "my-third-post",
    ...
}

Folder

A folder is a collection of stories that can be used to group your entries of specific content types. Do you want to have all your Posts in one place? Creating a folder will allow that. You can also use our API to query on all entries from a specific folder to build out overviews in your project.

{
    "story": {
    "uuid": "ac0d2ed0-e323-43ca-ae59-5cd7d38683cb",
    "name": "My third post",
    "slug": "my-third-post",
+    "full_slug": "posts/my-third-post",
    ...
}

Component

There are two different types of components you can create in Storyblok: Content-Type and Blok.

Content Type

Content Types allow you to create templates for your Stories. You can create as many Content Types as you need. Examples of common Content Types are Post, Product, Page, or FAQ Entry. After creating Content Types you can create stories of this type, based on the template you defined. By default, we ship a “Page” content type. Of course, if you don’t need this type, you are free to delete it.

A Content Type acts as the type where you can create new Stories. Prime examples of this type of Component are Post, Product, Page, FAQ Entry and other Components you want, to create multiple independent entries from. By default, we ship a “Page” content type which you can either use yourself or remove if you don’t need it.

{
    "story": {
    "uuid": "ac0d2ed0-e323-43ca-ae59-5cd7d38683cb",
    "name": "My third post",
    "slug": "my-third-post",
    "full_slug": "posts/my-third-post",
+    "content": {
+      "component": "your_content_type",
+      // fields you define for your content type
+    },
    ...
}

Blok (nestable Component)

This type of component lives only within a Story and other Bloks, like Hero, Grid, and Full Width Image. You can’t create new Stories from this as it is only a part of one Story. To use them in one content-type you will need to create a field of the type blocks which allows the nesting of components.

{
    "story": {
    "uuid": "ac0d2ed0-e323-43ca-ae59-5cd7d38683cb",
    "name": "My third post",
    "slug": "my-third-post",
    "full_slug": "posts/my-third-post",
    "content": {
-      "component": "your_content_type",
+      "component": "page",
        // fields you define for your content type
+      "body": [ // also a field you defined (type blocks)
+         {
+            "component": "teaser",
+            "headline": "My headline Content",
+            // fields you define for your blok
+         }
        ]
    },
    ...
}
Type Examples
Content Types Post, Authors, Product, Page, Team Members, FAQ article,
Bloks Hero, Grid, Section, Newsletter Section, Chapter, Full Width Image, Slider

Schema

Each Component, be it a Content Type or Blok, has a defined a set of fields, called a Schema. Your Schema consist of one or multiple field(s) with different field types. A schema can have multiple Tabs which allows you to group your fields.

Field

The field type defines what kind of content you want your editors to be able to store. You can choose from many different types:

Field Type Description
Text a basic single-line text field
Textarea a multi-line text area without formatting options
Image a single image upload input and access to the asset manager
Date/Time a date- and time picker
Boolean a checkbox - true/false
Link internal and external links, eMail, and anchors
File a single file upload input and access to the asset manager
Multi-Asset a multi asset upload input, including description for each and access to the asset manager
Single-Option a dropdown of key/value pairs, Stories, Datasources, external JSONs, or Field Level Translation Languages.
Multi-Option a multi select option of key/value pairs, Stories, Datasources, external JSONs, or Field Level Translation Languages.
Number a number text field without formatting
Blocks a field to allowed nesting of Bloks
Markdown a multi-line field with formatting options resulting in Markdown format
Richtext a multi-line field with formatting options that results in a JSON format
Group allows you to group fields in a section (no input possibility)
Plugin extend the Visual Editor Content area with your own Custom Field Type

Asset

Assets in Storyblok are all files that you upload either using an image, file, or multi-assets field or in the asset manager itself. Assets uploaded to Storyblok will be hosted on our infrastructure and delivered through our CDN with the best possible performance for you. Additionally you can use our built-in image service to optimize and resize your images.