Skip to content
CAI
Software that uses CAICheck a score

geolessel/react-phoenix

51.9

Adequate · 3 October 2026

174

lines of production code

Elixir

with JavaScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

ReactPhoenix is an Elixir library that enables rendering React components within Phoenix applications by bridging server-side views with client-side JavaScript. It provides functions to generate HTML attributes for React classes and props, supporting flexible configuration of wrapper elements and target IDs. The system manages asset compilation via Webpack and Babel, and handles environment-specific configurations to ensure proper integration across development, test, and production setups.

Features

Initial release of React Phoenix integration

This change introduces the \priv/js/react\_phoenix.js\ file, which provides the client-side JavaScript logic to render React components within a Phoenix application. The script automatically initializes on DOM load, scanning for elements with the \data-react-class\ attribute, parsing their associated props from \data-react-props\, and rendering the specified React component into the corresponding target element (identified by \data-react-target-id\ or the element itself).

priv, src · high confidence

New ClientSide module for rendering React components with flexible HTML elements

The library introduces a new \ReactPhoenix.ClientSide\ module that provides functions to render React components within Phoenix views. This module supports passing props as maps or lists and allows users to specify options such as \target\_id\ to render into an existing HTML element, or \html\_element\ to change the wrapper tag (e.g., from \div\ to \span\). Any additional options passed are forwarded as attributes to the generated HTML element. The implementation uses \Jason\ for encoding props to JSON.

_lib/react\phoenix · high confidence

Behavioural changes

Deprecation of top-level ReactPhoenix functions in favor of ClientSide module

The top-level \ReactPhoenix.react\_component/2\ and \react\_component/3\ functions are now deprecated and simply delegate to \ReactPhoenix.ClientSide.react\_component\. Users should migrate to the \ReactPhoenix.ClientSide\ module for client-side rendering to avoid deprecation warnings, as the legacy functions are retained only for backward compatibility with versions prior to 0.4.0.

lib · high confidence

Environment-specific configuration files added

The application now supports distinct configuration files for development, production, and test environments. The main config file has been updated to import environment-specific settings using \import\_config\, allowing users to override default settings based on the current Mix environment without modifying the core configuration file.

config · high confidence

Migrate to Webpack and Babel 7 for Phoenix 1.4+ support

The package now targets Phoenix 1.4+ by switching the default asset pipeline from Brunch to Webpack and upgrading to Babel 7. This change introduces a new \.babelrc\ configuration using \@babel/preset-env\ and updates the main README with installation instructions for Webpack, including specific configuration steps for \npm\ and \yarn\ users. Documentation for older Phoenix versions (1.2 and 1.3) using Brunch has been moved to separate files (\README-phoenix-1.2.md\ and \README-phoenix-1.3.md\).

(repo-wide) · high confidence

Test coverage

Added tests for ReactPhoenix.ClientSide component rendering

Added a new test suite for the ReactPhoenix.ClientSide module, verifying that the react\_component function correctly generates safe HTML tuples, renders div elements with appropriate data-react-class and data-react-props attributes, and supports options for specifying target IDs, custom HTML elements (such as spans), and passing additional HTML attributes like class and id.

_test/react\phoenix · high confidence

Dependencies

Initial release of ReactPhoenix v1.3.1 with Elixir and Node.js dependencies

This entry introduces the ReactPhoenix library (v1.3.1), providing a helper for rendering React components in Phoenix projects. The change establishes the project's dependency structure by adding Elixir packages \phoenix\_html\ (supporting versions 2.11 and 3.0) and \jason\ to the application, alongside dev tools \ex\_doc\ and \dialyxir\. It also initializes the Node.js build environment with \@babel/cli\, \@babel/core\, \@babel/preset-env\, and \uglify-js\ for JavaScript bundling, while defining peer dependencies on React and React-DOM (\>=15).

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

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 49 → 49 (+0.0)
  • Readiness 33 → 38 (+4.8)
  • Security 86 → 88 (+1.5)

Resolved (2)

  • Documentation: no architecture or design documentation (README.md)
  • Documentation: no usage examples (README.md)

New (1)

  • High CVE: [GHSA redacted] (yarn.lock)

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

Survey your own repository

geolessel/react-phoenix 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 ba72f0e0b0f03ba5bf1eac93b87fe89fe9155b95 — 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-8fe32cd45d00.