Skip to content

abhissharma21/Notes-It

Repository files navigation

✨ Notes-It Editor

A schema-enforced, block-based editor engine inspired by Notion — built from first principles.

Not a UI experiment. An editor engine.


🧠 What is Notes-It?

Notes-It is a custom block editor engine built without ProseMirror, Lexical, Slate, or TipTap.

It focuses on:

  • Schema guarantees
  • Deterministic state
  • Correct cursor behavior
  • Block-level correctness
  • Editor-engine architecture, not hacks

This project explores how modern editors actually work — not just how they look.


🚀 Core Features

🧱 Block-Based Architecture

Each block is a real semantic node with enforced behavior:

  • Paragraph
  • Heading (level-based)
  • List (bullet & numbered)
  • Code block (atomic)
  • Quote
  • Divider (atomic)
  • Image (atomic, planned)
  • Draw.io diagram (planned)

No block is “just CSS”.


🔒 Schema-Enforced State

Invalid document states are unrepresentable by design.

  • Divider blocks can never contain text
  • Code blocks cannot contain formatting
  • Empty documents always normalize to a paragraph
  • Lists normalize safely when exited
  • Blocks auto-recover via global normalization

This eliminates entire classes of editor bugs.


✍️ Inline Editing (Model-Driven)

Inline content is stored as structured nodes:

InlineNode {
  id: string
  text: string
  marks: Mark[]
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages