Overview
Framework-like ergonomics without framework overhead.
DOMPP extends native DOM prototypes with ergonomic, chainable setters while preserving direct browser platform access. Designed for developers who want framework-like ergonomics without framework overhead.
The library enhances existing DOM elements without wrapping them, keeping direct browser platform access intact.
The problem
Virtual DOM frameworks add abstraction overhead and hidden reconciliation.
Virtual DOM frameworks add abstraction overhead and hidden reconciliation. Developers wanting direct DOM manipulation lack ergonomic, chainable APIs that stay predictable.
- Virtual DOM reconciliation is opaque and can cause unexpected behavior.
- Direct DOM manipulation APIs are verbose and lack chainability.
- Developers need optional reactivity without framework lock-in.
Approach
Chainable mutation helpers with optional reactivity via signals.
Extended native DOM APIs with small, chainable mutation helpers (setText, setChildren, setStyles, setAttributes, setEvents). Made reactivity optional via setState and fine-grained signals.
The approach keeps the library lightweight while providing the ergonomics developers expect from modern frameworks.
Solution
Two reactive models: stateful runtime and fine-grained signals.
Built two reactive models: stateful runtime (setState) for simplicity, and fine-grained signals for granular updates. Supports enhancing existing server-rendered HTML without recreating subtrees.
This dual approach allows developers to choose the reactivity model that best fits their use case.
Implementation
Technical implementation.
Built with TypeScript using native ESM, the library extends DOM prototypes with chainable helpers while preserving direct browser access.
Core
TypeScript, native ESM, chainable DOM setters, deterministic mutation.
Reactivity
Optional reactive runtime (setState), fine-grained signals for granular updates.
Testing
Comprehensive test suite using Node.js test runner.
Results
What changed.
The library provides a clean API for direct DOM manipulation with optional reactivity, all without framework overhead.
Links