Overview

XB was originally developed in parallel:

  • one pure client-side PoC
  • one pure server-side PoC

Then we got the two talking to each other. XB was originally developed with support SDCs, exclusively, and this is still visible in the metadata about components (the /xb/api/config/component route's response): they're highly SDC-specific.

Then in December 2024, we overhauled it significantly in #3491013: Rework layout API to separate components and slots and introduced multiple "node types" in the JSON tree structure the client expects.

But virtually everything here has been demo-driven development. There's lots of loose ends, duplication, imprecise OpenAPI specs, etc.

Beta blockers (July 2025)

Beta blockers (tag: beta blocker) MUST happen before #3515932: Milestone 1.0.0-beta1: Enable creation of non-throwaway sites.

(Numbered lists must happen one after the other, bulleted lists can happen in parallel.)

Stable blockers (October 2025)

Stable blockers (tag: stable blocker) do not block #3515932: Milestone 1.0.0-beta1: Enable creation of non-throwaway sites, but would be nice-to-have at that point in time. They MUST happen before #3517885: Milestone 1.0.0: Production Sites.

(Numbered lists must happen one after the other, bulleted lists can happen in parallel.)

Comments

wim leers created an issue. See original summary.

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

Oops. #3519992 is part of #3452581: [META] XB Permissions.

wim leers’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes

Added two missing things for the client-side data model:

  1. Missing "node type" in docs/data-model.md's 3.4 UI Data Model: communicating a `component tree` to the front end: a node type for exposed ContentTemplate slots: #3519352-32: Content templates, part 3b: store exposed slot subtrees on individual entities
  2. Missing "node type" in docs/data-model.md's 3.4 UI Data Model: communicating a `component tree` to the front end: a node type for overrides/personalization variants

I mentioned this to @jessebaker before in chat/conversation and to @penyaskito about the second bullet), but it's really starting to become time to get that going.

wim leers’s picture

Issue summary: View changes

#20.2 is overkill, based on a call I just had with @effulgentsia and @penyaskito — thanks @effulgentsia for raising, as you heard, I'd already been thinking in the same direction 😊

wim leers’s picture

Issue summary: View changes

HTML fixes.

wim leers’s picture

Issue summary: View changes

⚠️ a crucial piece here is access control/permissions, but that has its own meta: #3452581: [META] XB Permissions.

wim leers’s picture

Assigned: wim leers » Unassigned
Issue summary: View changes
Status: Active » Patch (to be ported)

Added #3525130: Never show any messages in XB's previews to beta blockers and #3528847: Implement `lookup_keys` in Component for optimized queries to stable blockers.

As you can see as of #22, IMHO all remaining HTTP API changes can happen after beta1 aka #3515932: Milestone 1.0.0-beta1: Enable creation of non-throwaway sites.

Observations:

That's why actually … I can signal this is "done for now", i.e. for #3515932: Milestone 1.0.0-beta1: Enable creation of non-throwaway sites but NOT for #3517885: Milestone 1.0.0: Production Sites, by marking this Patch (to be ported).

wim leers’s picture

Title: [META] Production-ready client-side data model + internal HTTP API » [META] Maintainable client-side data model + internal HTTP API
Status: Patch (to be ported) » Postponed

Given #3520484-76: [META] Production-ready ComponentSource plugins, this actually won't be blocking a stable (1.0) release.

wim leers’s picture

Project: Experience Builder » Drupal Canvas
Version: 0.x-dev » 1.x-dev

Experience Builder has been renamed to Drupal Canvas in preparation for its beta release. You can now track issues on the new project page.

wim leers’s picture