~/talk

Building CircleCI's Front end With Om

Talkat Clojure/West 2015 · 2015-04-20..04-22· [react, frontend-architecture]
slides:none on file

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

  1. 0:00Introduction
  2. 1:25CircleCI UI overview
  3. 3:20Front-end evolution
  4. 5:32High-level architecture
  5. 7:01Data management in OM
  6. 9:15Controller functionality
  7. 12:55Event handling and logic
  8. 16:41Component design
  9. 19:55Markup and syntax
  10. 21:30Build pipeline challenges
  11. 23:10Styling limitations
  12. 24:11Future architecture
  13. 26:35Conclusion and Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.