• Automatic Branch Deployment

    Changes in: app Permalink

    Releases can now be configured to initiate an automatic branch deployment. Requirements: The user role needs to have the right “Allow deploying content” enabled.

    Automatic Branch Deployment

  • Introducing workflow stages

    Changes in: app api mapi Permalink

    Content production in enterprises sometimes requires strict workflows to make sure that every team member gets involved.

    workflow stages

    With Storyblok Workflow and Workflow Stages you’re now able to use different stages like Drafting, Reviewing, or Ready for Publish. On higher plans you’re also able to define your custom stages.

    Read more about how to set-up your workflows and workflow stages right now: Workflow Documentation.

  • Improved performance of spaces/me call

    Changes in: api Permalink

    If you are calling the endpoint before every page rendering to get the cache version we have good news for your. The call just got 1000 times faster with a 2 second CDN cache. This reduces also the risk to run in a rate limit error. To make sure that static website builds are getting the right version the webhook executions got delayed by 2 seconds too.

  • Root Asset Folder Permissions

    Changes in: app Permalink

    You can now select specific asset folder to give users access to. All other folders and assets of those folders will be available for selection but can not be moved, replaced, deleted or modified. Users with restricted folder permissions will only be able to upload and manage folder in that one base folder ideally for asset management for multiple markets.

    Asset Folder

  • Custom Locales for Field Level Translations

    Changes in: api app mapi Permalink

    Allows custom language and locales in field level translations. Locales are of min length 2 or max length 8.

    Custom Field Level Language

  • Onboarding Update

    Changes in: app Permalink

    We’ve updated the onboarding dialog, away from a an overlay floating above the “Home” entry to a three step onboarding introducing you to the demo entry, how to create new folders and to create your own entries. You can try it yourself by creating a new space.

    Onboarding update

  • Export and Import App Moved to Tools Tab

    Changes in: app Permalink

    The functionality of the import and export apps has been moved from the “Config” tab to the “Tools” tab.

    Export import tool

  • Field Type Translation Import Improvements

    Changes in: mapi Permalink

    In the past using the import and export app didn’t work quite well for users using the field type translation feature.

    With this update we improved the export and import functionality of field type translations.


    • When exporting from the target language (not default language) only fields that are defined as “Translateable” are exported.
    • The translation keys are the same in every target language (i18n codes have been removed).
    • The exported file contains all content from the default language.
    • When importing the translated file back the fields of the target language will be filled out.

    The recommended workflow is like following:

    1. Beginn by filling in content in the default language.
    2. Select the language you want to translate from the menu bar.
    3. Go to the config tab of the content item and click export.
    4. Use the exported file in the translation tool of your choice to translate the default language to your target language.
    5. Import the translated language using the import button with the target language selected from the menu bar.
  • Published & Unpublished Webhook moved to free plan

    Changes in: app api Permalink

    As you might already have noticed we’re sponsor at the first ever Zeit Hackathon and to enable you to build amazing integrations and connectors we’ve moved the server side webhooks of Storyblok that can be used to trigger builds, cache clearing and anything else that you want on publish and unpublish events into the free plan. Not only for a limited amount of time, but forever for all your spaces!

    Zeit & Storyblok

  • Default language translation label

    Changes in: app Permalink

    We’ve added another feature that has been requested by many of you that use our field level translations. It is now possible to enter a custom label for the “Default” language in your space settings.

    default language label

  • Language permissions

    Changes in: app mapi Permalink

    It’s now possible to add permissions for specific languages using roles. This let’s you for example control the access of a translator which will only be able to edit specific languages.


  • Fixes Norwegian language parsing

    Changes in: api Permalink

    Fixes an issue that caused customers to receive a 404 or no results in collections on /no/ routes if the field level translation was used to define multiple languages.

  • Backwards text fix

    Changes in: app Permalink

    Some of you have noticed that sometimes the mouse cursor got stuck in the iframe causing your text field inputs being backwards.

    If you would have typed hello the outcome would be olleh, which was connected to that issue. Sometimes, Chrome kept the focus of your cursor inside the iframe resulting in your cursor being fixed on the left side. We’ve now introduced a fix for that, which removes that bug for Storyblok.

    sreecH, klobyrotS

  • Form Only Improvements, Quick Switch, Schema Definition Updates

    Changes in: app Permalink

    With our latest release, we’ve launched some new features and improved form only experience of Storyblok.

    Form Only with expandable components

    The form only just got so much better with our expandable components, allowing you to not only navigate through your components but also to quickly expand some of them without navigating into them.

    Expandable components

    Config, Status and Tools

    We’ve moved the top navigation to a tab navigation in the sidebar to introduce two new sections. Status which will be improved over the next couple of months into a Workflow feature. and Tools which will allow you to build a new type of apps to trigger tasks and/or the best place to integrate translation systems.

    New tabs

    Mobile Preview now in Preview URL bar


    Creating new Components

    Create new components in the new sidebar right in your compose mode or in the components menu.

    Creating new component

    Defining new Fields

    After sending out surveys to randomly picked customers we’ve now switched the order of new keys being added to your components, no need to reorder them all over again and again, they are not added at the bottom of your fields.

    New fields

  • Lookahead and collaborator invite

    Changes in: app Permalink

    We’ve removed the invite new users to your space feature for an undefined amount of time.

    To invite new users to your space, you will have them create their account on our signup form first. You can also register the account for them by defining their password. They will be able to change the password once their are logged in at their profile page.

    1. Sign up their account in our Sign-up Page. (You need to be logged out to reach that site, otherwise you will be redirected)
    2. Add them as collaborator
    3. Have them change their password
  • New Feature: Component Groups

    Changes in: mapi app Permalink

    With component groups you will be able to add a virtual structure to your list of components. This will make the organization within components easier.


    Besides the better organization of components adding a specific group as whitelist to the blocks field type, so one would not need to update block fields if a new component is introduced and a group is used for restrictions.

    Component group restrictions

  • Plugin subdomain for custom fields

    Changes in: app Permalink

    Plugins have received their custom subdomain for Storyblok so they no longer can access the context from within the field type. This was necessary to not allow field types to access localstorage and other information that are not intended to be shared with the plugins.

    Please update your configurations to whitelist rather than since all API calls will be done by that domain starting with 30.04.2019.

  • Improved multi browser tab title naming

    Changes in: app Permalink

    Feature Request: “Add space name into browser tab title. If you have opened multiple different spaces is hard to differ between the tabs. :) Thx! This small change would help a lot ;)”

    We’ve added the space name, plugin names, route names, and other useful information for all of you that love to life in multiple browser tabs.

  • Default asset folder for file field type

    Changes in: app Permalink

    You can now choose “Default Asset Folder” for the field type file which was previously only available for the type image.

  • Language codes added to space/me

    Changes in: api Permalink

    If you already use field level translations you know that you can configure the available languages in the settings tab. Now, you can also get it from Storyblok’s API in the call /v1/cdn/spaces/me.

      "space": {
        "language_codes": [ "en", "de", "es" ]
  • App Store

    Changes in: app website Permalink

    The new Storyblok App Store has been launched!

    With the new app system developers can contribute with their own apps to extend Storyblok’s functionality.

    Storyblok App Store

  • Last author and is_published

    Changes in: mapi Permalink

    Introduced two new filter for the Management API:

    • v1/stories:
      • is_published (bool)
        • false to receive only entries that were never published (or were unpublished)
        • true for those that were published at least once
      • last_author is now available in the list call too.
  • 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": {