ClojureStream Podcast

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.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
ANECDOTE

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.
INSIGHT

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.
ADVICE

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.
Get the Snipd Podcast app to discover more snips from this episode
Get the app