Skip to main content

Architectural Principles

Minimal core, extensible shell The @charm-editor/core should only contain the absolute essentials. All other features should be added as modules or extensions.

Everything is a module Promote high cohesion and low coupling by grouping related functionality into independent packages.

Declarative over imperative Prefer defining what the UI should look like based on state rather than how to change it manually.

Isolation first Business logic must never depend on the UI or the runtime environment (Node/Browser).

Performance is a feature Every architectural decision must consider its impact on the editor's responsiveness and rendering speed.