Add inline structured content embeds to richtext

Feature Idea (one per thread):

Ability to add custom inline embeds/types/structured data to Richtext, beyond just formatting labels.

Issue that it solves:

This solves a currently deal breaking use-case that Prismic can't achieve: Richtext with additional inline structured data. Eg: tooltips, footnotes, custom Links (that could for eg: open slideovers), inline media actions, etc.

Every other headless CMS I've used has some way of doing this. Contentful can embed entries/custom types inline, Sanity and Dato both have inline "blocks" (equivalent to slices). Even Wordpress had shortcodes.

Screenshot or video of the issue (if applicable):

Example of a recent project for a large client that required this — editors needed to be able to embed songs in articles, which played audio clips in a global player. This was done in Contentful by embedding inline "song" entries.

A potential clean workaround for this is to link to documents in richtext, and resolve those links as embeds clientside. Eg: link to a "footnote"/"song"/etc document.

However for this to be a workable user experience editors would need to be able to publish new documents from the content relationship/linking UI, which I think would be a big UX win regardless. Otherwise the experience would be:

  1. Write richtext
  2. Go to create a footnote (for example)
  3. Save progress and return to dashboard
  4. Create and publish footnote document
  5. Go back to original document and link to it in richtext
  6. Rinse and repeat

If users had a button to publish new documents from the link/content relationship UI and then return to where they came from it would be:

  1. Write richtext
  2. Link to footnote → Create new footnote
  3. Publish footnote and return to richtext

Thanks for this detailed feature request with great examples, @madi!

For the first idea — inline structured data — I'll submit that idea to the dev team.

The second idea — composing new documents within a parent document — I know that we have had interest for that before, and it's something the product team is considering for the future.

For both ideas, I'll share the info with the product team, and follow-up if and when I have updates :slight_smile: