Introducing reactive.coffee: reactive programming and declarative UIs in CoffeeScript

(Update: see also the Hacker News thread)

(Cross-posted from the Infer Engineering Blog)

At Infer, our engineering team faces no shortage of technical challenges, but it’s not all just about data lifting and machine learning. Everything always comes back to the user, whether it’s helping companies better understand their customers through our dashboards, or providing the visual tooling necessary for our own team to build models more productively. We build these out as web-based user interfaces of varying complexity.

Today we’re announcing the release of a new tool that will hopefully make building these web app frontends a bit more expressive and fun. reactive.coffee is a small, lightweight CoffeeScript library that provides two sets of functionality:

  • a set of primitive data structures for reactive programming an HTML template
  • DSL with for building dynamic, reactive web UIs

Why another client-side framework? Surely with Angular, Ember, Knockout, and a long tail of other libraries, there must be something else that we could have run with!

In fact, we come from having used these other frameworks on various projects in the past. While we have deep respect for these trailblazers, we wanted to capture some of the lessons we learned from our own experiences. Our key goals with reactive.coffee are:

  • simplicity: minimize magic and have foundations in a small set of primitives/concepts
  • scalability: in terms of both performance and application architecture

Continue reading