Purpose

  • Save content created using the Experience Builder
  • Manage Block Layout using Experience Builder

Target date

February 27, 2025

Not included

  • Backwards compatibility, migration
  • Content type templates, using fields as prop values
  • Workspaces, revisions

Legend

  • ✅ Done.
  • 🚫 Deprioritized.
  • 🟢 High confidence.
  • 🟡 Medium confidence.
  • 🔴 Low confidence.
  • 🔵 Known to be needed eventually, but explicitly out-of-scope, to be tackled in the future.

Requirements

Jump to:

✅ 6. Save (draft) content

For 0.3.0, no Workspaces integration (or any handling of forward revisions), only auto-saved states (which aren't revisions) and a "Publish All" button to transfer the auto-saved state of every entity with valid auto-saved changes into real entity saves:

⮑ ✅ MUST-HAVE Back-end foundations:

  1. Auto-save: #3478299: Implement basic auto-save
  2. Publish: #3478565: Add Entity Update controller
  3. #3488368: Also convert metadata (page data) fields in ClientDataToEntityConverter
  4. #3489994: Create an endpoint to publish all auto-saved entities
  5. #3489743: Create AutoSave service and HTTP API to retrieve all entities with pending changes
  6. #3499791: Errors returned from the publish all endpoint should include the autosave key in the meta
  7. #3498227: Cannot save (Publish) page with just Druplicon component on it

⮑ ✅ MUST-HAVE Front-end foundations:

  1. #3491459: Implement the "Review N changes" button
  2. #3497530: Implement the "Publish All" button

⮑ ✅ MUST-HAVE End-to-end:

  1. #3487484: Save page data form values in application state with support for undo/redo
  2. #3495752: Send page data to Drupal for storage in auto-save store

⮑ 🟡 SHOULD-HAVE Polish away rough edges, improve long-term API stability/minimize technical debt:

  1. ⭐️ "validation error support" ⚠️ issue to be created ⚠️ — likely is blocked on some of the SHOULD-HAVEs below, details tBD.
  2. #3467954: META: Evolve XB UI's data model to allow non-SDC components' inputs, DynamicPropSource support, etc.
    child issues
    1. #3493941: Maintain a per-component set of prop expressions/sources
    2. #3493943: SDC+JS Component Sources: split default values into `resolved` and `source`
    3. #3499550: Support server-side massaging and validating of ComponentInputsForm values
    4. #3499554: Move client-side assumptions about prop form data shape into a series of prop-specific transforms
  3. #3499632: Remove `ClientServerConversionTrait` (C→S) and `ComponentTreeItemList::getClientSideRepresentation()` (S→C) in favor of (de)normalizers
  4. #3487284: [META] Add explicit end-to-end test coverage for using all core field widgets including multiple cardinalities in the "Page Data" (content entity) form
  5. #3503404: [Needs design] Polish flow for Publish all changes" when receiving conflict errors in response

⮑ 🔵 NICE-TO-HAVE Polish for later phase.

  1. #3495598: [PP-1] Don't store page template model data in auto-save for an entity
  2. #3489772: [PP-1] Add a param converter and DTO for XB data model


After 0.3.0, we'll work on Workspaces integration. The requirements and approach for that are being discussed in #3475672: Research: Possible backend implementations of auto-save, drafts, and publishing


✅ 19. Modify the page template (i.e. global regions)

⮑ 🟢 MUST-HAVE Back-end foundations:

  1. #3478537: Introduce an XB `PageTemplate` config entity
  2. #3479982: HTTP API to read+write PageTemplate and Pattern config entities
  3. #3492669: Use PageTemplate status flag to enable per-theme page templates
  4. #3489302: Preview entire page not just content area
  5. Late discovery, to facilitate 6. Save (draft) content: #3501600: Split 1 PageTemplate config entity into N PageRegion config entities

⮑ ✅ MUST-HAVE Front-end foundations:

  1. #3491013: Rework layout API to separate components and slots
  2. #3489106: Show page information in top bar
  3. #3497648: Focus mode for global regions, semi-blocked on #3489106: Show page information in top bar

⮑ ✅ MUST-HAVE End-to-end:

  1. #3484666: Show configuration forms for Block components

⮑ 🟢 SHOULD-HAVE Polish away rough edges, to match expected UX or improve long-term API stability/minimize technical debt:

  1. #3497747: Global regions containing only "dynamically missing blocks" (due to emptiness or access) cause malformed pages
  2. #3497744: If an autosave entry exists before enabling global regions for a theme, theme regions cannot be seen
  3. #3498248: PageTemplate: allow configuring which regions are exposed
  4. #3498747: Right-click menu for moving components between global regions
  5. #3499430: PageTemplate config entity no longer needs to be HTTP API-eligible
  6. #3502765: Global region focus spotlight may not match the actual region size in all cases
  7. ⭐️ #3502764: Non-empty global regions need to be highlighted when hovering with the green color

⮑ 🔵 NICE-TO-HAVE Polish for later phase.

  1. #3498815: Layers panel should not show Regions that are empty
  2. #3497990: [later phase] Support Block's PreviewAwarePluginInterface (and similar for other component sources)
  3. #3502766: [PP-1] Drag and drop in Layers is difficult to drop into bottom position Assigned to: parthbcharya
  4. #3502767: [PP-1] Drag and drop in Layers flickers when trying to drop into an empty slot
  5. #3502768: Dropping a component outside of the focused region breaks the preview

✅ 23. Component creation via code editor

⮑ 🟢 Proof of concept: #3483267: [exploratory] PoC of Preact+Tailwind components editable via CodeMirror Assigned to: balintbrews
⮑ Meta/plan: #3499919: [Meta] Plan for in-browser code components
(must-have/should-have/nice-to-have breakdown to still be figured out.)


✅ 5. Place blocks as components

⮑ 🟢 MUST-HAVE Back-end foundations:

  1. #3468112: Document the current component discovery + SDC criteria + `Component` config entity, and describe in an ADR
  2. #3469609: Prepare for multiple component types: ComponentTreeStructure should contain Component config entity IDs, not SDC IDs
  3. #3475584: Add support for Blocks as Components
  4. #3459088: Every XB `Component` config entity should have a `category` property
  5. #3474533: ComponentPluginManager must implement CategorizingPluginManagerInterface
  6. #3482393: HTTP API: update /xb-components to specify each `Component`'s `source`
  7. #3485917: `ComponentTreeMeetRequirements` constraint validator must be updated now that Blocks-as-Components are supported + make PageTemplate render main content!
  8. #3500997: Move SDC-specific validation in ValidComponentTreeConstraintValidator and ComponentTreeMeetsRequirementsConstraintValidator into the SDC source plugin
  9. #3498419: Assign each Component to a logical "UI library" during normalization

⮑ 🟢 MUST-HAVE Front-end foundations:

  1. #3492511: Move form state into the global store
  2. #3491978: Implement saving block settings forms

⮑ ✅ MUST-HAVE End-to-end:

  1. #3482529: Refactor XB internals to not assume /xb-components HTTP API returns only SDC-powered XB Components
  2. #3484666: Show configuration forms for Block components
  3. #3491978: Implement saving block settings forms

⮑ 🟡 SHOULD-HAVE Polish away rough edges, to match expected UX or improve long-term API stability/minimize technical debt:

  1. #3501708: Prove that it *will* be possible to apply block settings update paths (assuming #3521221 in core) to stored XB component trees in config/content
  2. #3500994: Remove references to 'props' outside of SDC - use 'inputs' instead
  3. #3501290: Introduce unit test coverage for both ComponentSource plugins (Block + SDC)
  4. #3484678: Simplify ComponentSourceInterface::getClientSideInfo(), introduce ClientSideRepresentation value object, and leverage it
  5. #3491032: Cannot enable block component once it has been disabled Assigned to: anjali rathod
  6. #3484682: Handle update and delete of Block `Component`s, plus react to dependency removal
  7. #3473275: Support disabled Block Components + multiple reasons for incompatibility
  8. #3473289: XB Component config entity's `status` may only be `true` if it meets all of XB's requirements
  9. #3500997: Move SDC-specific validation in ValidComponentTreeConstraintValidator and ComponentTreeMeetsRequirementsConstraintValidator into the SDC source plugin

⮑ 🔵 NICE-TO-HAVE Polish for later phase.

  1. #3485502: [needs design] Handle block contexts (aka implicit inputs vs `settings` aka explicit inputs)
  2. #3500795: [PP-1] Implement client-side validation of block settings
  3. #3484673: Remove ComponentSourceInterface::getDependencies() and Component::calculateDependencies()
  4. #3501671: Decouple component UUID from clientModelToInput and validateComponentInput

✅ 29. Layout patterns (i.e. sections)

⮑ ✅ MUST-HAVE Back-end foundations:

  1. #3479643: Introduce a `Pattern` config entity
  2. #3479982: HTTP API to read+write PageTemplate and Pattern config entities
  3. #3492312: Provide a utility method to convert client layout and model to server tree and props

⮑ ✅ MUST-HAVE Front-end foundations:

  1. #3459229: Allow saving component compositions as sections (frontend only)

⮑ ✅ End-to-end

  1. #3486203: Integrate saving sections with the backend: (de)normalize Pattern config entities using the client-side data model

⮑ 🔵 NICE-TO-HAVE Polish for later phase.

  1. TBD

✅ 2.1. Content editing of meta fields

Drupal doesn't currently distinguish metadata fields (fields like title and URL alias) from non-metadata fields. #3463991: [RESEARCH] How to identify all meta fields for an arbitrary content entity? has some discussion about this.

For 0.3.0, we'll sidestep this by only supporting the Page entity type, not Node. We'll consider all fields for Page to be metadata fields.

After 0.3.0, we'll support nodes, and editing both metadata fields and non-metadata fields, so we might not need the distinction between the two, unless the UX designs (which aren't done yet) requires them to be distinguished.

