Phlex-flavored design philosophy articulated by Joel Drapper during the talk: a component system should let you 'expand and contract' the complexity of a component's API. Illustrated with a table component implemented three ways: (1) a one-call `table(data)` that iterates rows and columns itself; (2) a set of granular atomic components (table, thead, tr, td, …) that wrap each HTML tag and are composed heavily — roughly how Ruby UI works; (3) a higher-level DSL `table(users) { column(:name) { |u| … } }` that iterates an enumerable and executes a proc per column. The advantage of (3) is being able to think of tables purely in terms of columns, with headers and bodies guaranteed to stay in sync.