One recurring theme lately is that a number of people have found themselves quite attached to flux‘s core idea of unidirectional data flow, while at the same time Facebook’s implementation of it hasn’t really won people’s hearts (and neither have many of the other same-thing-but-not-the-same-thing implementations).
I too have found myself in this position. I’ve been craving something which like flux is easy-to-reason about, but like rails is elegant and has enough well-defined conventions to prevent me from spending a stupid amount of time stuck in decision paralysis.
Maxim is a tool to provide structure to your browser-based applications. It does this through a set of code and conventions which help you fashion apps with unidirectional data flow, and without decision paralysis. It is unashamedly opinionated.
Maxim is small – five files, currently totalling 143 lines. It can be this small as it leaves the heavy lifting to RxJS, as opposed to Flux, which is small because it leaves the heavy lifting to you.
Maxim apps start as clones of the Maxim starter kit – which is react-black-triangle (mentioned above). Why not
maxim-starter-kit? Well, Maxim was extracted from
react-black-triangle after the fact. I hope to have a more suitable starter kit up soon, but this still gets you up and running with an ES6 build system, a directory structure, a router, and a cool spinning black triangle – enough to let you get productive straight away, or enough for you to chew on for further study. Choose your own adventure!
It is still early days, so I’d hugely appreciate any feedback! What else would you like to see in the README? What kind of examples would you like to see? How can Maxim be made simpler? Looking forward to reading your comments!