Dimension scores are derived from public data and fields; weighted into the composite. Reference only.
domx is a lightweight state observation library for the browser DOM, built around the idea that the “DOM is the single source of truth for state.” It does not introduce an independent state layer like Redux, MobX, or useState. Instead, it uses a manifest to map state labels to DOM elements, then reads, writes, and observes changes as needed. The project claims to be under 1KB Gzip, with 7 functions, 1 Observer, and 0 dependencies.
Its main API surface is very small: collect() reads state from the DOM, apply() writes state back to the DOM, observe() watches for changes, on() subscribes to underlying MutationRecords, send() sends state with fetch and caches it, replay() restores requests after a refresh, and clearCache() clears the cache. The manifest supports value, checked, text, attr:name, and data:name, and also allows custom read/write functions. When multiple elements match, it returns an array.
For integrations, domx clearly positions htmx as a key use case. It provides an htmx extension that can automatically collect state and send it with requests via hx-ext="domx", dx-manifest, and dx-cache. It also provides dx:change and dx:replayed events. This makes it a good fit for hypermedia-style pages, form filters, search, partial refreshes, and similar interactions.
No commercial pricing is mentioned in the text. The project can be installed via npm install domx or loaded from the unpkg CDN. The page provides a GitHub link but does not show a license, so we can only confirm that it is distributed as an open-source library, without being able to determine the exact licensing terms. It is not a SaaS product and does not involve self-hosting a server; in normal use it is bundled with frontend code or loaded from a CDN.
Its strengths are that it is extremely small, dependency-free, and has a simple API. The declarative manifest makes the relationship between DOM elements and state fields clear. Using a single MutationObserver plus rAF batching also helps reduce listener complexity. Its refresh recovery capability can help prevent users from losing input.
The limitations are also clear: it is better suited to lightweight DOM/htmx-driven interactions, and less suitable for complex cross-component state, asynchronous data flows, or strict type modeling in large SPAs. send/replay uses localStorage for caching, and the documentation also notes that same-origin scripts can access it, so sensitive data should not be included in the manifest. The scraped text does not clarify TypeScript support, browser compatibility, test coverage, the maintenance team, or support channels.
domx is suitable for frontend developers working with mostly native DOM, htmx, or progressively enhanced pages. It is also a good fit for small projects that want to avoid large state management libraries. If you are already deeply invested in the React/Vue state ecosystem, Redux, Zustand, MobX, Valtio, or the framework’s built-in state management may be more appropriate. Access from China cannot be determined from the text; the experience with npm and unpkg on domestic networks may vary. In practice, mirrors, a private npm registry, or self-hosted static files can be used as alternatives.
⚠ This review is compiled from public sources and does not constitute a purchase recommendation. Verify all facts on the vendor's official site. Verify on domx.software official site.
domx.software is an United States Dev Tools provider. TG4G tracks its product information, an overall rating of 6.0/10, and a China-accessibility score of China direct-connect friendly. Click "Visit Official Site" to reach domx.software directly.