Graviton is frontend agnostic editor, which means that it's Core can be re-used to build other Editors with different frontend implementations.
The Core provides a set of components as a base:
A State, identified by an ID, is a piece of data that holds the current state of the editor, like opened Tabs or configured Hotkeys.
In a situation like a desktop code editor, it doesn't make sense to hold multiple States. That's why The Desktop client only uses one. But, using Graviton as a remote service it might make sense to hold multiple states, plus an authentication system.
States can also load any kind of FileSystem implementation, this makes the work easier for the frontends.
Extensions are written in Rust. But bindings to other languages can be done, like
These set of basic modules are small abstraction over common UI widgets.