Page Delivery provides a modular foundation for building decoupled and progressively decoupled Drupal websites. It helps external frontends consume complete page compositions, organize content into logical regions, and keep cached pages synchronized with changes in Drupal.
With Page Delivery Composition enabled, the same public URL can serve either the standard Drupal HTML page or a JSON page composition, selected through the HTTP Accept header. This lets consumers request pages by their public paths while Drupal remains responsible for resolving content, access permissions, translations, and cache dependencies.
Page Delivery is frontend framework agnostic. Its capabilities are packaged as separate submodules, so projects can enable the features they need.
Features include:
- Page composition: expose page metadata, regions, and components through a configurable vendor JSON media type.
- Logical layouts: define reusable layouts and map one or more Drupal theme regions into each consumer-facing region.
- Structured content: adapt entities, custom blocks, menus, and Views into structured components. Entity normalization respects view displays, entity and field access, translations, and cacheability.
- Metatag integration: include the metadata computed by Metatag for the requested page, including defaults and entity overrides.
- Delivery targets and cache invalidation: configure multiple consumers, track page dependencies, and deliver invalidation notifications through a durable queue. The built-in webhook transport supports HMAC signatures, completion acknowledgements, and retries.
- Authentication: configure anonymous, optional, or required authentication for page composition requests using authentication providers available in Drupal.
- OAuth provisioning: optionally provision service accounts and confidential consumers when Simple OAuth and Consumers are enabled.
- Route ownership: assign public paths or path prefixes to delivery targets and publish the route map to Traffic Control through Redis.
- Administration and diagnostics: manage configuration through Drupal administration forms, inspect delivery status, verify supported connections, and run maintenance through Drush.
Developers can extend the module through component adapters, composition contributors, normalization hooks, notification transports, and events.
Page Delivery is suited to projects that need Drupal to provide page structure as well as content, coordinate cache invalidation across external consumers, or migrate selected public routes to a separate frontend while continuing to serve other routes through Drupal.
Requires Drupal 10.3 or 11 and Drush 12 or later. Integrations with Views, Block Content, Metatag, Simple OAuth, and Consumers are activated through the relevant submodules and available dependencies.
Ask your assistant about Page Delivery
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.