dotnet-websharper/mvu
42.3
Weak · 3 October 2026
1.1k
lines of production code
F#
with JavaScript, TypeScript
2
measurements over time
What this system is
This system is the WebSharper.Mvu framework, which implements an Elm-inspired Model-View-Update architecture for building client-side web applications. It provides core capabilities including state management with synchronous and asynchronous commands, multi-page routing with CSS transitions, and integration with Redux DevTools for time-travel debugging. The codebase also includes a TodoMvc sample application and a test suite to demonstrate these features within an ASP.NET Core host.
Features
Add WebSharper.Mvu paket template
A new paket template file (WebSharper.Mvu.paket.template) has been added to the nuget directory, defining the package metadata and dependencies for the WebSharper.Mvu library, specifically targeting netstandard2.0 with locked versions of WebSharper and WebSharper.UI.
nuget · high confidence
Initial release of WebSharper.Mvu framework and TodoMvc sample
This change introduces the WebSharper.Mvu library, an Elm-inspired Model-View-Update architecture for WebSharper applications, along with a complete TodoMvc sample implementation. The release includes core framework features such as time-travel debugging via RemoteDev integration, automatic local storage persistence, HTML templating support, client-side paging with CSS transitions, and URL routing. The project structure has been split into the main library, the TodoMvc sample, and a test project, utilizing FAKE and Paket for build automation and dependency management.
(repo-wide) · high confidence
New WebSharper.Mvu framework with paging, commands, and Redux DevTools support
The WebSharper.Mvu library is introduced, providing a Model-View-Update (MVU) architecture for building web applications. It includes an \App\ module with \Create\ and \CreateSimple\ entry points, and an \Action\ type that supports synchronous and asynchronous commands (\Command\, \CommandAsync\) as well as combined actions. The framework adds a \Page\ and \Pager\ system for handling multi-page applications with CSS transition support and DOM optimization. Additionally, it integrates with Redux DevTools for time-travel debugging and state inspection, and provides a \WithRouting\ macro to bind URL hash routing to the application model.
WebSharper.Mvu · high confidence
Behavioural changes
Restored Redux DevTools time-travel debugging support
The TodoMvc demo application now supports time-travel debugging via Redux DevTools. The runtime integration handles Redux DevTools actions such as JUMP\_TO\_STATE, JUMP\_TO\_ACTION, IMPORT\_STATE, RESET, ROLLBACK, and COMMIT, allowing users to inspect and revert application state changes directly in the browser's developer tools.
WebSharper.Mvu.TodoMvc/wwwroot/Scripts · high confidence
TodoMvc app adopts local CSS and updates UI bindings
The TodoMvc application now uses locally hosted CSS files (base.css, index.css, rendering.css) instead of external CDN links, ensuring consistent styling without external dependencies. The HTML structure has been updated to reflect internal refactoring: the todo list template is now named 'Entry' instead of 'TODO', the edit trigger action is 'StartEdit' instead of 'ToggleEdit', and the editing input variable is 'EditingTask' instead of 'Task'. Additionally, the footer now dynamically displays the count of remaining items using the '${ItemsLeft}' placeholder.
WebSharper.Mvu.TodoMvc/wwwroot · high confidence
TodoMvc app restructured with routing and component-based architecture
The TodoMvc sample application has been reorganized to support URL routing (All, Active, Completed endpoints) and a component-based structure, splitting logic into Entry and TodoList modules. The build process now uses esbuild for bundling, and the ASP.NET Core startup configuration has been updated to use IWebHostEnvironment.
WebSharper.Mvu.TodoMvc · high confidence
Test coverage
Add test project entry page with CSS transitions; Added WebSharper.Mvu.Tests test project with Mvu demo and ASP.NET Core host; Added test assets for WebSharper.Mvu.Tests.
Dependencies
Migrate to .NET 8 and esbuild for frontend bundling
The WebSharper.Mvu.Tests and WebSharper.Mvu.TodoMvc projects have been upgraded to target .NET 8 and now use esbuild (v0.19.9) for frontend bundling instead of the previous tooling. This change introduces new package.json and package-lock.json files to manage Node.js dependencies, including esbuild and Redux DevTools packages, and updates the .fsproj files to invoke esbuild via npm scripts during the build process.
(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 39 → 42 (+3.5)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 98 → 98 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 45 → 46 (+0.6)
- Readiness 26 → 26 (+0.0)
- Security 84 → 85 (+1.1)
- Accessibility 37 → 54 (+16.7)
Resolved (8)
- Documentation: contradicts the code (docs/remotedev.md)
- Documentation: no usage examples (README.md)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- Off-boarding risk: anonymized user #1
New (7)
- High CVE: [GHSA redacted] (WebSharper.Mvu.TodoMvc/package-lock.json)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- Off-boarding risk: anonymized user #1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
dotnet-websharper/mvu 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 be1f45ffc1bb6e73a7fdb568f58efc968bd49d2f — 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.