Skip to content
CAI
Software that uses CAICheck a score

codescouts-academy/react-clean-architecture

49.6

Weak · 21 September 2026

297

lines of production code

TypeScript

with JavaScript

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a standalone React application scaffolded with Vite and structured using clean architecture principles. It serves as a template that includes a basic logging feature, allowing users to create and view log messages through a defined domain and application layer. The project provides a complete development environment with TypeScript, ESLint, Jest, and dependency injection, having been simplified from a previous monorepo setup.

Features

Initial project structure with logging functionality

The application is initialized with a clean architecture structure, introducing a logging feature that allows users to add log messages. This includes a new \AddLogUserCase\ for handling log creation, a \LoggerService\ for persistence, and a \NewLogRegistered\ domain event to notify listeners. The UI has been updated to support this feature, with a new \useLogViewModel\ hook and corresponding components in the Home page to capture and display logs. The project structure has been reorganized from a starter template into a standard \src/\ layout, including domain, application, infrastructure, and UI layers, along with necessary test setup and dependency injection configuration.

(repo-wide) · high confidence

Removals

Removed legacy starter application scaffolding

The starter application located at apps/starter has been completely removed from the codebase. This deletion eliminates the previous React + Vite project structure, including its configuration files (tsconfig.json, vite.config.ts, .eslintrc.cjs), the main entry point (main.tsx), and the entire source tree containing domain models, infrastructure services, UI components, and page logic. Users will no longer have access to this specific starter template or its associated logging and test-use-case implementations.

apps/starter · high confidence

Behavioural changes

Initialize React + Vite clean architecture template

The repository has been restructured into a standalone React application using Vite, replacing the previous monorepo setup that relied on Turborepo (evidenced by the removal of \turbo.json\ and the flattening of configuration files like \tsconfig.json\ and \index.html\ to the root). The project now enforces a clean architecture folder structure (\src/application\, \src/domain\, \src/infrastructure\, \src/ui\) and includes specific tooling configurations: ESLint with TypeScript and React plugins, Jest for testing, and Vite with React support and path aliasing (\@\ to \src\). The template also introduces a dependency injection container and domain event handling libraries, along with an MIT license and updated documentation.

(repo-wide) · high confidence

Dependencies

Migrate from Turborepo monorepo to single-app Vite project

The project structure has been simplified from a Turborepo-managed monorepo into a single Vite-based application. The root package.json now defines the application directly, removing the 'turbo' build system and npm workspaces configuration. The legacy 'package-lock.json' has been replaced with a 'pnpm-lock.yaml' (lockfileVersion 9.0), and the 'apps/starter' subdirectory has been removed. Dependencies for the '@codescouts' library suite (di, domain, events, store, ui, test) are now pinned to specific versions in the root manifest, and the build tooling has shifted to use Vite and Jest instead of Turborepo.

(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 → 50 (+4.6)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 100 (+0.1)
  • Architecture 69 → 69 (+0.0)
  • Maturity 61 → 61 (+0.7)
  • Readiness 23 → 34 (+10.8)
  • Security 75 → 80 (+5.0)
  • Accessibility 57 → 57 (+0.0)

Resolved (32)

  • Coverage not included — suite not readable by the collector
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Low CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Low CVE: [GHSA redacted] (pnpm-lock.yaml)
  • …and 12 more

New (34)

  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • …and 14 more

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

Survey your own repository

codescouts-academy/react-clean-architecture 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 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 28dca966e7fcfde079e51d9df552a3cff54b98cc — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.