User interfaces are undoubtedly becoming more complex every day. The main reason for this is the emphasis put on front-end developers to provide a better user experience.

Secondly, we are focusing much more on building complex realtime applications, rather than simple static webpages. It is no secret that this growing complexity is answered with a rapid rise of new JavaScript frameworks almost every day.

Reactive programming is the new cool kid in JavaScript town. The simple premise of reacting to changing environment is met with beauty of functional programming. Despite its popularity there aren’t many examples on how to apply it in everyday work.

Cycle.js is a new framework which tries to answer those difficulties. It leverages the power of reactive streams to easily model an asynchronous UI. It also tries to separate side effects (eg. DOM operations) from business logic. This results in a clean and scalable architecture using pure functions and explicit data flow.

You can learn more about Cycle.js from this introductory video presented below: