Skip to content
CAI
Software that uses CAICheck a score

Valian/live_vue

70.8

Strong · 3 October 2026

5.2k

lines of production code

Elixir

with TypeScript

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

LiveVue is an Elixir library that integrates Vue.js components with Phoenix LiveView, enabling seamless client-side interactivity within server-driven applications. It supports Server-Side Rendering via an embedded QuickBEAM runtime or external backends, optimizing performance through compact binary prop diffing and persistent layout injection. The system provides a comprehensive development workflow, including an automated installer, TypeScript-based tooling, and extensive end-to-end testing infrastructure.

How it got here

2024 — LiveVue v1.0 SSR rewrite and tooling overhaul

9 changes.

This period centered on the major v1.0 architectural rewrite of LiveVue, introducing Server-Side Rendering with QuickBEAM as the default backend and implementing efficient JSON Patch-based prop diffing. The project simultaneously modernized its development workflow by migrating frontend tooling to TypeScript and Vitest, while restructuring configuration to support multiple SSR backends and dropping legacy JavaScript scaffolding.

2025–2026 — E2E testing and installer automation

10 changes.

This period focused on establishing robust end-to-end testing infrastructure using Playwright to verify core LiveVue features, prop diffing, and layout persistence. It also introduced an Igniter-based installer to automate project setup and added a smoke test script to validate the installation process.

Features

Added LiveVue installation smoke test script

A new bash script, \scripts/live\_vue\_install\_smoke.sh\, has been added to automate the verification of LiveVue installation. The script creates a temporary Phoenix application, installs LiveVue from the current checkout, builds frontend assets, and verifies that both development and production server-side rendering (SSR) work correctly. It includes logic to patch the generated app's router and runtime configuration to ensure the demo route is accessible and the app can start in production mode without external environment variables.

scripts · high confidence

New Igniter-based installer for LiveVue with Vite

A new \mix live\_vue.install\ task has been added, leveraging Igniter to automate the setup of LiveVue with Vite. This installer configures the project by adding the \quickbeam\ dependency, updating JavaScript and Vite configurations (including SSR entry points and optimized dependencies), modifying Phoenix HTML helpers to support Vue components, and setting up environment-specific configurations for development and production SSR backends.

lib/mix · high confidence

Removals

Removal of legacy JavaScript hooks and SSR plugin

The JavaScript implementation files in \assets/js/live\_vue/\ (including \hooks.js\, \index.js\, \server.js\, \use.js\, and \vitePlugin.js\) have been deleted. This removes the previous client-side Vue hook mounting logic, the server-side rendering (SSR) entry point, and the Vite plugin that previously handled SSR requests via a \body-parser\ middleware. Users relying on this specific JavaScript-based integration for LiveVue components will no longer have these modules available.

assets/js · high confidence

Removed legacy LiveVue asset scaffolding files

The \assets/copy\ directory no longer includes the default JavaScript entry points (\app.js\, \server.js\), the Vite configuration (\vite.config.js\), or the TypeScript configuration (\tsconfig.json\). These files, which previously provided a basic setup for Phoenix LiveView with LiveVue integration, have been deleted, indicating that the project has moved away from this specific copy-based scaffolding or replaced it with a different initialization strategy.

assets/copy · high confidence

Behavioural changes

Introduce compact patch encoding and persistent layout injection for LiveVue

The assets directory has been restructured to support a new, more efficient communication protocol and layout system for LiveVue. A new compact patch encoding format (implemented in \compactPatch.ts\ with corresponding benchmarks and tests) replaces the previous method for transmitting state diffs, significantly reducing payload sizes and improving decode performance. Additionally, a new \v-inject\ mechanism (implemented in \inject.ts\ and tested in \inject.test.ts\) allows components to persistently inject content into layout slots, handling registration and cleanup across component lifecycles. The core hook logic in \hooks.ts\ has been updated to initialize the Vue instance synchronously to prevent race conditions during component resolution, and to utilize the new compact patches and injection system.

assets · high confidence

Library development environment and documentation overhaul

The project has been restructured to support a modern development workflow and clearer documentation. The Elixir formatter now includes the Styler plugin and enforces a 120-character line length, while Prettier settings have been updated to use 2-space tabs, 120-character width, and bracket spacing. The frontend tooling has migrated to TypeScript with a new \tsconfig.json\ and Vitest configuration for unit tests, replacing the previous setup. A new Conductor workspace configuration (\conductor.json\ and \conductor-setup.sh\) automates the installation of Elixir and Node dependencies along with Playwright browsers for E2E testing. Documentation has been significantly expanded with a new \AGENTS.md\ file for AI-assisted development, a detailed \usage-rules.md\ guide covering component organization and data flow, and a comprehensive \CHANGELOG.md\ documenting the 1.0.0 release and subsequent patches. The \.gitignore\ has been updated to exclude IDE files, Playwright artifacts, and the \priv\ directory, while the \CHANGELOG.md\ now includes a migration guide for the new embedded SSR manifest feature.

(repo-wide) · high confidence

LiveVue v1.0: Major rewrite with SSR, compact patches, and shared props

