geolessel/react-phoenix
51.9
Adequate · 3 October 2026
174
lines of production code
Elixir
with JavaScript
2
measurements over time
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.