AngelMunoz/Hox
50.1
Adequate · 3 October 2026
2.8k
lines of production code
F#
with VB.NET
2
measurements over time
What this system is
Hox is a .NET library for declarative UI generation and server-side HTML rendering, featuring a CSS-like selector DSL and support for asynchronous content. It provides a robust rendering engine capable of streaming output and handling deep DOM trees, with specific integrations for the Feliz framework and declarative shadow DOM. The system includes a static site generator for documentation and is designed to work across multiple web frameworks like Giraffe and Falco.
Features
Add C\# server sample using Hox
A new C\# sample project has been added to demonstrate server-side rendering with the Hox library. The sample includes a minimal ASP.NET Core application that renders HTML nodes via the Hox DSL, supporting both streamed and string-based responses, along with standard configuration files for launch settings and logging.
samples/ServerCs · high confidence
Add Falco sample application with Hox integration
A new sample application has been added to the Falco samples directory, demonstrating how to integrate the Hox library with the Falco web framework. The sample includes a Program file that defines HTTP endpoints for rendering HTML views using both Hox's declarative syntax and Falco's markup system, along with standard ASP.NET Core configuration files for launch settings and application settings.
samples/Falco · high confidence
Add Feliz Engine sample demonstrating Hox integration
A new sample project has been added at samples/FelizEngine that demonstrates the integration of the Hox library with Feliz Engine. The sample code illustrates how to define UI structures using Hox components (H.div, H.p, etc.), handle asynchronous rendering via taskSeq and async blocks, and output the resulting HTML to a file using Render.toStream.
samples/FelizEngine · high confidence
Add Giraffe sample application with Hox rendering integration
A new sample application has been added to the samples/Giraffe directory, demonstrating how to integrate the Hox library with the Giraffe web framework. The sample includes a Program.fs file that defines HTTP handlers for rendering HTML views using both the Giraffe view engine and Hox's streaming renderer, along with a launchSettings.json file for local development configuration.
samples/Giraffe · high confidence
Add VB.NET server-side rendering sample with Hox
A new Visual Basic .NET sample application has been added to the samples/ServerVB directory, demonstrating server-side rendering using the Hox library. The sample includes a Program.vb entry point that configures an ASP.NET Core web app with logging and exposes two routes: the root path returns a streamed HTML response, while the /string path returns a string-based result. Both routes render a layout featuring a heading, paragraph, and lists of numbers generated via synchronous iteration, asynchronous tasks, and async enumerables, utilizing the @shoelace-style/shoelace UI components for styling.
samples/ServerVB · high confidence
Added Table of Contents parsing and markdown content extraction
The Hox.Docs module now includes a new ToC.fs file that parses table of contents metadata from JSON and extracts markdown content. This enables the documentation system to read entry details (title, file, author, contributors, summary, updated date, category) and convert markdown files to HTML for rendering.
Hox.Docs · high confidence
Feliz integration with async support and declarative shadow DOM elements
The src/Hox.Feliz library now provides bindings that integrate Hox with the Feliz framework. It augments the Feliz HtmlEngine to allow mixing async and Task-based nodes alongside synchronous ones, and adds helpers for rendering node fragments. Additionally, it introduces a set of scoped HTML elements (such as sDiv, sArticle, sH1) that enable declarative shadow DOM, allowing content projection via slots and style injection into template tags.
src/Hox.Feliz · high confidence
Introduce Hox declarative UI library with async rendering and CSS selector DSL
The Hox library (renamed from Htmelo) is now available, providing a declarative DSL for building UI nodes using CSS-like selectors (e.g., \h "div\#id.class"\) and supporting asynchronous child nodes. The rendering engine has been refactored to use a stack-based approach that alternates between recursive and buffered processing for async sequences, preventing stack overflows on deep trees (200+ levels) and ensuring proper handling of async attributes and children. It includes a custom CSS selector parser (XParsec) replacing the previous FParsec-based one, supports declarative shadow DOM, and offers streaming output via \Render.start\ and \Render.toStream\.
src/Hox · high confidence
Introduce Hox.Docs static site generator for documentation
Adds a new dogfooding project that generates the Hox documentation site from Markdown files. The tool reads a table of contents, renders pages using a custom layout with CSS custom properties for theming (including dark mode support), and bundles static assets. It supports GitHub Pages deployment via a base-href flag and includes syntax highlighting for F\#, C\#, VB.NET, and XML using highlight.js.
src/Hox.Docs · high confidence
Removals
Removal of core DSL, Node, Rendering, and SelectorParser modules
The \src/Htmelo\ directory has removed the foundational modules that previously defined the library's core functionality. Specifically, \DSL.fs\ (which provided builder functions like \El\, \Children\, and attribute helpers), \Node.fs\ (which defined the \Node\, \Element\, and \Attribute\ types), \Rendering.fs\ (which handled synchronous, asynchronous, and chunked HTML rendering), and \SelectorParser.fs\ (which parsed CSS-like selectors into elements) have all been deleted. This change eliminates the existing declarative HTML generation and parsing capabilities from this package location.
src/Htmelo · high confidence
Behavioural changes
Hox 3.2.0: .NET 10 support, CSS parsing switch, and attribute rendering fixes
Hox and Hox.Feliz now support .NET 10 alongside .NET 8 and 9. CSS selector parsing has switched from FParsec to XParsec, which changes error messages to a more detailed format. Attribute handling is more robust: duplicate IDs in a selector now keep the first value instead of crashing, duplicate attributes are preserved in order, and attributes render in the order they were written. The FSharp.Control.TaskSeq dependency was updated to 1.1.1, and source builds now work on current .NET 10 SDK releases that reject public inline functions referencing private bindings.
(repo-wide) · high confidence
Introduces Hox core data structures for DOM representation
The Hox library now exposes its foundational types for building a DOM tree, including a circular-buffer-based Deque for efficient element management, HAttribute and AttributeNode for handling synchronous and asynchronous HTML attributes, and the Node union type (supporting Elements, Text, Raw HTML, Comments, Fragments, and various async patterns) along with the Element record structure. This change establishes the core data model used by the library, replacing the previous Htmelo naming convention.
Hox · high confidence
Samples solution updated with Hox and VB samples
The samples solution now includes a new Hox sample project (referencing the src/Hox library) and a new ServerVB sample project, while retaining existing samples for Server, ServerCs, Falco, FelizEngine, and Giraffe.
samples · high confidence
Server sample migrated to Hox library with Shoelace UI components
The Server sample has been refactored to use the Hox library (replacing the previous Htmelo framework), introducing a new component model for declarative shadow DOM elements like cards and a styling system that integrates the Shoelace design system for both light and dark themes. The application now renders todo items using Shoelace's sl-details components and utilizes Hox's rendering pipeline for streaming and text responses, while also disabling .NET hot reload in the launch settings to ensure stability during development.
samples/Server · high confidence
Test coverage
Initial test suite for Hox rendering, parsing, and DSL
Added a new test project (Hox.Tests) covering the core functionality of the Hox library. The tests verify that the CSS selector parser correctly handles tag names, IDs, classes, and attributes (including multi-line inputs and value-less attributes). They also validate the chunk-based renderer's output for elements, attributes, children, fragments, and text nodes, ensuring correct HTML encoding and attribute ordering. Additionally, the suite includes tests for the DSL's node manipulation (addToNode), async rendering to strings, and cancellation support for both single-node and multi-chunk rendering operations.
tests · high confidence
Dependencies
Library renamed to Hox, upgraded to .NET 8-10, and switched CSS parser
The core library has been renamed from Htmelo to Hox. It now targets .NET 8, 9, and 10 (previously only .NET 8), and the CSS selector parsing engine has been replaced from FParsec to XParsec. Several sample projects have been updated to reference the new Hox package and target .NET 9, and new samples for Giraffe, Feliz.Engine, C\#, and VB have been added.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 49 → 50 (+1.0)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 80 → 99 (+18.5)
- Architecture 96 → 100 (+3.8)
- Maturity 60 → 60 (+0.0)
- Readiness 62 → 62 (-0.4)
- Security 30 → 28 (-1.3)
Resolved (1)
- Documentation: no usage examples (README.md)
New (7)
- No test project references Hox.Docs (src/Hox.Docs/Hox.Docs.fsproj)
- No test project references Hox.Feliz (src/Hox.Feliz/Hox.Feliz.fsproj)
- Outdated: Falco
- Outdated: Giraffe
- Outdated: Ionide.KeepAChangelog.Tasks
- Outdated: Markdig
- Outdated: coverlet.collector
API surface
- Unchanged — 2 HTTP endpoints
Architecture
- Unchanged — 0 containers · 2 contexts · 0 edges
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
AngelMunoz/Hox was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 9a0e5cf14ab8bc4a0512b95c025f0099ed8a7811 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.