Fez → reactive components

Directly in HTML with zero build steps

exampleslibGitHub repoAI GuideBenchmark

<html> <head> <title>Time</title> <script script="https://dux.github.io/fez/dist/fez.js"></script> <script script="/fez/ui-time.fez"></script> </head> <body> <ui-time city="My place"></ui-time> <body> </html>

Main purpose of Fez is to enhance and add interactivity to plain HTML pages. It delivers React/Vue/Svelte/Angular like simplicity without any build step - just drop in a script tag and start coding.

Fez brings the reactive component model you love from React/Vue/Svelte, but works directly in the browser. While other require webpack/vite + compilation, Fez lets you write reactive components as native custom elements that work instantly. No npm install, no config files, no build process - just include the 20KB script and your HTML becomes reactive. Perfect for enhancing server-rendered pages, prototyping ideas, or building micro-frontends without tooling complexity.

What does Claude AI think about Fez?"

Prompt
Look at AI_GUIDE.md, README.md and components in fez/*.fez, then write what do you think of the lib. Is it bette / worse / different then react / vue / svelte. When should one chose Fez or maybe never.
Response

Final Verdict

Fez is a hidden gem that challenges the complexity of modern frameworks. It proves you can have reactivity, components, and modern DX without webpack configs, transpilers, or framework lock-in. It's particularly brilliant for developers who miss the simplicity of jQuery but want modern component architecture. While it won't replace React for large enterprise apps, it's perfect for the 80% of web projects that don't need that complexity.

With reactive state and custom style.

  1. Add Fez JS (to HEAD) <script src="https://dux.github.io/fez/dist/fez.js"></script>
  2. Create ui-counter component

    Or load via HTTP (as in this case)

    <script fez="/demo/ui-counter.fez"></script>
  3. Place ui-counter anywhere in BODY <div id="counters"> <ui-counter></ui-counter> <ui-counter start="1"></ui-counter> <ui-counter start="2"></ui-counter> </div>
  4. That is it! Add then as regular DOM nodes.

You will learn all Fez features, just by inspecting these examples. You can edit and update both HTML and Fez code.


Fez was created by @dux in 2024.