• Release Merged Webhook

    Changes in: app mapi Permalink

    A webhook for releases has been added and can be set in the space settings. Whenever a release gets merged into the content repository it will trigger a post request with following payload:

      "text": "The release summer has been merged.",
      "release_id": 313,
      "space_id": 44953

    With the release_id you can get a list of stories that have been in that release by making a call to the management api with the parameter from_release:

  • Url resolving added to Content Delivery API

    Changes in: api Permalink

    The content delivery api has now the possibility for link resolving of items like global navigation items. With the parameter resolve_links and the values story and url the developer can now choose between resolving a link as “story” or as a smaller “url” object.

    Request without resolve_links=url

      "story": {
        "content": {
          "link": {
            "id": "f5c956e6-66a9-4f0b-a530-2ae88b9689a6",
            "url": "", // entered URL if external link
            "linktype": "story",
            "fieldtype": "multilink",
            "cached_url": "my-folder/my-cached-url" // a cached URL based on time of publication

    Request with resolve_links=url

      "story": {
        "content": {
          "link": {
            "id": "f5c956e6-66a9-4f0b-a530-2ae88b9689a6",
            "url": "", // entered URL if external link
            "linktype": "story",
            "fieldtype": "multilink",
            "cached_url": "my-folder/my-cached-url", // a cached URL based on time of publication
            "story": { // NEW story object inside the link field of yours
              "name": "My Linked Entry",
              "id": 669642,
              "uuid": "f5c956e6-66a9-4f0b-a530-2ae88b9689a6",
              "slug": "my-updated-url",
              "full_slug": "my-folder/my-updated-url", 
              "url": "my-folder/my-updated-url" // <-- URL that can be used for links and will stay up2date
  • Real path added to Content Delivery API

    Changes in: api Permalink

    Many of you asked about having the Real Path added in the Story object so you can use that to generate your routes. Be aware that this path currently can’t be filter as its purpose is to change the path in Storyblok itself. However, for those of you who want to use that property outside the management API can now do that!

      "story": {
  • Datasource CDN Endpoint

    Changes in: api Permalink

    With the datasource CDN endpoint you are able to consume a list of datasources so that you can access their values by using the datasource_entries API endpoint by using the datasource slug.

    Read more at the Api Documentation

  • Delete and Unpublish Permissions

    Changes in: api app mapi Permalink

    The advanced roles have been extended with following rules:

    • Allow unpublishing content
    • Allow deleting content
  • Deeper relationship resolving

    Changes in: api Permalink

    We’ve introduced a new syntax for relationship resolving with the resolve_relations parameter.

    You can now pass the format COMPONENT_NAME.FIELD_NAME to resolve even nested components, allowing you to create a nested structure with single or multiple choices in repeatable components to be resolved. Before that only the root level fields of your content type where possible to be resolved. The old syntax will continue to work, for future implementation we recommend using the new one.

  • Improved Filter Query

    Changes in: api Permalink

    The parameter filter_query of the delivery api has been improved to check for empty values.

    Nested queries are now possible for all filter query types. To access nested attributes you need to use a point as path separator. Examples: seo.description, body.0.teaser_header

    Changes in operators

    1. gt-int, gt-int: When doing a greater than or less than query it no longer triggers an error when there are non numeric values in the content entries.
    2. in: When providing an empty string then the api returns all fields that have empty strings or null values.
  • Field level translations

    Changes in: app api mapi Permalink

    In the past the only way of creating multi-language content was through a multi tree folder structure. As this still is a good practise for a lot of our customers we also got a lot of feedback from customers that have a different requirement.

    That’s why we now offer an additional way to manage multiple languages in Storyblok.

    Field level translations

    Introducing “Field Level Translations”

    With “Field Level Translations” you can now store multi-language content on the field level. This means you only need one content tree. A single tree stores each translation as a property under the same content item.

    As long as your site content is very similar from one language to another, this is the best option. You will have fewer pages to manage and the system takes care of serving the correct language automatically.

    Highlights about this new feature:

    • Manage all your content under a single content tree
    • Decide for each individual field if you want to activate translation
    • Easily copy the default language value to the translation
    • Quick-Jump to Google Translate

    Read more at our documentation about internationalization.

  • First published at field

    Changes in: api app mapi Permalink

    The new field “first_published_at” for getting information about the date when an item has been published the first time has been added.

    First published date

  • Backups on your S3 bucket

    Changes in: app mapi Permalink

    For additional security you can now setup backups of your content and the component definitions. The only thing you need is an Amazon AWS account. After installing the app under the Apps section you can configure the automatic daily backups or trigger a backup manually.

    Storyblok automatic backup

    Automatic backup

    The automatic backup runs every day at 1:00 GMT and will create a zip file on your Amazon AWS S3 bucket.


    You can restore a backup via the S3 link on the existing space or on a new one.

    What is included in the backup?

    The backup file contains stories (content), releases, scheduled content and component definitions.

    How to setup?

    Please read the setup instruction at the documentation area.

  • Pipeline Stages and Releases

    Changes in: app api mapi Permalink

    We are proud to announce a new feature we have been working on a very long time and we think it will be very useful for your bigger projects.

    What are releases for?

    Imagine you want to promote a new collection of sunglasses. You change a teaser on your homepage, add the products to the product overview and create a news entry of the new collection. In the past you would need to remember which content items you changed and publish each item separately. Here comes Storyblok’s “Releases” feature into the play. Prepare all the changes in a release and then publish them with one click or at a specific date.

    Content staging releases headless CMS

    What are branches for?

    With Storyblok’s branches you can setup a content staging workflow. A classical setup for this workflow is to have a staging branch for review and testing and a production branch for your live content. But you can also setup more branches if required.

    Branches, with the exception of “Preview”, are read only and each of the branches can have multiple releases and api-keys.

    Example: In the following diagram you can see that “Release 3” only exists in the default “Preview” branch and can then be deployed on “Live” before being tested on the “Staging” branch.

    Branching model headless CMS

    How to activate this feature?

    Currently the releases and branches functionality is only available for the “Premium” plans. But if you want to try it out please contact us via the onsite chat and we will activate a trial for you.

  • RTL support

    Changes in: app Permalink

    Storyblok now supports RTL (Right to left) for the field types “Text”, “Textarea” and “Markdown”. It can be configured in the schema definition of the field type with the checkbox “Enable RTL”.

    RTE Support

  • Rate limit Management-Api

    Changes in: mapi Permalink

    The management api has been rate limited to 3 requests per second for users on the free plan and 6 requests per second for other users.

    Customers using Storyblok’s official nodejs SDK “storyblok-js-client” are not affected by this change as the module already handles throttling the requests to the right level.

  • Open asset from field

    Changes in: app Permalink

    For all of you that wanted to access linked assets with one click in the asset and mutli asset fields - you can now do that - simply click on the file-name and open it in a new tab.

    Visual editor

  • Improved Asset Manager

    Changes in: app mapi Permalink

    In the past managing assets was limited to a basic flat folder structure. Now you can nest folders to organize your assets in a better way. Just create the folders you need and drag and drop them inside each other to create a tree.

    What is also brand new in the asset manager is the list view and sorting options. The multi-select bulk actions makes it easy to move around multiple assets at once.

    New Asset Manager

  • Polished Create and Duplicate Space

    Changes in: app Permalink

    We always listen to feedback and try to improve our platform for you. One feedback that bothered many of you was the unpolished create new space dialog and the hidden features like duplicating a whole space with few clicks, therefore we’ve now refreshed that section.

    New create new space

  • Flow and UI Improvements

    Changes in: app Permalink

    We’ve updated the entry flow into editing as suggested by many feedback we received from you.

    Compose as first focus

    If you now enter a content entry we will directly focus the Compose mode instead of the left sidebar allowing you to directly start editing and creating content.

    First Spot for Compose mode

    Everything that was previously available in the left sidebar and the Edit Navigation is now available on a separate tab called Config allowing you to configure every attribute of the current story in one place.


    Improved Form Only mode

    You can switch between the Editmode Visual and Form only to disable and enable the visual composer which is perfect if you only need a flat content structure or you do not have a website but only an app to display your entries. To make it more usable for you we’ve updated many details that may have caught you off guard in the past - but shouldn’t in the future!

    improved form only

  • Improved Blocks UI

    Changes in: app Permalink

    UI refreshment for the blocks type in Compose and in Form Only mode.

    Compose Before & After

    Before and After

    Form Only Before & After

    Before and After Big

  • Keeping your Sort By Option

    Changes in: app Permalink

    Thanks to feedback via our live-chat your last sort_by option will be kept for you even tho you edited one entry or reloaded the app. You won’t have to set it again!

    Keeping your sort by

  • Improved Version History

    Changes in: app api mapi Permalink

    The version history got a lot of improvements. Versions are now saved for every change in the draft version and the changes are visible in a GIT-like log right left to the save button. The best of all: It’s available for all plans.

    Improved Version History

  • Increased Contrast for tutorials

    Changes in: website Permalink

    We’ve switched from a light grey to a darker - more vs-code like (and higher contrast) version for our code blocks to increase the contrast and readability.

    higher contrast dark

  • Updated Onboarding

    Changes in: app mapi open-source Permalink

    We’ve updated our onboarding so you can start your Storyblok project even faster. After creating a space you’re now able to download a preconfigured Nuxt, Next and Gatsby project besides all the other setups & tutorials. If you want to build it from scratch to understand it better - the Tutorial links are now also available right next to it! Check it out!

    Getting started

  • Subscribe as Editor

    Changes in: app mapi Permalink

    In the past subscribing to a space was only possible by the space owner. Now you can add collaborators (your customers) to your space with the editor role and add the rights to manage subscriptions.


  • Space Menu Active State

    Changes in: app Permalink
    • Active classes will now be set also if you navigate in a folder
    • Active classes will now be set if you access an app and their sub-directories
  • Tasks App

    Changes in: app mapi Permalink

    The first version of our Tasks App is now available! You can create a Tasks that editor can press to send requests to one of your custom endpoints to either trigger a build for production or other common use-cases like product syncs or other publishing tasks. Future updates will also bring scheduled and timed tasks so you can handle all your tasks at one place.


    You can provide the endpoint you want to send a POST request. The payload of the request contains the task and the space id. An example payload would look like this:

    {"task": {"id": 1, "name": "Sync job"}, "space_id": 12345}