Block-based editor

Added · Last updated

The composition of structured content from modular blocks, balancing the fluidity of prose with the precision of structured data.

Adding blocks

Whichever way it’s triggered, the menu opens right where the current actor’s focus is. There’s no need to say where, so picking a block and placing it are one gesture.

Floating menu

…

Slash commands

…

Passing to LLM

…

References

…

Contextual actions

Select block(s) or text spans and invoke LLM from contextual menu.

Co-editing & attribution

…

Consequences

  • each block carries only as much structure as currently serves it, gained or shed in place, so formalising is local and reversible instead of a commitment made before the work starts
  • the block is now the unit of everything the surface does — selecting, referencing, moving, commenting — so anything that addresses content addresses blocks, whether or not that matches how the actor thinks of what they wrote
  • every position in the document is a place where anything could go next, which puts the weight on saying what without having to say where

Appears in

Making changes

Related patterns

Enables

  • Selection — the surface in which content selection happens

Hosts

  • AI completion — the block editor is a natural container for AI completion

Enacts

  • Formality — incremental formalisation — content carries only as much structure as currently serves, gained or shed in place, optional and reversible

Related to

  • Editing in place — the block editor assumes this move — reading and changing happen on the same blocks, with no separate state for either

Enabled by

  • Command menu — picking a block and placing it; summoned at the current position