Cycle.js – A functional and reactive JavaScript framework for predictable code
The code looks a bit messy to be honest, maybe it's just the variable naming.  `const input$ = sources.DOM.select('.field').events('input')` Why not name it the same as the DOM function `querySelector` ?  `const name$ = input$.map(ev => ev.target.value).startWith('')` Wouldn't in this case `name$` be a boolean, but then `map` is called on a boolean. I just find the syntax very confusing.