Skip to content
CAI
Software that uses CAICheck a score

fable-compiler/Fable.Store

45.7

Weak · 3 October 2026

1.4k

lines of production code

F#

with JavaScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Fable.Store is a general-purpose state management library for F\# and .NET applications that provides Elmish-style store implementations with platform-specific optimizations. It offers framework-specific integration packages for Svelte, React, and Lit, enabling seamless interoperability between F\# logic and various UI rendering mechanisms. The system also includes utilities for automatic TypeScript declaration generation to support cross-language component integration.

Features

Automatic TypeScript declaration generation for Svelte stores

The Fable.SveltePlugins library now includes a new plugin that automatically generates .d.ts TypeScript declaration files for Svelte stores. By applying the GenerateDeclaration attribute, users can have TypeScript definitions for their F\# store types (such as IDispatcher, IWritable, and IReadable) generated directly during compilation, improving TypeScript interop without manual definition files.

src/Fable.SveltePlugins · high confidence

Initial beta release of Fable.LitStore library

This release introduces the Fable.LitStore library (version 1.0.0-beta-001), providing a \useStore\ hook for Lit components. The hook allows components to subscribe to an \IStore\, automatically updating the component's state when the store changes and ensuring the subscription is properly disposed of when the component is destroyed.

src/Fable.LitStore · high confidence

Initial release of Fable.Store Elmish integration

This change introduces the core \Fable.Store\ library, providing an Elmish-style state management solution for .NET and Fable applications. It includes the \ElmishStore\ module for handling commands (both synchronous and asynchronous) and the \Store\ module for creating observable stores with immediate subscription support. The implementation features platform-specific optimizations, using \JS.setTimeout\ for command execution in Fable and \MailboxProcessor\ for .NET, ensuring consistent behavior across environments.

src/Fable.Store · high confidence

Introduce Fable.SvelteStore library with Elmish integration and store mapping

This change introduces the new Fable.SvelteStore library, providing a bridge between F\# and Svelte stores. It defines core interfaces (IReadable, IWritable) and exposes functions to create readable and writable stores via Svelte's native API. A key addition is the Elmish integration, offering makeElmish and makeElmishSimple to manage state and commands within Svelte components. The library also includes a map function to transform readable stores and a makeDispatcher helper for message dispatching.

src/Fable.SvelteStore · high confidence

Introduce React hooks for Elmish store integration

The Fable.ReactStore library now provides F\#-native React hooks to integrate with the Elmish architecture. Users can utilize useElmishStore for full Elmish command support, useElmishStoreSimple for simpler state updates without commands, and useObservable to bind React components to IObservable streams, ensuring state changes automatically trigger UI re-renders.

src/Fable.ReactStore · high confidence

New FelizSvelte sample demonstrating Svelte component integration

A new sample application has been added to the FelizSvelte directory, showcasing how to embed Svelte components within a Feliz (Fable/React) application. The sample includes a router-based layout with three distinct views: a TodoMVC implementation using Svelte stores and transitions, a draggable rectangle demo, and a real-time clock component that utilizes React.Lit for SVG rendering. It also features an Elmish-based 'Time Flies' animation component that fetches daily quotes, illustrating the interoperability between Feliz's state management and Svelte's reactive store pattern.

samples/FelizSvelte · high confidence

Behavioural changes

Consolidated Svelte sample application with F\# integration

The samples/App directory has been restructured into a single project that serves as a unified showcase for Svelte applications, featuring a main entry point that lets users switch between three distinct demo applications: a TodoMVC implementation, a mouse-dragging interaction demo, and a 'Time Flies' animation demo. These demos are implemented using F\# (via Fable) for state management and logic, with TypeScript declaration files generated automatically to support the Svelte components, replacing the previous separate Fable.Svelte project structure.

samples/App · high confidence

Repository rebranded from Fable.Svelte to Fable.Store with expanded scope

The project has evolved from Svelte-specific bindings into a general-purpose store library compatible with multiple UI frameworks (including React via FelizSvelte) and non-Fable environments. The solution now includes distinct packages for Fable.Store, Fable.SvelteStore, Fable.ReactStore, and Fable.LitStore, supported by a new build script and updated documentation that explains the store pattern and its usage across different rendering mechanisms.

(repo-wide) · high confidence

Dependencies

Initial release of Fable.Store ecosystem and sample applications

This change introduces the core Fable.Store library along with its integrations for Svelte, React, and Lit, alongside sample applications demonstrating these capabilities. The Fable.Store package (1.0.0-beta-005) provides the base store implementation, while Fable.SvelteStore (1.0.0-beta-007) adds Svelte support with specific npm dependencies (svelte \>=3.31.0, svelte-loader \>=2.13.6). Fable.ReactStore (1.0.0-beta-005) and Fable.LitStore (1.0.0-beta-001) provide React and Lit integrations respectively. The Feliz.Svelte package (0.4.0) and React.Lit (1.0.0-beta-001) are also included to support UI component libraries. Sample projects (App, FelizSvelte) are added with their respective .NET and npm dependencies, including webpack, svelte, react, and lit-html, to demonstrate usage.

(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 45 → 46 (+0.4)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 94 → 94 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 47 → 48 (+1.5)
  • Readiness 24 → 24 (+0.0)
  • Security 100 → 100 (+0.0)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

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/Fable.Store 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 20cc58d40619d09b009ddf9931cf05261e6a001d — 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.