Skip to content
CAI
Software that uses CAICheck a score

bailabs/react_js_clean_architecture

43.9

Weak · 21 September 2026

286

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 Next.js application that has been migrated from a standard React setup, featuring a TypeScript codebase with Redux Toolkit for state management. It provides a global state management layer for a counter and a plant list, alongside standard Next.js routing and API capabilities. The application also includes tooling for code quality and formatting, along with a security policy.

Features

Added Next.js configuration and global styles for the app

The app directory now includes essential configuration and styling files to support the Next.js framework. A TypeScript configuration (tsconfig.json) and environment type definitions (next-env.d.ts) have been added to enable proper type checking and Next.js integration. Additionally, global CSS styles (globals.css) and component-specific styles (Home.module.css) have been introduced to define the visual layout, typography, and responsive behavior for the home page.

src/app, src/app/styles · high confidence

Added Next.js pages with Redux Toolkit integration

The application now includes a custom Next.js \_app.tsx that wraps pages with a Redux store provider, enabling global state management across the app. The index page demonstrates this integration by displaying both a sync counter (using Redux Toolkit slices for increment/decrement actions) and an async reducer for fetching and displaying a list of plants. An API route at /api/hello is also added to support Next.js API routes.

src/pages · high confidence

Introduced Redux Toolkit for state management

The application now uses Redux Toolkit to manage state. A new counter feature has been added, along with a plant list feature that fetches data asynchronously. Custom React hooks for dispatching and selecting state are also provided.

src/app/redux · high confidence

Behavioural changes

Project configuration and tooling updates

The project's development environment and configuration have been updated. TypeScript compilation settings in tsconfig.json were modified, including enabling 'jsx: preserve' and adjusting strictness and module options. An ESLint configuration (.eslintrc.js) was added to enforce code quality, import sorting, and React/TypeScript best practices. Prettier was installed and configured (.prettierrc.js) for consistent code formatting. Additionally, a SECURITY.md policy file was added to the repository.

(repo-wide) · high confidence

Removed React app entry point and service worker

The application's main entry point (src/index.js) and the default Create React App service worker (src/serviceWorker.js) have been removed. This eliminates the automatic registration of a service worker for offline caching and background updates, meaning the app will no longer function as a Progressive Web App (PWA) with those specific capabilities.

src · high confidence

Removed legacy Redux-based item list implementation

The legacy Redux implementation for the item list has been removed. This includes the deletion of the actions, reducers, types, and the React component that relied on \react-redux\ for state management. Users will no longer see the item list rendered via this specific Redux flow.

src/app/pages · high confidence

Renamed data repository from Item to Plant

The data layer has been refactored to align with the domain model change from 'Item' to 'Plant'. The old \ItemRepositoryImpl\ has been removed and replaced with a new \PlantRepositoryImpl\ that fetches and maps plant data from the remote JSON source. This change ensures the data access layer correctly reflects the updated entity naming and structure.

src/data · high confidence

Renamed domain entities from Item to Plant

The domain layer has been refactored to use a 'Plant' model instead of the previous 'Item' model. This involves replacing the generic Item entity, repository, and service with their Plant-specific counterparts, meaning the application now manages plant data rather than generic items.

src/domain · high confidence

Replaced default React app static assets with Vercel branding

The default React application static files in the public directory have been removed, including index.html, manifest.json, and robots.txt. These have been replaced by a new public/vercel.svg file containing Vercel branding, indicating a shift from the standard Create React App template to a Vercel-specific setup.

public · medium confidence

Dependencies

Migrated from Create React App to Next.js with updated dependencies

The project has been migrated from a standard React application scaffolded with Create React App to a Next.js application. This change updates the build and development scripts to use Next.js commands (e.g., \next dev\, \next build\) and replaces the \react-scripts\ dependency with \next\. Additionally, the React library and related packages have been upgraded to version 17.0.2, and \@reduxjs/toolkit\ has been added as a new dependency for state management. The project has also been converted to TypeScript, introducing \typescript\ and associated type definitions, while dev dependencies have been updated to include ESLint, Prettier, and related configuration packages.

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

Lenses

  • Code Health 91 → 91 (+0.5)
  • Architecture 69 → 69 (+0.0)
  • Maturity 48 → 46 (-1.8)
  • Readiness 23 → 31 (+7.2)
  • Security 38 → 55 (+17.0)

Resolved (39)

  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical vulnerability: [GHSA redacted] (yarn.lock)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • 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)
  • 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)
  • High CVE: [GHSA redacted] (yarn.lock)
  • High CVE: [GHSA redacted] (yarn.lock)
  • …and 19 more

New (96)

  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical CVE: [GHSA redacted] (yarn.lock)
  • Critical vulnerability: [GHSA redacted] (yarn.lock)
  • Critical vulnerability: [GHSA redacted] (yarn.lock)
  • Documentation: no installation or build instructions (README.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)
  • 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)
  • …and 76 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

bailabs/react_js_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 052818ccbf653bbcf8cb4c6e09116aac1141d7cb — 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-b84573e22831.