Purpose:

  • Hosted demo solution on Drupal.org, start building excitement around the experience builder
  • Help agencies to contribute to the initiative

When: BY DrupalCon Barcelona 2024
Not included:

  • An easy way to install
  • Backwards compatibility, migration
  • A way to save the changes to the page

Requirements:

  • Hosted demo without authentication
  • Updated page building experience that looks modern and is competitive in the market

This first demo will focus on content creation experience from the lens of a Content Creator or a Content Manager. We can use this Blook.li demo as a benchmark, meaning we should have a URL where we can point users to, and they will be immediately launched to the Experience Builder editing experience. In other words, the user can edit a single page with a predefined design system.

In order for this demo to be successful at generating excitement, the user experience should be competitive with competitors like Gutenberg, Plasmic, Builder.io, and Framer. It needs to have a sufficient amount of components, as well as configuration options to be able to handle a realistic page. The demo should mix both unstructured and structured content (i.e. structured fields and components from this example: https://www.figma.com/board/GChEUDKRkzf5g01cyRbGHV/Component-types?node-...).

When user lands on the demo, they should see Experience Builder with this page as the content: https://www.figma.com/design/aADVsc8fdsENnUaKePvVpg/Experience-Builder-D...

In order for someone to construct a page like this, we'd need to have the following editorial capabilities within the Experience Builder:

  • Adding new components
  • Adding new components to a slot
  • Removing components
  • Editing component prop values
  • Re-ordering components
  • Selecting a component variant
  • Attaching images / media

User stories targeted for 0.1.0, and how we're tracking towards them):

  1. 🟢
    As 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.
  2. 🟢

    As 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.

  3. 🟡
    As a creator, I want to be able to use images from the Drupal Media Library so that I can create more engaging and unique content.
  4. 🟢
    As 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.
  5. 🟢
    As a creator, I want to be able to nest components. For example, I want to render an accordion which contains text within a two-column layout.
  6. 🟢
    As a creator, I want to select a variation of a component. For example, I want to select a dark or light variation of a card component.
  7. 🟢
    As a content creator, I expect to see both a visual and a structural (e.g., a hierarchical tree) representation 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 components, delete, duplicate, etc.
  8. 🚫
    As 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.
  9. 🚫
    As 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.
  10. 🟢
    As 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 the same as revisioning, this is more like CTRL+Z and CTRL+SHIFT+Z in text editors. Changes in between different save states are only retained as long as the user remains in the Experience Builder.
Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

    Comments

    lauriii created an issue. See original summary.

    lauriii’s picture

    Issue summary: View changes
    wim leers’s picture

    […], meaning we should have a URL where we can point users to, and they will be immediately launched to the Experience Builder editing experience. In other words, the user can edit a single page with a predefined design system.

    See #3450311-8: CI: host static version of UI in GitLab Pages — Field Widgets presumably need non-static responses, although I'm sure we could spend extra time working to make it static, for demo purposes.

    larowlan’s picture

    Sounds good - we can use MSW to mock all the endpoints so it is static - at present we're only booting MSW if the NODE_ENV is not production but we could use different environment flavours to change the handlers we use. E.g. we could have a NODE_ENV=demo

    wm_walsh’s picture

    Hi, I want to join this initiative on Starshot. I am the web developer for Massachusetts Bay Community College in Wellesley, Massachusetts, USA. It is a Massachusetts state government affiliated organization. I have used Drupal since 2011, Drupal 6 at Kaspersky Lab (Security Software based in Moscow) North American Headquarters in Woburn, MA. I have built the website for Massachusetts Bay Community College in Drupal 7 with the Omega responsive theme.

    https://www.massbay.edu. I made all of the design and code development and layout and it is hosted on Pantheon.io software/platform as a service. The update to Drupal 8, 9, 10 has been difficult for us. I made a sub-domain in Drupal 10, also in Pantheon.io: https://live-directory2024.pantheonsite.io/. In itself it's easy to use, but the difficulty is in customizing themes and layouts and building features beyond the basic templates. I have just finished Mike Anello's Professional Module Development class and am taking Treehouse Twig Templating to catch up to the codebase changes.

    I'm a big fan of Drupal and the ability to build whatever we want with the vetting of a developer community. I've attended Design4Drupal since it began at MIT about 10 years ago. The school needed a lot of convincing to stay with Drupal and not switch to WordPress or listen to other CMS. vendors giving them a sales pitch :). We are going to launch our Drupal 10 website this summer but it took a lot of time, work and money. The best I can tell them is that we will have an easier path to keep the site in Drupal which has great security and user experience once built!! I will sign up for issues, I have downloaded the phenaproxima prototype, I am workin on a Mac with brew, composer, git, PHP Storm, the newest Shiva PHP and Xdebug, and phpstan and phpcs and phpcbf. The current MassBay site is built with JQuery but the new one will be Next JS and PatternLab, I am transitionion also to plain vanilla Javascript to avoid frameworks which will then be discontinued.

    Thanks!!! I'm in touch with Ms. Chumillas on LinkedIN -- <3 Barcelona and just came back from Geneva, CERN and Patek Phillippe and the mix of languages was enlightening, I can see why Tim Berners-Lee invented WWW on top of DARPA internet.

    Best regards,
    Wendy Walsh
    MassBay Community College

    wim leers’s picture

    Subsequent milestone created: #3455753: Milestone 0.2.0: Early preview — it's a child issue of this one.

    wim leers’s picture

    Status: Active » Postponed (maintainer needs more info)
    Related issues: +#3390712: Add component variants to SDC

    Selecting a component variant

    There are 0 mentions of "component variant" in the product requirements.

    "Component variants" are being proposed for the SDC subsystem at #3390712: Add component variants to SDC, but it's uncertain whether that will be ready.

    Is that what you're referring to?

    wim leers’s picture

    To expand on #7: we discussed "component variants" during those first ~8 weeks … because we were extrapolating from the product requirmeents.

    But all of that was about creating variants of components by using design tokens. But none of how design tokens is supposed to A) be represented, B) connect to SDCs, is defined at this point. 3 weeks ago, I met with @ckrina, @jponch, @e0ipso and @mherchel. I haven't heard news from @ckrina. The big challenge for design tokens will be to get as many components as possible to use the same set of widely used, "standardized" design tokens. Because … when that's not the case, you'd have to manually remap components' design tokens to the design tokens that you're using in your site's design system. That's the main challenge that was identified in that meeting.

    (That's an oversimplification actually — because there's a distinction between different levels/layers of tokens: semantic, primary, terminal … and even those names are not necessarily agreed upon yet!)

    @e0ipso shared a demo of an early implementation of design token support in SDC. But that's only a small part of the challenge — the key challenge is the above: the naming of the design tokens and attempting to get all components to use the same design token naming scheme.

    lauriii’s picture

    Issue summary: View changes
    lauriii’s picture

    Component: Page builder » Project Management
    wim leers’s picture

    Issue summary: View changes
    wim leers’s picture

    Assigned: Unassigned » wim leers
    Status: Postponed (maintainer needs more info) » Active
    Issue tags: +Needs issue summary update
    wim leers’s picture

    Assigned: wim leers » lauriii
    Issue summary: View changes

    Back to @lauriii to keep that table up-to-date now.

    wim leers’s picture

    Issue summary: View changes
    wim leers’s picture

    Issue summary: View changes
    wim leers’s picture

    Issue summary: View changes
    wim leers’s picture

    Issue summary: View changes

    Went through all 10 user stories together with @lauriii and @jessebaker. Updated status + links 👍

    @lauriii will create some additional issues.

    kristen pol’s picture

    Component: Project Management » Page builder
    StatusFileSize
    new516.11 KB

    Note that the SDDS team did build off of the original Figma designs:

    https://www.figma.com/design/aADVsc8fdsENnUaKePvVpg/Experience-Builder-D...

    but were asked to ditch those (we are renaming those components to old-component-name :) in lieu of the new designs that were sent less than 2 weeks ago:

    Target Pages for Barcelona > Kasey’s Homepage

    https://www.figma.com/design/tKYim76bnDZAyWubUi3sVv/New-Drupal-Brand---D...

    so we should update the link but I'm hesitant to update the summary myself :D

    wim leers’s picture

    that were sent less than 2 weeks ago

    I know nothing about that 😳

    Who sent those? Why the sudden change? And most importantly: where?! 🤪

    IOW: why was that not written publicly in #3454125: Implement temporary design system for the DrupalCon Barcelona demo?! I just commented there on August 22 in comment 53 (#3454125-53: Implement temporary design system for the DrupalCon Barcelona demo), the prior comment was by @kristen pol on July 19 in #51 (#3454125-51: Implement temporary design system for the DrupalCon Barcelona demo). If there's no comment on the d.o issue, then most of us will simply not know, and the community at large definitely cannot know.

    kristen pol’s picture

    Apologies but been doing 70+ hour weeks and trying to keep people busy so I didn’t think about it until I was going through issues yesterday. Lauri already was aware of this request from Suzanne btw.

    wim leers’s picture

    🤗😭 I know the feeling. 😬 70+ hours is not sustainable, hope you can cut that down to healthier levels ASAP! 🤞

    wim leers’s picture

    Issue summary: View changes

    #3463618: Include component props form in undo is in — updated user story 10 to 🟢 🥳

    wim leers’s picture

    lauriii’s picture

    Issue summary: View changes

    Moving the specific issues to a prioritized list since it might not be feasible to get all of them done on time.

    lauriii’s picture

    wim leers’s picture

    kristen pol’s picture

    This one seems to be missing from the curated short list, but I’m on phone and have no power so hard for me to review and navigate well

    #3469856: The component preview should have a background: include theme's global asset libraries for component preview

    lauriii’s picture

    effulgentsia’s picture

    wim leers’s picture

    Issue summary: View changes

    #30: I think you meant to remove it? 😅

    #3471171: Allow components to use textarea in favor of input is also in, removing.

    lauriii’s picture

    wim leers’s picture

    Issue summary: View changes

    #3471511: `enum` data shapes: error when choosing "- None -" in `<select>` is necessary too, to avoid the - None - option appearing for the type: string, enum: […] prop shapes.

    wim leers’s picture

    effulgentsia’s picture

    Issue summary: View changes
    lauriii’s picture

    wim leers’s picture

    wim leers’s picture

    wim leers’s picture

    balintbrews’s picture

    balintbrews’s picture

    lauriii’s picture

    Issue summary: View changes

    Created an issue to polish the page hierarchy: #3472243: Adjust page hierarchy styles to avoid elements moving.

    lauriii’s picture

    lauriii’s picture

    lauriii’s picture

    Issue summary: View changes

    Descoping #3468115: [PP] [needs design] Create Cypress E2E test for component variants UX because we have manually validated that variants work. This means that user story 6. is 🟢.

    wim leers’s picture

    Issue summary: View changes

    @lauriii was being trolled by Google Chrome — he literally couldn't type anything anymore 🙃 So, making this change on his behalf 😄

    lauriii’s picture

    wim leers’s picture

    wim leers’s picture

    lauriii’s picture

    balintbrews’s picture

    wim leers’s picture

    wim leers’s picture

    Issue summary: View changes

    @bnjmnm reported over at #3471511-15: `enum` data shapes: error when choosing "- None -" in `<select>` that #3471511 will be solved as part of #3463842: [META] Redux sync on ALL prop types, not just ones with a single [value] property! 🚀 And over at #3472192-18: Redux support for ImageWidget: `[image] String value found, but an object is required`, that that too will likely be addressed as part of #3463842.

    Bumped #3463842 to the top priority, since it will likely close 3 issues on the list 👍

    wim leers’s picture

    tedbow’s picture

    Issue summary: View changes

    resaving to see currently assigned issue status

    wim leers’s picture

    Issue summary: View changes
    hooroomoo’s picture

    lauriii’s picture

    Issue summary: View changes

    Changing the relative priority of some of the issues.

    lauriii’s picture

    Issue summary: View changes

    Marking the user story 5. green 👍

    lauriii’s picture

    effulgentsia’s picture

    Issue summary: View changes

    Refreshing IS.

    effulgentsia’s picture

    Issue summary: View changes

    #65 x-posted with #64. Fixing that.

    kristen pol’s picture

    lauriii’s picture

    Issue summary: View changes

    Surfacing #67 in the list.

    lauriii’s picture

    wim leers’s picture

    lauriii’s picture

    Issue summary: View changes
    wim leers’s picture

    lauriii’s picture

    Issue summary: View changes
    balintbrews’s picture

    wim leers’s picture

    wim leers’s picture

    wim leers’s picture

    Issue summary: View changes

    @jessebaker and I met with @lauriii this AM. Lauri has since boarded a plane on his way to Barcelona, and will be out for a few days prior to DrupalCon.

    He conveyed @Dries is very satisfied with the Experience Builder demo he recorded.

    He also conveyed that the Acquia UX team has made significant changes to the design.

    That means:

    1. #3472199: Component props form: style plain text, link, textarea, bool, and select elements (1.)
    2. #3470931: Cleaning up the component insert panel (1.)
    3. #3470594: Refine dragging behavior and design in Layers menu (7.)
    4. #3471978: Make the Media Library dialog look like the admin theme without materially affecting anything outside of the dialog (possibly use an iframe for CSS isolation) (3.)

    no longer are top priorities.

    The first 3 aren't because they would then need to change anyway due to design changes.

    The 4th isn't because the only thing that we could've finished in time before DrupalCon wouldn't have been possible, since the complexity of the correct/long-term solution would take a significant amount of time (see @bnjmnm's write-up at #3471978-10: Make the Media Library dialog look like the admin theme without materially affecting anything outside of the dialog (possibly use an iframe for CSS isolation)), so this was only among the top priorities for a temporary/throwaway solution prior to DrupalCon. Which no longer makes sense to do with the XB demo recording for DrupalCon already final.

    Everything else is not subject to change, so we should still wrap those up.

    wim leers’s picture

    wim leers’s picture

    wim leers’s picture

    balintbrews’s picture

    wim leers’s picture

    balintbrews’s picture

    [deleted] (Wim beat me to it. 😊)

    balintbrews’s picture

    Issue summary: View changes

    #3469672: The XB annotations and labels should not change size when zooming landed 🚢 — and with that, our backlog is cleared. 😊🏁

    wim leers’s picture

    Assigned: lauriii » wim leers
    Status: Active » Reviewed & tested by the community
    Issue tags: -Needs issue summary update

    Will tag 0.1.0-alpha release tomorrow morning, right on time for DrupalCon 😁

    Go team! 🙌

    wim leers’s picture

    Version: » 0.1.0-alpha1
    Assigned: wim leers » Unassigned
    Status: Reviewed & tested by the community » Fixed
    lauriii’s picture

    Version: 0.1.0-alpha1 » 0.x-dev
    Issue summary: View changes
    lauriii’s picture

    Issue summary: View changes

    Status: Fixed » Closed (fixed)

    Automatically closed - issue fixed for 2 weeks with no activity.