compostjs/compost
61.1
Adequate · 2 October 2026
44.8k
lines of production code
JavaScript
primary language
2
measurements over time
What this system is
Compost.js is a data visualization library that enables users to define and render SVG-based charts and interactive UIs. It provides a core domain model for shapes and styles, along with serialization capabilities for state persistence. The system supports rendering to both SVG and HTML DOM nodes, with a virtual DOM approach for interactivity.
Features
Initial project scaffolding and build configuration
The repository has been initialized with the core structure for the Compost.js data visualization library. This includes the F\# source files (html.fs, core.fs, compost.fs) that compile to JavaScript via Fable, along with the necessary build tooling such as Vite configuration, npm scripts for development and release, and entry points for both npm distribution and standalone browser usage. Supporting files like .gitignore, .npmignore, CLAUDE.md, LICENSE.md, and the demo index.html have also been added to establish the development environment.
(repo-wide) · high confidence
Initial release of Compost visualization library
Introduces the core domain model and rendering engine for the Compost library, enabling users to define and render SVG-based visualizations. The update establishes the \Shape\ type hierarchy, supporting elements such as lines, bubbles, text, images, and interactive handlers, along with a \Style\ system for configuring colors, fonts, and animations. It also includes the underlying SVG rendering logic to convert these domain objects into DOM nodes.
compost · high confidence
New serialization API and HTML rendering support for Compost
The Compost library now exposes a public API for serializing and deserializing chart shapes to and from JSON objects, enabling state persistence and interchange. Additionally, a new HTML rendering module has been added, providing functions to render shapes directly to HTML DOM nodes and supporting a virtual DOM-based application model for interactive UIs.
src/compost · high confidence
New standalone build and demo suite for the Compost charting library
This change introduces a standalone build of the Compost library (src/project/standalone.js) that exposes the charting API globally on the window object, enabling usage without a module bundler. It also adds a comprehensive set of interactive demos (src/project/demos.js) and their underlying datasets (src/project/data.js), showcasing capabilities such as HTML support, image rendering within charts, and interactive 'You Draw' features where users can manipulate bar heights.
src/project · high confidence
Test coverage
Added tests for compost serialization and SVG rendering
Added a new test file (test/compost.test.js) that validates the compost library's SVG rendering and serialization capabilities. The tests verify that shapes, lines, and styled elements render correctly with expected fill and stroke styles, that coordinate transformations (including Y-axis inversion) are accurate, and that serialize/deserialize round-trips preserve both path data and style attributes for simple lines, styled shapes, and complex multi-series bar charts.
test · high confidence
Dependencies
Initial project setup with Fable, Vite, and virtual-dom
The Compost.js library is initialized as a JavaScript data visualization project built with Fable (targeting .NET 8.0) and compiled to JavaScript. The build toolchain uses Vite for bundling and Vitest for testing, while the runtime depends on the virtual-dom library for DOM manipulation. Development dependencies include the 'np' package for publishing.
(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 46 → 61 (+14.7)
- Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 30 → 70 (+40.2)
- Architecture 100 → 88 (-11.7)
- Maturity 66 → 65 (-0.7)
- Readiness 55 → 60 (+5.4)
- Security 76 → 80 (+4.9)
- Accessibility 56 → 56 (+0.0)
Resolved (3)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
New (20)
- Duplicated block (17 lines × 2) (src/compost/core.fs)
- Duplicated block (7 lines × 2) (src/compost/core.fs)
- Duplicated block (8 lines × 2) (src/compost/html.fs)
- FileTooLong: releases/compost-latest.js (docs/releases/compost-latest.js)
- FunctionTooLong: compost-latest.Drawing_drawShape (docs/releases/compost-latest.js)
- FunctionTooLong: compost-latest.Events_triggerEvent (docs/releases/compost-latest.js)
- FunctionTooLong: compost-latest.requireDiff$1 (docs/releases/compost-latest.js)
- FunctionTooLong: compost-latest.requirePatchOp (docs/releases/compost-latest.js)
- Hotspot: docs/releases/compost-latest.js (docs/releases/compost-latest.js)
- Hotspot: src/compost/compost.fs (src/compost/compost.fs)
- Hotspot: src/compost/core.fs (src/compost/core.fs)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-0.0.11.js)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-0.0.12.js)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-0.0.5.js)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-0.0.8.js)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-0.0.9.js)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-0.1.0.js)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-0.2.0.js)
- Low cohesion: HashSet (LCOM4 17) (docs/releases/compost-latest.js)
- Projects may be oversized for their cohesion
Architecture
- Unchanged — 0 containers · 1 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
compostjs/compost 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 2 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 27e43410258209d8f7cef0348972060443651865 — 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-351388015767.