Can lower level details of presentation be abstracted away by using custom element modules in the content engine?

I would like to know if it’s possible and supported (and potentially encouraged) to abstract away details in the content engine by using custom element modules to basically restrict what a CMS user should be able to edit on a CMS page?

The use case is basically a landing page where a CMS user should be able to edit a text section and an image followed by a fixed number of tiles that represent documents already present in dataservices. So the CMS user should only specify the id of the document to be shown for each tile.

Basically I would like to know if one can implement a custom element module where an actual element would look something like this:

{
  "id": "some-tile",
  "type": "Custom",
  "namespace": "com.mgmtp.foo",
  "subtype": "DocumentElement",
  "props": {
    "documentId": "123",
    "documentModel": "DomainFooDocumentModel",
  }
}

The renderer of this would need to load the document and then determine how this specific document should be rendered by consulting an element library.

Hi @andreas-fresh-mesa,

By using the custom node API, full control can be achieved over specifying the properties of custom elements, rendering them based on the current properties, and determining how the CMS user specifies those properties.

Hi @andreas-fresh-mesa ,

did the reply from @nam-secure-mesa answer your question or do you need further support?
If it is solved, please, use the checkbox to mark the solution to your problem so that other users also know what helped in your case.

Denise from the Discourse team