Skip to content
CAI
Software that uses CAICheck a score

fable-compiler/repl

40.1

Weak · 3 October 2026

25.3k

lines of production code

F#

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a web-based Fable REPL that compiles F\# code to JavaScript and other targets, providing an interactive environment for writing and testing code. It features a modular UI with a console panel for logging, a Monaco editor for code and CSS, and options to share snippets via URL or GitHub Gists. The platform includes built-in runtime libraries for Feliz and Elmish, along with a collection of sample applications demonstrating various functional UI patterns.

Features

Add Fira Code font support and application styling

This change introduces the Fira Code font family to the application by adding font-face definitions and a specimen file in src/App/fonts, along with corresponding SCSS styles in src/App/style. It also establishes the core visual theme by adding \_variables.scss (defining dark mode colors and Bulma overrides), main.scss (importing Bulma, FontAwesome, and custom components), and specific style modules for the scrollable panel, toast notifications, menu groups, and Monaco editor hover content.

src/App/fonts, src/App/style · high confidence

Add internal Feliz and Elmish engine libraries to REPL

The REPL library now includes internal implementations of the Feliz engine (handling HTML attributes, CSS styles, and DOM events) and the Elmish framework (core program loop, commands, and Snabbdom integration). This allows the REPL to compile and run Elmish applications using the Feliz UI library by providing the necessary runtime bindings and rendering logic directly within the library.

src/Fable.Repl.Lib · high confidence

Added F\# compiler export tool for metadata generation

A new standalone F\# project (src/Export) and its build script have been introduced to generate compiler metadata. This tool parses and checks F\# scripts using the FSharp.Compiler.CodeAnalysis API, extracting references and compiling them to produce metadata files (Browser.\*.dll and Fable.Repl.Lib.dll) that are subsequently copied into the REPL repository for use by the Fable REPL.

src/Export · high confidence

Introduction of a dedicated Console Panel for REPL output

The application now features a new Console Panel component that displays structured log messages (Info, Warning, Error) and separators. This panel includes an expandable/collapsible header, automatic scrolling to the latest log entry, and visual indicators for different log levels, providing users with a clearer and more organized view of runtime output and errors within the REPL interface.

src/App · high confidence

New Elmish and Fulma sample applications added

Added a collection of new sample applications in the \src/App/public/samples/elmish\ and \src/App/public/samples/fulma\ directories. The Elmish samples demonstrate various functional UI patterns using Fable and React, including a calculator, clock, memory game, simple input, sudoku solver, random user generator, TodoMVC, and form validation. The Fulma samples showcase UI component usage such as boxes, breadcrumbs, buttons, cards, columns, containers, and content blocks.

src/App/public · high confidence

Support for sharing and editing code via URL and CSS editor

The application now allows users to share code snippets by compressing the code, HTML, and CSS into the URL hash, enabling easy copying and reloading of specific states via the browser address bar. Additionally, a new React-based Monaco editor component has been introduced to support inline editing of CSS code, enhancing the ability to customize styles directly within the interface.

src/App/js · high confidence

Behavioural changes

REPL UI restructured into modular widgets with enhanced options and Gist integration

The application's interface has been refactored into distinct, single-responsibility components (About, General, Options, Samples, Stats) to improve maintainability and user experience. Users now have granular control over the editor via the Options widget, including toggles for optimization, debug defines, typed arrays, and the ability to select the compilation target (JavaScript, TypeScript, Python, Rust, Dart, and BEAM). The General widget introduces direct access to actions like compile, refresh, and reset, even when the sidebar is collapsed, and adds support for sharing code to GitHub Gists via a secure token input. Sample loading has been decoupled into its own widget, allowing samples to be fetched from a JSON configuration at runtime, while the Stats widget provides real-time feedback on compilation performance.

src/App/Widgets · high confidence

Dependencies

Initial dependency manifests for Fable REPL

The project now includes its first set of dependency manifests (package.json, paket.dependencies, and associated .fsproj files), establishing the baseline for the Fable REPL. This introduces a .NET stack using Fable.Core 4.0, Feliz, and Thoth libraries, alongside a JavaScript stack featuring React 18, Vite 8, and Babel 7.

(dependencies) · high confidence

Housekeeping

Initial repository structure and build configuration

The repository is initialized with a new project structure, including a solution file (Fable.REPL.sln) and a build script (build.fsx) that utilizes Fun.Build and Fake for managing .NET and NPM dependencies, building the application with Vite, and handling metadata copying. Configuration files such as .editorconfig, .gitignore, and .gitpod.yml are added to standardize coding styles, manage ignored files, and support Gitpod development environments. The project also includes a CHANGELOG.md documenting version history from 1.0.0 to 4.3.0, a README.md with build and contribution instructions, and a global.json specifying .NET SDK 6.0.100.

(repo-wide) · 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 48 → 40 (-7.5)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 88 → 88 (-0.0)
  • Architecture 100 → 88 (-12.4)
  • Maturity 47 → 47 (+0.0)
  • Readiness 36 → 36 (+0.0)
  • Security 71 → 70 (-1.1)
  • Accessibility 52 → 28 (-24.1)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Duplicated block (99–109 lines × 2) (src/Fable.Repl.Lib/Elmish/cmd.fs)
  • Off-boarding risk: anonymized user #1

New (6)

  • Duplicated block (99–109 lines × 2) (src/Fable.Repl.Lib/Elmish/cmd.fs)
  • End-of-life runtime: .NET net5.0
  • High CVE: [GHSA redacted] (package-lock.json)
  • Medium CVE: [GHSA redacted] (package-lock.json)
  • Off-boarding risk: anonymized user #1
  • Projects may be oversized for their cohesion

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

fable-compiler/repl 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 d73736f6bd56a1143312716b7cf750acb556fe8e — 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.