Skip to content
CAI
Software that uses CAICheck a score

phoenixframework/phoenix_live_reload

67.6

Adequate · 3 October 2026

476

lines of production code

Elixir

with JavaScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a development tool for Phoenix applications that provides live reloading capabilities for assets and templates. It monitors file changes to trigger targeted updates, such as injecting new CSS styles without a full page refresh, and supports server log streaming to the browser console. Additionally, it facilitates debugging by allowing developers to open source files directly from the browser interface.

Features

Live reload now supports server log streaming and HEEx editor shortcuts

Developers can now stream server logs directly to the browser's web console by enabling the \web\_console\_logger\ configuration, with logs emitted as \phx:live\_reload:log\ events for custom handling. Additionally, the library introduces client-side functions \openEditorAtCaller\ and \openEditorAtDef\ (accessible via \enableEditorShortcuts\) that allow clicking on HEEx components in the DOM to open the configured \PLUG\_EDITOR\ at the specific source file and line, facilitating faster debugging of component definitions and callers.

(repo-wide) · high confidence

Behavioural changes

CSS hot-reload now updates stylesheets and @imported styles without a full page refresh

The live-reload client now replaces changed CSS \<link\> tags and \<style\> blocks (including those with @import directives) by injecting fresh versions into the DOM and removing the old ones, rather than reloading the entire page. This behavior is the default for CSS changes; a full page reload is still triggered if the 'reloadPageOnCssChanges' configuration option is enabled. The implementation also includes safeguards to prevent duplicate removals and handles load errors by cleaning up pending styles.

priv · high confidence

Live reload now uses Phoenix Channels with configurable web console logging

The live reload mechanism has been refactored to use a dedicated Phoenix Channel (\Phoenix.LiveReloader.Channel\) and Socket (\Phoenix.LiveReloader.Socket\) instead of the previous router-based approach. This change introduces a new \web\_console\_logger\ configuration option that, when enabled, forwards Elixir log messages to the browser's web console via the channel. The system now supports configurable debounce times for file change events, allows broadcasting file change notifications to custom PubSub topics via the \:notify\ option, and enables full page reloads on CSS changes through the \:reload\_page\_on\_css\_changes\ setting. Additionally, the application now starts a \WebConsoleLogger\ GenServer and a file monitor supervisor, and supports opening files in an editor via the \PLUG\_EDITOR\ environment variable.

_lib/phoenix\_live\reload · high confidence

Fixes

Migrate to Elixir 1.9+ config syntax and set JSON library

The application configuration has been updated to use the modern \import Config\ syntax, replacing the deprecated \use Mix.Config\ module to resolve compilation warnings on newer Elixir versions. Additionally, the configuration now explicitly sets \:phoenix\ to use \Jason\ as the JSON library, addressing deprecations in Phoenix 1.4.

config · high confidence

Test coverage

Added comprehensive tests for the live reload channel and plug

Added new test suites for the \Phoenix.LiveReloader.Channel\ and \Phoenix.LiveReloader\ plug, replacing the previous \phoenix\_live\_reload\_test.exs\. The new tests verify that the channel correctly sends notifications for various asset types (JS, CSS, images, templates, views, and LiveViews), respects configuration for web console logging and editor URLs, and filters out files in \\_build\ directories. The plug tests confirm that the live reload iframe is correctly injected into HTML responses, handles multiple body tags, respects script names and custom iframe attributes, and skips injection for non-HTML requests or missing body tags.

test · high confidence

Dependencies

Upgrade to Phoenix 1.4+ and Elixir 1.11 with modernized dependencies

Phoenix Live-Reload now requires Elixir 1.11+ and supports Phoenix 1.4 through 1.5, replacing the old git-based dependency fetches with stable Hex versions. The file monitoring backend has switched from the \:fs\ library to \:file\_system\ (v1.0.0) to improve stability, and the application now uses a standard supervision tree via \Phoenix.LiveReloader.Application\. Documentation tooling has been updated to use ExDoc 0.40.3 with Makeup for syntax highlighting, and the package metadata now lists José Valim as a maintainer.

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

Lenses

  • Code Health 100 → 100 (+0.1)
  • Architecture 69 → 69 (+0.0)
  • Maturity 59 → 59 (+0.0)
  • Readiness 66 → 69 (+2.4)
  • Security 93 → 94 (+1.4)

Findings

  • No change — the same findings as the prior survey.

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

Survey your own repository

phoenixframework/phoenix_live_reload 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 923bc4445b94d4731e48b46d10e8b90c47149456 — 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-24c657e50118.