The shape of the API
The conventional way to expose a desktop application's API in 2000-era C++ was binding-per-feature: one C function or COM method for each thing the API needed to surface, hand- written, hand-versioned, exposed through a SDK. AppleScript on the Mac side, COM Automation on the Windows side. Every new feature meant a new pair of bindings. The surface area grew faster than the team's capacity to keep it consistent.
The Quark Virtual DOM took the opposite turn. Instead of exposing N APIs, it exposed one API — the standard DOM interface — and made every application object reachable as a DOM node. The running application became a live tree. Settings, documents, pages, text boxes, picture boxes, style sheets, colors, hyphenation rules — each appeared as a node with attributes, children, and the standard DOM operations (getElementById, , ) acting on real application state.