Statement of work
This project aims to develop a proof of concept for a decoupled layout builder for Drupal.
There are several sub-tasks:
Must have items
- #3375410: Create an npm package for developing decoupled components
- #3375412: Determine how to deal with externals in Webpack
- #3375413: Provide a registry of React Layout Components
- #3375414: Persistence layer
- #3375415: Create a block discovery mechanism to associate a block plugin with a React component
- #3375417: Create a discovery mechanism to associate a widget plugin with a React component
- #3375418: Create a discovery mechanism to associate a formatter plugin with a React component
- #3375420: React context provider/hooks
- #3375421: Layout builder component
Could have items
The main deliverable will be usage documentation and recommended next steps to continue this project.
Milestones and Timelines
This project aims to be delivered alongside other Pitchburg ’23 approved projects and should be completed by the end of 2023.
- Discovery / Alignment - End of August
- Decoupled API endpoints for manipulating layouts without Form/AJAX API - Mid-September
- Javascript APIs for components to fetch and update block and layout data - End of September
- Working MVP for content-editors editing layouts - Mid-October
Future considerations
Whilst this project is focussing on editing layouts, the work done to create React versions of widgets and formatters has future applications for decoupled editing of any content entities, and could even power live preview.
Important links
Initial development funded by Pitchburg 2023