
Why we built a native block editor
One writing surface for words, diagrams, and the edits between them.
Product and engineering
Inside our native block editor.
Writing interactions, rich notes, and the engineering behind them.

One writing surface for words, diagrams, and the edits between them.

Swipe to select one block. Sweep to gather a group. Drag to move it.

Keep the calculation, its explanation, and the source together.

How we connect UITextInput, NSTextInputClient, and text layout to keep editing responsive as notes grow.

One text range, one replacement, with the rest of the note intact.

A recognizable source, with your own thinking beside it.

One shaped layout behind the words, their selection, and the next character.

How we handle marked text, candidate changes, and the moment a phrase is accepted.

Two renderers, one editable document, and the geometry between them.

Our layout approach, measured results, and a small edit in a long note.

A document that stays whole, with layout and native views focused on the passage you're editing.