fable-compiler/repl
40.1
Weak · 3 October 2026
25.3k
lines of production code
F#
primary language
2
measurements over time
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.