E94 UIx with Roman Liutikov
Oct 18, 2023
Roman Liutikov, a Clojure/ClojureScript UI engineer who built the UIX library and works at Pitch. He talks about UIX’s origins and the rewrite to UIX2, moving from Hiccup to $syntax for clearer code and precompilation. He explains tooling choices, hooks linting at compile time, bridging React with Re-frame, and the migration strategy and community support around UIX.
AI Snips
Chapters
Transcript
Episode notes
How Roman Turned Into A Clojure UI Engineer
- Roman started as a web UI engineer and gradually focused on Clojure/ClojureScript after discovering the single immutable global state model.
- He tried Mori in JavaScript, learned Clojure over years, and settled into ClojureScript once tooling (like Shadow) improved.
UIX Started As A Minimal React Hooks Wrapper
- UIX began as a minimal React wrapper using hooks to avoid classes and state wrappers, aiming to keep code minimal and readable.
- Roman used Clojure spec to declaratively parse Hiccup into normalized structures, learning ClojureScript internals while prototyping.
Prioritize Ecosystem Compatibility To Scale Teams
- When a codebase grows large, favour compatibility with mainstream ecosystems to ease hiring and reuse of existing components and hooks.
- At Pitch Roman moved toward React-like patterns so JavaScript hires could reuse skills and npm UI components.