This release introduces a complete architectural overhaul of LiveVue. Server-Side Rendering (SSR) is now supported via \LiveVue.InjectedSSR\ and \LiveVue.SSR\, enabling lazy loading and preload link generation. Prop updates are significantly more efficient, using a new \LiveVue.Patch\ module to serialize changes into a compact binary wire format (\data-props-diff\) and supporting LiveView streams. Shared props are now injected at compile time via a \\~H\ sigil override in \LiveVue.SharedPropsView\, ensuring reactivity works correctly. The library also introduces \LiveVue.Encoder\ for safe struct-to-map serialization, replaces Floki with LazyHTML for HTML parsing, and drops support for Elixir 1.12.

_lib/live\vue · high confidence

Major configuration overhaul for SSR backends and asset handling

The LiveVue configuration has been significantly restructured to support multiple Server-Side Rendering (SSR) backends, including QuickBEAM and ViteJS, replacing the previous NodeJS-only setup. The \ssr\_module\ is now \nil\ by default, allowing users to select the backend at runtime or via environment-specific configs. New configuration keys have been introduced: \ssr\ to control default SSR behavior, \vite\_host\ for development server integration, \ssr\_filepath\ for QuickBEAM asset paths, and \gettext\_backend\ for translation support. Additionally, the \enable\_props\_diff\ option is now explicitly configurable (defaulting to \true\) to manage prop payload sizes, and the previous \esbuild\ configuration block has been removed entirely.

config · high confidence

Major refactoring of LiveVue component rendering and props diffing

The core \LiveVue\ module has been rewritten to support granular props diffing, stream handling, and component injection. The previous implementation, which sent full props and relied on a custom \sigil\_V\ for headless components, is replaced by a new \vue/1\ component that calculates minimal JSON Patch operations for changed props (controlled by the \enable\_props\_diff\ config) and supports \v-inject\ for slot injection. This change also introduces \data-ssr\ and \data-use-diff\ attributes to the rendered HTML, enabling the client-side hook to handle partial updates and SSR state more efficiently.

lib · high confidence

QuickBEAM becomes the default SSR backend with improved error handling and configuration

Server-side rendering now defaults to the embedded QuickBEAM runtime (LiveVue.SSR.QuickBEAM), which executes JavaScript within the BEAM process and removes the requirement for an external Node.js installation. The previous NodeJS backend has been refactored to support configurable SSR file paths and includes better missing-dependency error messages, while the ViteJS backend now supports configurable hosts and provides more detailed JavaScript stack traces on render failures. These changes are accompanied by a reorganization of the SSR module structure under lib/live\_vue/ssr.

_lib/live\vue/ssr · high confidence

Test coverage

Add Playwright-based E2E test infrastructure for LiveVue; Added E2E test suite for LiveVue core features; Added E2E tests for LiveVue prop diffing; Added E2E tests for persistent Vue layout injection; Added E2E tests for the upload feature; Added comprehensive test suite for LiveVue core features; Added e2e tests for dead views and memory benchmarking; Added tests for the LiveVue installer task.

Dependencies

LiveVue 1.2.3 release with Elixir 1.15+ requirement and optional SSR backends

This release bumps the package version to 1.2.3 and raises the minimum Elixir requirement to 1.15, dropping support for Elixir 1.12. It introduces optional dependencies for alternative server-side rendering backends, specifically \quickbeam\ (QuickBEAM) and \lazy\_html\, allowing users to choose their preferred SSR implementation. The \nodejs\ dependency is now optional, and the project adds \igniter\ for installer support, \jsonpatch\ for diffing, and \phoenix\_vite\ for asset management. Development tooling is updated with \ex\_doc\ 0.38, \styler\, and \excoveralls\, while the JavaScript side updates to version 1.0.0, adds ESM module support via \type: module\, and includes comprehensive E2E testing infrastructure using Playwright and Vitest.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 70 → 71 (+0.4)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 80 → 82 (+2.1)
  • Architecture 100 → 99 (-1.2)
  • Maturity 67 → 67 (+0.0)
  • Readiness 64 → 65 (+0.5)
  • Security 83 → 80 (-3.3)
  • Performance 91 (new)

Resolved (9)

  • Documentation: no installation or build instructions (README.md)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High: security finding (details withheld)
  • Medium CVE: EEF-[CVE redacted] (mix.lock)
  • use.useLiveUpload (cognitive 17) (assets/use.ts)
  • use.useLiveUpload (cyclomatic 20) (assets/use.ts)
  • vitePlugin.liveVuePlugin (cognitive 23) (assets/vitePlugin.js)
  • vitePlugin.liveVuePlugin (cyclomatic 19) (assets/vitePlugin.js)

New (9)

  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High CVE: [GHSA redacted] (package-lock.json)
  • High: security finding (details withheld)
  • Medium CVE: EEF-[CVE redacted] (mix.lock)
  • Medium CVE: EEF-[CVE redacted] (mix.lock)
  • Outdated: lazy_html
  • liveVuePlugin (cognitive 23) (assets/vitePlugin.js)
  • liveVuePlugin (cyclomatic 19) (assets/vitePlugin.js)

Changes since last survey

  • 1 commits — 1 feature/other, 0 fixes

By area

  • .github/workflows — 1 commit

Notable commits

  • change: ci: update checkout, setup-node, and cache to current majors (#156)

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

Survey your own repository

Valian/live_vue 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 b37993588bdf301982ec9ff68023e4b9e24f5e99 — 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.