Building CircleCI's Front end With Om
summary
CircleCI ships a production-caliber, open-source frontend built with ClojureScript + Om + React, about 13k ClojureScript in a ~30k LOC project with ~179 Om components and a full clean build that can take ~80 seconds. It uses a single global app-state atom fed by a handful of core.async controllers (navigation, API, controls, websocket) that queue data and optimistic updates; this works but creates anti-modularity, tricky data shaping, and pain around styles (Less) and asset tooling (Stefon).
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:25CircleCI UI overview
- 3:20Front-end evolution
- 5:32High-level architecture
- 7:01Data management in OM
- 9:15Controller functionality
- 12:55Event handling and logic
- 16:41Component design
- 19:55Markup and syntax
- 21:30Build pipeline challenges
- 23:10Styling limitations
- 24:11Future architecture
- 26:35Conclusion and Q&A
related talks
38mThe challenges and benefits of a functional reactive frontend
27mThe Functional Final Frontier
32mRefracting React
29mDesign decisions in React-based ClojureScript applications
36mOptimizing ClojureScript Apps For Speed
38m"Growing Data Center networking mgmt UI using ClojureScript, Reagent and re-frame"
49mClojureScript - Making Front-End development Fun again
38mProduction Ready ClojureScript: Tales from the Frontier
