Cycle.js is a reactive JavaScript framework based on functional reactive programming principles. It uses unidirectional data flow and pure functions to implement the model-view-intent pattern. In Cycle.js, everything is modeled as streams, including user events from drivers and values from components. This allows for reactive programming where user intentions trigger model updates as stream events.