text: @HighOnDrive I was thinking something along the lines of:
  A good Front-End Architecture should allow you to pin your modularized functions to the UI components in the most decoupled way possible. That way the technology backing the components can be swapped out and all your business logic are not in a hostage situation (at the mercy of the next great late framework).
  would that be representative of what you were saying?
  Uhm... I don't find it very intuitive to be honest.
  Your idea might be brilliant, but I really can't understand it properly. You talk about pure functions (that return nothing and can perform almost any action), then the equations that describe your model have this term
  M.present( A(data) ), which I can't understand since the action functions return nothing. I also find kind of confusing that the SAM acronym stands for State-Action-Model, but when I take a look at your examples, I can see there is a fourth element called view (and so far I cant get my head around about the idea that state and model are different things, but maybe because something has not clicked yet in my brain)
  I don't know, I am no specialist in this domain and maybe I'm trying to bite more than I can chew, but I think you have to make your material more didactic. Just my respectful opinion.
  function action(data,present) { var data_ = purefunctionAction(data) ; present(data_) ; }
  function present(initialState) { var model =initialState ; return ( function (data) { ... implementation of the present method ... } ) ; }
  I think you have to make your material more didactic.
  yes, but that only happens over time, as people ask question and I understand where the disconnects happen
  .
  @jdubray my another attempt using SAM to build webapp :relieved:
  In this, I tried to split the webapp into folders and components.
  May you take a look?
  model.fetchingData = function() { callRestAPI({}) .then(function(response) { - update model's data - call State.render }) } model.updateContact = function() { callRestAPI({}) .then(function(response) { - update model's data - call State.render }) } // same for create and delete