Candango Faz is a Web Components toolkit for incremental modernization of legacy applications.
It provides a small substrate for replacing tangled server-rendered UI fragments with reusable custom elements. A common target is an existing PHP or server-rendered application where markup, conditionals, Bootstrap classes, and imperative JavaScript are mixed together. Faz lets teams replace those fragments gradually with focused HTML tags instead of stopping the business for a full rewrite.
Faz is designed for progressive migration:
- Find a painful legacy UI fragment.
- Extract its behavior and presentation into a Faz component.
- Replace the legacy fragment with a custom element tag.
- Keep the surrounding application running.
- Repeat safely, one UI island at a time.
The project is intentionally HTML-first. Components should be easy to consume from plain HTML, server-rendered templates, and older Bootstrap-based pages.
npm i fazpnpm add fazThe package exposes built ESM and declaration artifacts through the package export map:
import {
FazElement,
FazFormElement,
FazPaginator,
bindReactive,
randomId,
toBoolean,
} from "faz";Additional public entrypoints:
import { bindReactive } from "faz/reactivity";
import { FazPaginator } from "faz/paginator";The faz/src entrypoint is still published for compatibility with existing Faz-based packages, but consumers should prefer the built package entrypoints whenever possible.
This project uses pnpm.
Install dependencies:
pnpm installRun the full build:
pnpm run buildRun tests:
pnpm testRun development stylesheet compilation:
pnpm run lessc:devRun the showcase watcher:
pnpm run showcaseThe build generates:
dist/js/*bundled ESM artifacts;dist/types/*TypeScript declarations;dist/css/*compiled stylesheets.
The package entrypoint is dist/js/index.js, and the public type entrypoint is dist/types/index.d.ts.
Before publishing or testing downstream consumers, run:
pnpm install --frozen-lockfile
pnpm run build
pnpm test
pnpm packCandango Faz was licensed under Apache-2.0 from 2018 to 2025.
Since 2026 it is licensed under the MIT License.