Functional Client-Side ClojureScript UI Programming with Webfui
summary
Webfui claims a functional client-side model that synchronizes a Clojure atom with the DOM by rendering hiccup EDN, diffing the old and new trees and applying minimal DOM patches; it adds state patches for localized diffs to make watchers purely functional and introduces mouse-as-gesture watches and plugins for scroll/active state. Demos include a 92-line calculator and 40 calculators (2,000+ DOM nodes) where keypress handling measures ~250 ms per press (goal ~50 ms). AJAX is handled as state “corruption” with containment and curing via imperative watchers.
AI-written summary · about
chapters (11)
- 0:00Start
- 1:21Definitions
- 2:46Goals
- 4:27Main Parts of Webfui
- 5:08Server-side HTML
- 8:40Capturing User Interaction
- 13:45Making webfui.dom Pleasant to Use
- 16:12webfui.state-patches
- 30:46Demo- Performance
- 32:24AJAX With Webfui
- 34:41Server Communication is a Virus!
related talks
32mElectric Clojure Differential Dataflow for UI (KEYNOTE)
38mThe challenges and benefits of a functional reactive frontend
28mElectric Clojure: Differential Dataflow for UI
32mUI, Pure and Simple
35mClojureScript & User Interfaces: Simplicity yields Possibilities
35mDeclarative UIs in a functional language
49mClojureScript: Fun and productive web development with next level tooling
39mWeb Apps in Clojure and ClojureScript with Pedestal
