kbrw/reaxt
40.3
Weak · 18 September 2026
509
lines of production code
Elixir
with JavaScript
1
measurement over time
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.