This means that for 0.3.0, the remaining work is:
⮑ 🟡 Using Page instead of Node: #3487070: [META] Pages
⮑ ✅ Show the page title in the top bar which also allows opening a page navigator: #3489106: Show page information in top bar
⮑ ✅ Allow creating new pages without going to the entity edit form: #3500046: Provide HTTP API to create a new Page content entity
⮑ ✅ Provide a good user experience for authoring meta tags for pages: #3497000: SEO settings for Pages — show form, not yet saveable
⮑ ✅ Allow replacing the page title without running into bugs: #3498485: 'false' appears in Page Title when deleting all characters
⮑ ✅ Allow navigating between pages without leaving Experience Builder: #3500056: [PP-1] Open navigation modal by clicking on page title in XB navigation
⮑ ✅ Integrating the PageData form with Redux: #3487484: Save page data form values in application state with support for undo/redo
⮑ ✅ Including the field data with Save functionality (autosave and publish): #3488368: Also convert metadata (page data) fields in ClientDataToEntityConverter


✅ Miscellaneous high priority issues

Prioritized list of most impactful issues

  1. #3506108: Editing code components as overrides, step 1
  2. #3509494: The sorting logic works only when elements are listed vertically
  3. #3509497: Dragging components within a slot breaks drag and drop
  4. #3509357: Working with grids with slots is difficult due to missing Astro CSS
  5. #3507929: Allow adding "image" props in the code component editor
  6. #3509186: Code components: optional properties should not require examples
  7. #3508975: Preview-on-hover in Component Library not loading for code components
  8. #3508978: Listed item for a component loses interactivity after it's added to canvas
  9. #3509483: Don't show the component preview if the context menu is open
  10. #3509270: Status badge and "Review changes" only update after ~10 seconds
  11. #3509509: When adding single hero component Auto-save shows a change when there is not one
  12. #3508077: Default image for SDC with optional image is lost after changing value for another SDC prop
  13. #3506467: Make Media Library widget work from "page data" (content entity form)
  14. #3508170: Image in preview persists after clicking "Remove" in MediaLibraryWidget

