ABCDEGHIJKLMNO
1
lCapability (short-form title)Capability FamilyMilestoneRequired for MVPPriority (1-10)LinkStory (long form description)FTEsBest Case Size (weeks)Realistic Case Size (weeks)Worst Case Size (weeks)Most Probable Size (calculated, FTE weeks)Variance
2
1Adding componentsPage Builder0.1.0Yes10As a creator, I want to add components to pages using an intuitive interface, so that I can create engaging and dynamic layouts that effectively communicate my message and engage with my audience. This includes features such as a drag-and-drop interface, customizable settings for each component, and seamless integration with other Drupal features such as media management.3691327.5012.25
3
1.1ElementsPage BuilderYes10As a creator, I want to add elements to pages using an intuitive interface, so that I can start creating content before having a defined design system. These elements may be later used to create new components.23468.331
4
1.2Design system (foundations)Page Builder1.0.0Yes10As a builder, I want to be able to create design systems that may combine any experience builder configuration (once they have been implemneted). This includes 1) Style Guide 2) Patterns 3) Components 4) Templates (except content model templates) in a way that they could be shipped as a package (e.g. default design system for Drupal, or a design system of an enterprise to use across multiple brands)1.53456.000.25
5
1.3Default design systemPage Builder0.1.0Yes10As a creator, I want to have a default design system to start with so that I can start creating content without having to first define a design system. The default design system should include pre-configured patterns, components, and a styleguide. 215182035.672.777777778
6
2Content editing (of fields)Page Builder1.0.0Yes10As a content creator, I want to edit fields directly within the page builder interface. For example, the title should be editable on the same page as the page builder. I expect the page title to be displayed in the preview. WITHOUT IN-PLACE EDITING 28121624.007.111111111
7
2.1Content editing of meta fieldsPage Builder0.3.0Yes10As a content creator, I want to edit meta fields directly within the page builder interface. For example, the menu links and URL alias should be editable on the same page as the page builder. I expect the page title to be displayed in the preview.22468.001.777777778
8
3Real-time page previewPage Builder0.1.0Yes10As a creator, when I'm editing content, I want to see a real time preview of what I'm editing. Custom component code should not have to be aware that it may be rendered in the page builder.2.216182240.334.84
9
4Component creationTheme BuilderNo10As a builder, I want to create components using pre-defined elements and components via no-code tools. While creating components, builders want to define how the component looks and which parameters the component can take. The component may be rendered using the parameter values or static values.2.5481019.176.25
10
5Place blocks as componentsPage Builder1.0.0Yes10As a builder, I can place and render blocks and fields rendered via Twig if they are exposed to the page builder as components. Blocks and fields defined in Twig should be able to render both in the preview, and the end-user facing page. This is to enable backwards compatibility with code that already exist in contrib and custom modules.245810.671.777777778
11
6Save (draft) contentPage Builder0.2.0Yes9As a creator, I can create draft content and preview and edit content that hasn't been published yet. The workflow state is consistent for the page and the components that are added to the page. Past-facing sibling: "Revisionable pages" capability.2.1461013.304.41
12
7Content type templatesPage Builder1.0.0Yes9As a builder, I want to create and modify content type templates for how content of a specific content type will be displayed. I want to be able to create multiple templates for a given content type (view mode). Within the template, I want to add components that may or may not map to fields in the content type.334612.502.25
13
7.1TokensPage Builder0.2.0Yes9As a creator, I want to map component properties to fields instead of using static content. For example, display the node title in a hero component, or use a design token (i.e. CSS variable) for the background color of the hero component.2681517.679
14
7.2Following entity relationshipsPage BuilderNo6As a creator, I want to place field values from referenced entities in a component, for example: the value for the location field of the User entity in the author field of the currently laid out Node entity.
15
7.3
Applying SDC to each field item (delta)
Page BuilderNoAs a creator, I want to be able to render each item (delta) in a field using an SDC. For example, if a tags field contains 3 terms (i.e. referenced entities), then I want to render each using a "card" component. If there are zero terms, I would want nothing to be rendered. The UX indicates (visually + otherwise) that it's not 1 but 0…N, 0…1, 1…N, 1…5 components, depending on the cardinality of the field.
16
8Moving components (Page builder)Page Builder0.1.0Yes9As a creator, I want to be able to insert new components and change the order of the components, and move them from one place to another on the page. This will require actions for drag-and-drop, clicking with mouse, and keyboard.23468.331
17
8.1
Moving components (Component builder)
Theme BuilderNoAs a builder, I want to be able to move elements and components while editing a component. This includes changing the order of them, and moving them from one place to another in the component. This will require actions for drag-and-drop, clicking with mouse, and keyboard.224109.337.111111111
18
9Revisionable pagesPage Builder0.2.0Yes9As a builder, when I make changes to pages, I want to be able to see previous versions of the page and revert back to an older version of the page. This could be either before or after the page has been published. Future-facing sibling: "Draft content" capability.1.52243.500.25
19
10Component previewTheme BuilderNo9As a builder, when I'm editing components, I want to see a real time preview of what I'm editing. I want to be able to define temporary values for any values that would be usually set dynamically, e.g. component parameters. Ideally the interface is the same or very similar to the page builder.24101218.677.111111111
20
11Component hoverPage Builder0.1.0Yes9As a builder or creator, I expect to be able to inspect any visual element on the page by hovering/clicking on it. This will either let me edit it (if editable), and/or tell me what rendered it and tell me how to edit it. For example, an instance of component would be editable within the current page, but would also provide builders with guidance to how to edit the structure of the component.2681016.001.777777778
21
12Nestable componentsPage Builder1.0.0Yes8As a creator, I want to be able to nest components. For example, I want to render accordion which contains text within a two-column layout. 00000.000
22
12.1Multiple dropzonesPage BuilderNo7As a builder, I want to be able to create components with multiple dropzones.00000.000
23
12.2Component props and dropzonesPage BuilderNo7As a builder, I want to be able to create components that may consist of props and a dropzone. For example, image on the side and a dropzone.1.11242.380.3025
24
13Undo and redoPage BuilderYes8As a creator, I want to be able to trial and error when making changes. This can be enabled by undo and redo functionality which can be triggered without saving content. This is not same as revisioning, this is more like CTRL+Z and CTRL+SHIFT+Z in text editors. These changes do not have to stored after the content has been published.22366.671.777777778
25
14Configuration managementTheme Builder0.2.0Yes8#3444424As a technical builder, I want to be able to work in a separate development environment and move changes to components, templates, or the design system to production. Changes may consist of creation of new components and changes to designs or structure of the components. Ideally this would be managed as part of the configuration management system which is built into Drupal so that the Theme Builder doesn't introduce new processes.246812.001.777777778
26
15Developer-created componentsPage Builder0.1.0Yes8#3444417As a technical builder, I want to have an easy way to expose components written in SDC to the experience builder. This is to provide a great onboarding experience for Drupal developers. Note: not all SDCs should be exposed automatically to the experience builder.22356.331
27
16Page hierarchy previewPage Builder1.0.0Yes8As a content creator, I expect to see both a visual and a structural (e.g., a hierarchical tree) represenation of my page layout and content (at the same time). I should be able to use the structural layout to edit the content. E.g., change the order of compontents, delete, duplicate, etc.1.148108.431.21
28
17Restricted nested componentsPage BuilderNo7As a builder, I want to limit which components can be placed inside a component, and how many components can be added. For example, in the hero region allows adding text and button components inside the hero, but there can be maximum 2 components. The restrictions are NOT related to the props values.
29
18Navigate between layersPage BuilderYes7As a builder, I want to be able to edit anything I see. If I can see it, I can edit, even if I need to move to a different layer, e.g. global template, node template, menu template, menu item template. For example, if I'm editing the page template, I want to be able to edit the global template easily. The experience should feel coherent, and user should have a way to get back to where they were before taken to a different edit screen.2461012.674
30
19Modify the page templatePage Builder1.1.0Yes7As a builder, I want to modify the page template (i.e. page.html.twig). When I modify the page template, I can place components globally to global regions like navigation, header, footer, etc.3681225.009
31
20Responsive design supportPage BuilderNo7As a creator, I want to be able to customize the page per component depending on the breakpoint (e.g. mobile, table, desktop etc.) via the UI. For example, I want to specifically change the padding for a specific component when the component is displayed in the mobile breakpoint.
32
21Copy and pastePage BuilderNo7As a creator, I want to be able to copy and paste content (layout, components, styles, text, media) from one page to another so that I can create content easily based on existing content.
33
23Component creation via code editorTheme Builder1.1.0Yes7As a technical builder, I want to be able to create and modify components via code when implementing more complex components without writing PHP or leaving the browser. 210152030.0011.11111111
34
24Component CSS code editorTheme Builder1.1.0Yes7As a technical builder, I want to be able to modify component styles in browser without leaving the page builder via a built-in code editor with syntax highlighting and auto-completion.28101621.337.111111111
35
24.1Component template editorTheme Builder1.1.0Yes7As a technical builder, I want to be able to modify components in browser without leaving the page builder via a built-in code editor with syntax highlighting and auto-completion.26101620.67
36
24.2No-code CSS editor integrationTheme BuilderNo
37
25HTML element style editorTheme Builder1.1.0No7As a builder, I want to modify the design of the global styles using a no-code editor. Users may opt-in to using the "Code editor" capability when implementing more complex designs.2.58121630.0011.11111111
38
26StyleguideTheme Builder1.0.0Yes7As a design focused builder, I want to build a design system that enables others to create configurations of the theme that meet specific brand guidelines. This includes being able to define design tokens that can be used for configuring colors, font types, measurements, and effects. Builders should be able to use those design tokens within components. When configuring the design token values, the builder should be displayed a preview of the changes.334914.009
39
27Design limitationsTheme BuilderNo7As a builder, I want to control which design settings are available to creators so that I can ensure the designs remain the level of consistency expected. For example, creators might be able to change the font-size but not the text color.
40
28Component style overridesPage BuilderNo7As a creator, I want to make a one-off override of a component. This means modifying the pre-defined style of a given component with a one-off override. For example, on the Black Friday sale page, I want to override the color of the “add a cart” component’s button.
41
29Layout patternsPage Builder1.0.0Yes7As a builder, I want to be able to create reusable patterns that accelerate the process of setting up a site: save the components of a single slot as a reusable pattern. And offer the creator the ability to use these.2591318.007.111111111
42
30Asymmetric Translation SupportPage BuilderNo6As a creator, when I maintain a website spanning across multiple markets, I want to be able to translate and customize components on the page for each locale.
43
31Map external data to componentsPage BuilderNo6As a creator, I want to render components using data from external systems, like a commerce platform. For example, I want to retrieve a product from Shopify, and display the product name, price, and image in a card component.
44
32Pattern libraryPage BuilderNo6As a creator, I want to create reusable patterns using existing components to make creating content faster and easier. Patterns are composition of multiple components, where the changes are not synced across different instances where the pattern is used.
45
33JavaScript componentsJS Components + PreprocessingNo6As a front-end developer, I want to be able to leverage individual components from pre-existing design systems my organization owns (e.g. button component). Oftentimes components are written as React, Vue, or Web Components. This should be achievable without writing PHP, or creating a Drupal module.
46
34Design systemsTheme BuilderNo6As a builder, I want to be able to collaborate with designers using tools I'm already accustomed to use, e.g. Storybook. I want to be able to have the components in a format that enables loading them in these tools.
47
35Third party integrationsPage BuilderNo6As a technical builder, I want an easy way to enable creators to connect components to data from a third-party system e.g. commerce platform. This is needed to power the "Map external data to components" capability.
48
36Component revisionsTheme BuilderYes As a builder, I want to track changes made to components and be able to revert back to a previous revision. We expect many revisions initially, and then the rate of change to drop. Other systems tend to merge/reduce revisions to one per month.2361012.335.444444444
49
37Revisionable templatesPage BuilderYes6As a builder, when I make changes to templates, I want to be able to revert back my changes to an older version of the template. This could be either before or after the template has been deployed to production use.11252.330.4444444444
50
38Site Studio MigrationPage BuilderNo6As a builder, I want to be able to migrate from Site Studio to Experience Builder. This includes migrating content, components, styles, templates.
51
39Layout Builder MigrationPage BuilderNo6As a builder, I want to be able to migrate from Layout Builder to Experience Builder. This includes migrating existing content and block types to the Experience Builder.
52
40Default layoutsPage BuilderNo6As a content creator, I expect the page builder to have a default set of mobile first layouts that I can select from.
53
41Conditional display of componentsPage BuilderYes6As a creator, I am able to conditionally display a component based on easily configured criteria. E.g., if a token equals a specific value.36121836.0036
54
42Paragraphs migrationPage BuilderNo5As a builder, I want to be able to migrate from Paragraphs to Experience Builder. This includes migrating existing content, display configuration, and Paragraph types to the Experience Builder.
55
43Optimize JSON:API representationPage BuilderNo5As JavaScript developer, when I query JSON:API, I expect to see page nodes that use the Page Builder. When I query the node itself, I get layout information and structured list of each component displayed on the page and a way to retrieve the overall page content as well as the individual component content.210203040.0044.44444444
56
44Component usageTheme BuilderNo5As a builder, I want to be able to track usages of component. This helps builders to track what is the potential impact of making changes to a component or deleting a component.
57
45Content type template variantsPage BuilderYes6As a creator, I am want to create content type template variants, each with different layout and component. I can configure the conditions under which a given variant is displayed.1.52486.502.25
58
46Symmetric Translation SupportPage BuilderNo4As a creator, when I maintain a multilingual website for a single market, I want to be able to translate text on the page for each locale without introducing changes to the look and feel between translations. For example, user could translate text from a component that has an image and text without translating the image. In this case if the image is changed, it is updated to across all translations.
59
47Editorial commentsPage BuilderNo4As a creator, when I'm reviewing changes to content from other creators, I want to be able to leave comments. For effective collaboration, I also want to be able to respond to comments from other creators.
60
48Collaborative editingPage BuilderNo3As a creator, I want to work collaboratively in real-time with other creators. This means being able to work on the same page simultaneously with other creators, and seeing changes made by them.
61
49Component migrationTheme BuilderNo2As a builder, I'm want to be able to change the component props and migrate existing content to the new schema easily.
62
55WorkspacesTheme BuilderNoAs a builder, I want to work on draft versions of changes to components, templates, and content before publishing all of it together to the end-users. I want to work in a single environment. I should be able to make changes to multiple templates and components, and when I'm ready, I can click "publish" for all of the changes to take effect.
63
56Review linksTheme BuilderAs a builder, I want to be able to invite a stakeholder to review changes staged to be published. The stakeholder may not have an account in Drupal.
64
57Anti-concurrent editing of contentPage BuilderNoAs a creator, I want to know if someone else is editing the page to not run into conflicts with other creators
65
58
Anti-concurrent editing of components
Theme BuilderNoAs a builder, I want to know if someone else is editing a component to not run into conflicts with other builders
66
59Edit multiple layers locallyPage BuilderNoAs a content creator, I want to edit a page, layout and styles. I don't want any of it to be published until I press "publish."25153031.6769.44444444
67
60Paragraphs integrationPage BuilderNoAs a creator, I want to be able to create paragraphs content inside the page builder. The paragraphs may be stored in a separate entity reference field.138168.504.694444444
68
61Layout Builder IntegrationPage Builder1.0.0YesAs a creator, I want to be able to create layout builder (inline blocks) content inside the page builder.2481617.3316
69
62Convert components to SDC codePage BuilderNoAs a builder, I want to create a component in the UI. When I want to customize it in a way that is not supported by the UI, I can convert that component to code and customize it manually. It’s ok if I can’t then edit it in the UI, because I made a change not supported by the UI editor.148107.671
70
63Shared componentsPage BuilderNoAs a builder, I can use the UI to create a component. I can export a set of components, manage them under version control.28162432.0028.44444444
71
64
Module shipped no-code components
Page BuilderNoAs a module maintainer, I want to build a component in the UI, export it to disk somehow and ship it with my module such that consumers can import and edit that component in a UI.00000.000
72
50Page BuilderAs a builder, I can lock components so that they cannot be edited without being unlocked first.
73
51Theme BuilderAs a builder, I am able to edit the code of template files in my web browser.
74
52Theme BuilderAs a builder, I am able to save my theme and revert to previous versions of it.
75
53Theme BuilderHOW ARE UI-CREATED COMPONENTS STORED? SDC implies: on the filesystem. But then how does it sync across environments? Site Studio instead stores it as config entities, but then runs into "interesting" challenges when the component depends on a content entity.
76
54Theme BuilderCOMPONENT UPDATES: when a component is modified (parameters renamed, new parameters required …), all existing component instances must be updated, which 1) requires reliably finding them all, 2) updating them all, and that could be >10K components, which in Site Studio's experience may take HOURS.