Roots help you organize content hierarchically in a tree. Pages can have subpages, subpages can have sub-subpages and so on. This hierarchy starts at a Root.

    import {Config} from 'alinea'
    Config.root('Pages', {
      contains: ['HomePage', 'GenericPage'],
      i18n: {
        locales: ['en', 'fr', 'de']


    Roots should be defined within a Workspace.


    An icon can be used to label a root in the sidebar. Icons are implemented as a React component. You can find icons on Icones or install a package such as react-icons.


    An array of strings containing the names of types that can be created at the root.

    // only entries of type Page can be created at the top of the tree
    contains: ['Page']


    An object with internationalization configuration. Locales is an array of strings, containing locales described by a key that will, by default, show up in the url structure as well.

    i18n: {
      locales: ['en', 'fr', 'de']