Skip to content
CAI
Software that uses CAICheck a score

kbrw/reaxt

40.3

Weak · 18 September 2026

509

lines of production code

Elixir

with JavaScript

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is an Elixir library that facilitates server-side rendering of React applications using Node.js. It manages the build and serving of JavaScript assets via Webpack, supporting both server-side rendering and client-side hydration. The architecture includes infrastructure for hot-reloading and parallel compilation to improve development workflow and performance.

Removals

Removal of legacy React server-side rendering and development server

The legacy JavaScript-based React server-side rendering implementation and its associated Webpack development server have been removed from the codebase. This eliminates the \react\_server.js\ module that handled server-side rendering via \node\_erlastic\ and the \webpack\_react\_server.js\ configuration that previously served assets on localhost:8080, indicating a shift away from this specific server-rendering architecture.

_priv/react\server · high confidence

Behavioural changes

Introduces client-side hydration and parallel Webpack compilation for Reaxt

Reaxt now supports client-side rendering via a new \client\_entry\_addition.js\ that uses \ReactDOM.hydrate\ to attach interactivity to server-rendered HTML, allowing seamless transitions from server to client. To improve build performance, the system now compiles client and server bundles in parallel using separate Webpack watchers (\webpack\_server\_client.js\ and \webpack\_server\_server.js\) that communicate with the Erlang node via \node\_erlastic\. Additionally, a global configuration mechanism (\config.js\) allows runtime customization of Reaxt behavior, and the client-side build process now provides desktop notifications for compilation status and errors.

_priv/commonjs\reaxt · high confidence

Removal of legacy config/config.exs file

The legacy config/config.exs file has been removed from the project. This file previously contained boilerplate configuration and comments related to the deprecated Mix.Config module and environment-based configuration imports. Its removal indicates a shift away from this older configuration pattern, likely towards a more modern or simplified setup handled elsewhere in the application.

config · high confidence

Replaces synchronous rendering with chunked pools and introduces hot-reload infrastructure

The library now supports chunked server-side rendering via \Reaxt.render\_result/4\ and \Reaxt.render!/4\, which route requests to specific pools (e.g., \:react\_server\_pool\) instead of a single global \:react\ pool. This change is accompanied by a new hot-reload architecture: the application supervisor now conditionally starts \WebPack.Events\, \WebPack.EventManager\, and \WebPack.Compiler\ processes when the \:hot\ config is enabled, allowing the server to wait for Webpack compilation and restart pools on client changes. A new \WebPack.Plug.Static\ handles static file serving with compilation-waiting logic and exposes \/webpack/events\ for Server-Sent Events. Additionally, the \ReaxtError\ exception now captures and parses JavaScript stack traces for better debugging, and the \start\_link\ function now passes a global configuration object to the Node.js server process.

lib · high confidence

Updated webpack static assets with new public path and hot reloading support

The static JavaScript files in priv/static have been regenerated to reflect a change in the webpack public path from the previous default to /webpack/static. This update also includes the client-side code and hot reloading logic, enabling the application to serve these assets from the new path and support live updates during development.

priv/static · medium confidence

Dependencies

Major dependency upgrades and Elixir version bump

This release upgrades the project to require Elixir \~\> 1.12 and significantly updates core dependencies: exos is bumped from 0.0.1 to \~\> 2.0, poolboy from 1.4.2 to \~\> 1.5, and new dependencies plug (\~\> 1.15) and poison (\~\> 6.0) are added. The JavaScript side replaces the old react\_server package with a new commonjs\_reaxt package, upgrading React and React-DOM from 0.12.2 to 16.12.0, and webpack from 1.4.13 to ^5.1.3, while also updating node\_erlastic to the @kbrw scope. These changes align the library with modern Elixir and React ecosystems.

(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

Baseline

  • First survey — no prior run to compare against. CAI 40.

Lenses

  • Code Health 47
  • Architecture 69
  • Maturity 52
  • Readiness 24
  • Security 87

Changes since last survey

  • 140 commits — 130 feature/other, 10 fixes

By area

  • (root) — 61 commits
  • priv/commonjs_reaxt — 28 commits
  • (repo) — 15 commits
  • lib/tasks.ex — 11 commits
  • lib/reaxt.ex — 8 commits
  • lib/webpack.ex — 8 commits
  • priv/react_server — 5 commits
  • priv/static — 2 commits
  • config/config.exs — 1 commit
  • priv/analyse — 1 commit

Notable commits

  • fix: Fix ReaxtWebpack compiler return
  • fix: Fix typing violation warning
  • fix: Merge pull request #21 from Krapaince/fix-mix-env-forward
  • fix: Merge pull request #22 from Krapaince/fix-reaxt-validate-check
  • fix: fix README
  • fix: fix for elixir 1.1.0
  • fix: fix regression, static must match after dispatch
  • fix: fix regression: recursive function name error
  • fix: fix: Use :erlang.garbage_collect/0 since webpack json stats tends to not be garbage collected, leading to large unneeded memory usage.
  • fix: v1.0.3 fix: task name convention for reaxt_compiler
  • change: 4.1.1
  • change: Add parallel webpack support
  • change: Add reaxt global configuration feature
  • change: Added CONTRIBUTING.md
  • change: Added back what was present before I overwrited it
  • change: Adding callback in React render function for reaxt client side rendering
  • change: Adding configurable web_app location, including validation and help for setup of reaxt.
  • change: Adding user Task.Compiler for the Reaxt Mix Compiler
  • change: Better Exception handling with domain
  • change: Bump deps versions
  • …and 120 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

kbrw/reaxt 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 18 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 7deecb6574dc636c6945a786b18c6836c4f4c9a5 — 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-5d04157a340d.