Comments

Wim Leers created an issue. See original summary.

wim leers’s picture

Status: Active » Postponed

This builds on top of #3454094: Milestone 0.1.0: Experience Builder Demo, so marking this Postponed. That doesn't mean we're not working on this already: work is already happening and being coordinated in #3450586: [META] Back-end Kanban issue tracker — with some of the issues in there being necessary for #3454094: Milestone 0.1.0: Experience Builder Demo.

(If there wasn't a hard DrupalCon Barcelona deadline, #3454094: Milestone 0.1.0: Experience Builder Demo and this milestone/issue would probably be one and the same.)

lauriii’s picture

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

Component: Project Management » Page builder
Assigned: Unassigned » lauriii
Status: Postponed » Active
Issue tags: +Needs issue summary update

#3454094: Milestone 0.1.0: Experience Builder Demo is nearly done. DrupalCon Barcelona 2024 is in a few days.

Time to get this fleshed out!

wim leers’s picture

wim leers’s picture

Title: Milestone 0.2.0: Experience Builder-rendered nodes » Milestone 0.2.0: <label TBD>
lauriii’s picture

Title: Milestone 0.2.0: <label TBD> » Milestone 0.2.0: Early preview
Version: » 0.x-dev
Issue summary: View changes
lauriii’s picture

Issue summary: View changes
lauriii’s picture

lauriii’s picture

Issue summary: View changes
lauriii’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes

Some markup changes to improve clarity/scannability.

wim leers’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes

Initial issue for product requirement 19. Modify the page template created: #3478537: Introduce an XB `PageTemplate` config entity.

wim leers’s picture

Issue summary: View changes
kristen pol’s picture

Let me know if you want/need anything in SDDS for this next milestone as well as for DrupalCon Singapore.

lauriii’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes

Overhaul of the meta to reflect which of the 10 requirements are actionable, and to what extent. 9 of the 10 cannot begin UI+UX (aka client side) work due to designs not being ready.

wim leers’s picture

Issue summary: View changes

Updated the status for 19. Modify the page template (i.e. global sections) and 29. Layout patterns (i.e. sections).

wim leers’s picture

Issue summary: View changes

#3479982: HTTP API to read+write PageTemplate and Pattern config entities landed!

For 2.1. Content editing of meta fields, a new issue was identified as blocking the 0.2 milestone: #3463991: [RESEARCH] How to identify all meta fields for an arbitrary content entity?.

wim leers’s picture

Issue summary: View changes

Finished adding 🟢, 🟡 or 🔴 to every ⮑.

Also clarified why the two stretch goals are pretty firmly out of reach already at this stage.

wim leers’s picture

Issue summary: View changes
effulgentsia’s picture

Issue summary: View changes

Removed the stretch goals from the list. We're not currently working on them so there's no realistic plan of them getting done by early January.

effulgentsia’s picture

Issue summary: View changes

Also descoped (with confirmation from @lauriii) revisions and Workspaces from 0.2.0.

effulgentsia’s picture

Issue summary: View changes
effulgentsia’s picture

The Purpose and Expected result sections are incomplete. They don't capture the entirety of the remaining items that are in the Requirements section. When I find a bit of time, I'll fill in those sections so that they add clarity as to what the overarching goal of the 0.2.0 milestone is.

effulgentsia’s picture

effulgentsia’s picture

Issue summary: View changes

I updated the "Content editing of meta fields" section with 0.2.0 scope vs 0.3.0 scope.

effulgentsia’s picture

Title: Milestone 0.2.0: Early preview » Milestone 0.3.0: Early preview
Issue summary: View changes

I'm retitling this issue from 0.2.0 to 0.3.0, and changing its target date from mid January to late February.

In the meantime, we'll release a 0.2.0 on or before Jan. 13, so that the Drupal CMS 1.0 release on Jan. 15 can reference a tagged release of XB. I'll open a separate issue for that; it won't include all of the scope of this one.

effulgentsia’s picture

wim leers’s picture

tedbow’s picture

re "Save (draft) content:"

we already have

and a Publish button to trigger a real entity save:

but I guessing what we want for 0.3.0 is the "Publish all" and we will remove the individual entity save button.

@effulgentsia if that is correct I will add the issues that get use to "Publish all" to the summary

wim leers’s picture

Issue summary: View changes

4th rough edge for #32.

effulgentsia’s picture

Issue summary: View changes

what we want for 0.3.0 is the "Publish all" and we will remove the individual entity save button

Correct. I updated the corresponding text in the IS, but yeah, if you could update the corresponding issue list, that would help a lot, thanks!

effulgentsia’s picture

Issue summary: View changes

I updated the IS to change other occurrences of 0.2.0 in the summary to 0.3.0.

effulgentsia’s picture

Issue summary: View changes

With drupal.org's CSS, I'm finding the nested list hard to read. So I updated the IS to use <h3> headings for each high level capability instead.

effulgentsia’s picture

Issue summary: View changes

I did, because I thought it wasn't time yet to be tracking general "fix broken stuff" issues here yet. But I just now restored it under a new "Miscellaneous high priority fixes" heading.

wim leers’s picture

Issue summary: View changes

Updated the 29. Layout patterns (i.e. sections) requirement.

(And also updated 19. Modify the page template's issue list — lots of activity over there this week.)

wim leers’s picture

Issue summary: View changes

One more for 19. Modify the page template, that was created a few hours ago!

wim leers’s picture

Issue summary: View changes

Add anchors to facilitate deeplinking.

jessebaker’s picture

Issue summary: View changes
effulgentsia’s picture

Not wanting to take the time right now to figure out how to best organize these within the issue summary, but the following issues are still needed as part of "Place Blocks as Components":

I wonder if we should turn each of the top-level requirements, such as "Place Blocks as Components", into their own Plan issue, so that we can make those the parent of the above issues and similar individual issues for the other top-level requirements.

wim leers’s picture

Issue summary: View changes

I wonder if we should turn each of the top-level requirements, such as "Place Blocks as Components", into their own Plan issue, so that we can make those the parent of the above issues and similar individual issues for the other top-level requirements.

-1 — too much overhead and issue queue noise. I'd rather have a single issue with >200 updates than having to monitor half a dozen issues, each of which causes actual MR issues to be somewhat obscured.


Updated 5. Place blocks as components — included everything @effulgentsia listed in #44 and expanded.

wim leers’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes
tedbow’s picture

Issue summary: View changes

Added issue for the "Save (draft) content" section. I am still looking for more issues to add

effulgentsia’s picture

In addition to #3495752: Send page data to Drupal for storage in auto-save store being under the "Save (draft) content" requirement, it's also the last remaining item for "Content editing of meta fields", so landing it would give us another nice green checkmark in front of a top-level requirement.

#3487070: [META] Pages is still listed in the IS under "Content editing of meta fields" but the remaining children of that are being tracked separately under that meta and don't need to block this issue.

tedbow’s picture

Issue summary: View changes

Finished going through issue queue for 6. Save (draft) content section

I think we are close but we mind unknown issues once #3497530: Implement the "Publish All" button is completed as they will allow use to do the whole process. For this to include entity fields we will need the 2.1. Content editing of meta fields section to be done too

As far as know is #3467954: META: Evolve XB UI's data model to allow non-SDC components' inputs, DynamicPropSource support, etc. isn't required for 0.3.0

effulgentsia’s picture

As far as know is #3467954: META: Evolve XB UI's data model to allow non-SDC components' inputs, DynamicPropSource support, etc. isn't required for 0.3.0

Yeah, that issue and its children should be moved in the IS from the "save content" requirement to the "blocks" requirement. It's possible that the entirety of that isn't required for 0.3.0, but the parts that are blocking #3491978: Implement saving block settings forms are.

wim leers’s picture

Issue summary: View changes

Thanks, @tedbow! Updated that 6. Save (draft) section section to follow the same structure as the others (BE/FE/E2E/Polish). Some were miscategorized. Some icons were off. But I kept the same set of issues.

Thanks, that really helped!

wim leers’s picture

Issue summary: View changes

And now adding + removing issues to that same section.

Added:

Removed (given my understanding of Lauri's original product requirements, but I was not in every meeting while working at limited capacity during paternity leave, so correct me if I'm wrong 🙏):

wim leers’s picture

Issue summary: View changes

Moved #3495598: [PP-1] Don't store page template model data in auto-save for an entity to Polish for "Save (draft) content", and added a placeholder for the missing validation error support.

Also marked both "Save (draft) content" and "Modify the page template (i.e. global regions)" as 🟢 — but not yet ✅: I have high confidence we'll be able to wrap those up given the current status + pace + outlook, but they're not yet done.

wim leers’s picture

Issue summary: View changes

Fixed formatting and added jumplinks.

wim leers’s picture

Issue summary: View changes
tedbow’s picture

@Wim Leers re #54 ok. yeah I reread the issue in #3495598: [PP-1] Don't store page template model data in auto-save for an entity. I missed this part

The values are filtered out in \Drupal\experience_builder\Controller\ClientServerConversionTrait::clientModelToServerProps but we are storing more in the autosave/tempstore than we need to.

I thought there would be conflict in "Publish All" phase because each entity could have its own copy of the global regions that could conflict. Now I see it is just extra data we don't actually use. So +1 on moving it to "Polish" section

wim leers’s picture

Issue summary: View changes

Introducing an explicit 🔵 Polish for later phase. to allow identifying which things are known to be needed in the future, but explicitly omitted from the 0.3 scope.

wim leers’s picture

Issue summary: View changes

Discussing this with @effulgentsia and @lauriii. To enable @lauriii to specify which polish he considers necessary for meeting the product requirements, I need to:

  1. clearly distinguish between must-have (all the "foundations" bits), should-have (the "polish for long-term API stability" aka avoid technical debt) and nice-to-have ("polish for later phase")
  2. I should first order the should-have lists by what I perceive to be priority order; this enables @lauriii to either confirm or ask for changes

This update to the issue summary only does the first bit.

wim leers’s picture

Issue summary: View changes

#59.2 — pass 1 of N.

wim leers’s picture

Issue summary: View changes

#59.2 — pass 2 of N.

wim leers’s picture

Issue summary: View changes

#59.2 — pass 3 of 3.

Still outstanding:

  1. Reconciling the should-haves for 6. Save (draft) content with those of 5. Place blocks as components — both are impacted by/need changes to the data model. I still need to dig deeper to be able to articulate which falls in which bucket.
  2. 23. Component creation via code editor: actual implementation work has only truly begun last week. See the plan at #3499919: [Meta] Plan for in-browser code components, which @balintbrews crafted. Pinged him to ask about must-have/should-have/nice-to-have breakdown, because that meta doesn't currently specify.
  3. 2.1. Content editing of meta fields needs clarification from @effulgentsia on whether it's essentially done by virtue of having the Page content entity type plus a working 6. Save (draft) content. (I was on paternity leave and working limited capacity, I was in none of the meetings.)

At this time, there's nothing more I can do. Hopefully updates on the remaining pieces in the next 24 hours.

Ready for @lauriii:

  • 19. Modify the page template (i.e. global regions)
  • 5. Place blocks as components
  • 29. Layout patterns
wim leers’s picture

Issue summary: View changes

Increasing the priority for following issues:

You didn't actually — you only added those new issues. Made it so!

wim leers’s picture

Issue summary: View changes

I'm surprised #3500390: The pending changes API endpoint should list individual regions for global template changes isn't on here (for 6. Save (draft) content).

But AFAICT #3501600: Split 1 PageTemplate config entity into N PageRegion config entities is now likely to be the successor to that, but it'd fall under 19. Modify the page template (i.e. global regions). Tentatively adding it to "should-have", but I have a hunch that even though unplanned, @lauriii would now in hindsight mark this as "must-have" — so added it there.

wim leers’s picture

lauriii’s picture

jessebaker’s picture

Issue summary: View changes

Adding follow up issues from Global Regions MR

jessebaker’s picture

wim leers’s picture

Issue summary: View changes

Per meeting with @lauriii, @effulgentsia, Prafful and @jessebaker: some must-haves have been shifted to should-haves. Those are marked with a ⭐️.

wim leers’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes

Lots has happened. Update some status emojis.

effulgentsia’s picture

Title: Milestone 0.3.0: Early preview » Milestone 0.2.0: Early preview

Per #3497543-40: Milestone 0.2.0: the one for Drupal CMS 1.1, we ended up not tagging a 0.2.0 release for inclusion in Drupal CMS. Therefore, this issue can go back to using that number.

We expect to tag the 0.2.0 release by the end of the week (which is also the end of the month), assuming we can wrap up these issues by then.

lauriii’s picture

Issue summary: View changes
lauriii’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes

All #3499919: [Meta] Plan for in-browser code components must-haves are done! 🤯🥳

Plus, the long-standing #3498419: Assign each Component to a logical "UI library" during normalization finally landed too, which empowers a much nicer UX for landing

All must-haves listed in this meta are done now, so marked each of the 7 requirements as ✅.

effulgentsia’s picture

Issue summary: View changes
wim leers’s picture

Issue summary: View changes
lauriii’s picture

Issue summary: View changes
lauriii’s picture

Issue summary: View changes
wim leers’s picture

Status: Fixed » Closed (fixed)

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

effulgentsia’s picture

I started writing up #3515932: Milestone 1.0.0-beta1: Enable creation of non-throwaway sites. Note that that summary is very much a work in progress. Half the issues there probably don't really need to block a beta and possibly 80% of the stuff that we do want to get into the beta milestone isn't yet on that list. But hey, it's a start. Hopefully it will start resembling a proper roadmap within the next few weeks.