Skip to content
CAI
Software that uses CAICheck a score

JordanMarr/fable-lit-fullstack-template

69.4

Adequate · 3 October 2026

1.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 full-stack F\# development template that provides a unified structure for building web and cross-platform desktop applications. It integrates an ASP.NET Core backend with a Fable.Lit frontend, utilizing Serde.FS for typed RPC communication and Photino for native desktop hosting. The template includes a FAKE-based build system for packaging and deployment, along with built-in validation, logging, and testing utilities to streamline the development workflow.

Features

Add cross-platform Desktop host using Photino

Users can now run the application as a native desktop client on Windows, macOS, and Linux via a new Photino-based host. This change introduces a new Desktop entry point that embeds an in-process Kestrel server within a native window, serving the web interface locally. In development, the desktop app proxies requests to the Vite dev server for hot module replacement, while in production it serves the static client files directly from the executable's directory on a dynamic loopback port.

Template/Desktop, WebApi · high confidence

Fullstack template now supports cross-platform desktop apps via Photino

The template has been updated to version 3.2.0, introducing a new Desktop project that allows you to deploy your application as a cross-platform desktop app using the Photino framework, in addition to the existing web deployment options. The solution structure now includes a dedicated Desktop.fsproj alongside the WebApi, Shared, and WebLit projects, and the build process is managed via FAKE tasks in the Build project rather than npm scripts.

Template · high confidence

Initial build system with FAKE targets for server, client, and desktop packaging

The Template/Build directory now contains the initial FAKE-based build scripts (Program.fs, Files.fs, Retry.fs, Setup.fs, Swag.fs, Tools.fs) that define targets for cleaning, restoring, building, and testing both the WebApi server and WebLit client, as well as packaging them into a distributable format via 'Pack' and 'PackNoTests'. It also introduces specific targets for building and packaging a cross-platform Desktop application ('Desktop', 'PackDesktop') and an Azure Web App deployment task ('AzDeployWeb'), providing a unified command-line interface for the full stack development and deployment workflow.

Template/Build · high confidence

Initial build-time analyzer installation logic added

The build system now includes a new F\# module (Template/Build/Analyzers.fs) that handles downloading and installing NuGet packages containing F\# analyzers. This logic fetches packages from the NuGet registry, extracts them, and installs them into a specified directory, supporting target frameworks netcoreapp2.0 and netcoreapp2.1.

Build · high confidence

Initial release of the WebLit template with a cat facts demo app

The WebLit template is now available, providing a starter project built on Fable.Lit, Vite, and the Fable.Lit.Dsl. It includes a complete demo application for managing and viewing cat facts, featuring a multi-page router, a validation framework for forms, and a toast notification system. The UI leverages Shoelace and Fluent UI components, with a dark theme and pagination support for the fact list.

Template/WebLit · high confidence

Behavioural changes

Initial WebApi template with ASP.NET Core and Serilog

The WebApi template now uses ASP.NET Core with Serilog for logging and includes a debug route that auto-redirects to the local dev server at localhost:3000. It implements the IServerApi protocol to fetch cat facts from an external API, with a fix that prevents the HttpClient from being disposed prematurely and replaces periods in fact text to avoid router issues.

Template/WebApi · medium confidence

Migrated RPC communication to Serde.FS and added client-side validation framework

The Shared layer now uses Serde.FS for client-server communication, replacing the previous Fable.Remoting implementation. This change introduces a new RPC interface (IServerApi) that drives code generation for both the server dispatch and the typed Fable client proxy. Additionally, a new validation framework (Validation.fs) has been added to the shared codebase, providing reusable rules (such as required, maxLen, and isTrue) and a ValidationResult type, which is now utilized by entities like CatInfo to enforce data integrity on the client side before submission.

Shared · high confidence

Test coverage

Added HTTP client scripts and basic test runner; Added UI tests for the Todo application.

Dependencies

Upgrade to .NET 10 and Fable 5 with updated F\# libraries

The template now targets .NET 10.0 and Fable 5.0.0, upgrading the F\# runtime to FSharp.Core 10.0.x across all projects. This includes updates to the build system (Nuke.Common 6.0.2, Fake 5.22.0), the desktop host (Photino.NET 4.0.16), and the web stack (Serde.FS 1.0.0-beta.4, Fable.Lit 1.4.2, Fable.LitRouter 1.0.0). The frontend dependencies have also been updated to use Lit 3.1.3, Shoelace 2.15.0, and Vite 4.5.3.

(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 66 → 69 (+3.8)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 76 → 76 (+0.0)
  • Architecture 61 → 67 (+6.0)
  • Maturity 82 → 82 (+0.0)
  • Readiness 67 → 67 (+0.0)
  • Security 68 → 74 (+6.5)

Resolved (3)

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

API surface

  • Unchanged — 2 HTTP endpoints

Architecture

  • Unchanged — 0 containers · 3 contexts · 1 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

JordanMarr/fable-lit-fullstack-template 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 a2d2e47dc8be4601fc91d237ccf57959e0b8a21e — 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.