Skip to content
CAI
Software that uses CAICheck a score

compostjs/compost

61.1

Adequate · 2 October 2026

44.8k

lines of production code

JavaScript

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.