Design the Block Data Model

Problem

Design Notion's core abstraction: the block model where everything (text, page, table, toggle) is a block.

Requirements

  • A block has type, content, parent, ordered children
  • Move/insert/delete blocks
  • Different render behavior per type
  • Permissions inherited from ancestors

What evaluators look for

  • Uniform block interface with type-specific behavior
  • Ordering of children (fractional indexing)
  • Reference vs containment

Extension

Support a block appearing in multiple places (references/mentions).

added …
LeaderboardSalaryAccount