Built for authors, shared with builders.

Saturn9 writing apps are built on small, focused packages that keep editing fast, predictable, and format-aware.

Markdown parser

Markoffset

A fast, plugin-based Markdown parser that keeps source offsets attached to every token for editor and analysis workflows.

CommonMark and GitHub Flavored Markdown presets are built from composable block, inline, delimiter, and extension rules.

import {
    gfmParser,
    parseDocument,
    reparse,
} from '@saturn9/markoffset';

let state = parseDocument(gfmParser, initialMarkdown);

state = reparse(gfmParser, state, {
    from: 42,
    to: 47,
    insert: 'updated text',
});

console.log(state.tokens);
Editor engine

Scribeframe

A format-agnostic text editor runtime with owned document state, input, rendering, history, plugins, and widget lifecycle.

Scribeframe provides transaction-based editing, virtualized rendering, stable selection, and renderer-owned widgets.

import { ScribeFrame } from "@saturn9/scribeframe";
import "@saturn9/scribeframe/styles.css";

const host = document.querySelector<HTMLElement>(
  "#editor",
);
if (!host) throw new Error("Editor host not found");

const editor = new ScribeFrame(host, {
  content: "Hello, Scribeframe",
  ariaLabel: "Document editor",
  onChange: (state) => {
    console.log(state.content);
  },
});