A ClojureScript framework for building user interfaces, leveraging React
Derived Values, Flowing
This, milord, is my family's axe. We have owned it for almost nine hundred years, see. Of course, sometimes it needed a new blade. And sometimes it has required a new handle, new designs on the metalwork, a little refreshing of the ornamentation ... but is this not the nine hundred-year-old axe of my family? And because it has changed gently over time, it is still a pretty good axe, y'know. Pretty good.
-- Terry Pratchett, The Fifth Elephant reflecting on identity, flow and derived values (aka The Ship of Theseus)
re-frame is a ClojureScript framework for building user interfaces.It is has a data-oriented, functional design.
re-frame has been designed from the ground up to make developers veryproductive when building large Single-Page applications. That's its promise to you.For many, it has delivered on this goal, and it has been enthusiastically praised.
re-frame provides another unfair advantage - ClojureScript is a Lisp. Alan Kayonce described Lisp as "Maxwell's equations of software". Paul Graham described how Lisp was a competitive advantage for his startup. When we use Lisp, we get to leverage 50 years of foliated excellence from the very best minds available.We also get to leverage a thriving ClojureScript community which delivers modern ideas and best-in-class tooling.
re-frame was created by a programmer who had been developing for two decadesbefore the Web was even "a thing". Yeah, that old. He's seen a UI or two along the way. Still has hair.
Although re-frame leverages React, it only needs React to be a V in MVC, and no more. re-frame does not buy into the sadly-pervasive idea that Views should be causal (colocated queries, ComponentDidMount, hooks, etc).In re-frame, events are causal and views are purely reactive.