~/talk

Declarative by default

Talkat UtahJS Conf 2025 · on Friday, 2025-09-12· [frontend-architecture]
links:none on file
slides:none on file

Argues that making projects declarative by default reduces cognitive load and makes large React apps more maintainable and easier to evolve, citing concrete patterns: functions-as-components, pure functions, immutability, and the functional core, imperative shell separation. Shows a real useLazyImage hook that wraps an IntersectionObserver-based imperative implementation into a declarative component, and points to practical tools like React Router, React Query, Zod and Framer Motion as examples of declarative APIs that help teams stay in the “pit of success.”

AI-written summary · about

  1. 0:00Introduction by host
  2. 1:12Speaker introduction and gratitude
  3. 3:18Declarative vs imperative explained
  4. 7:37Imperative code example
  5. 8:40Declarative code example
  6. 10:08Why declarative patterns matter
  7. 11:14Managing UI state complexity
  8. 13:01Right level of abstraction
  9. 15:28Optimizing for change
  10. 18:19Cognitive load and human limits
  11. 20:49Declarative benefits in teams
  12. 23:20Functional core and UI
  13. 25:09Balancing imperative and declarative
  14. 26:58Image component abstraction
  15. 29:48Summary and closing
~/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.