Fork me on GitHub
Dustin Getz02:09:41

@spacemods The meat of it is in hyper-control, which is data driven. The ctx param acts as a cursor into the datomic result. hyper-control uses Datomic schema to figure out what widget to draw. The widgets are "hypermedia controls" which means they are aware of the link abstraction, directly analogous to HTML's hypermedia controls like <img src...> and <input type="submit" action="/a/url">. I think you probably figured that much out already. The link is the interesting thing - links contain exactly the correct information to coordinate with the server. Critically, the links are in a database and the server understands the links too. So there is coordination happening out of band - the server sends down exactly the right stuff that the client is about to need. This rich client/server coordination is probably the main difference between the Hyperfiddle model vs HTML.

Dustin Getz03:09:28

So for example in HTML there are things like <link rel=stylesheet href=...> and Chrome knows what to do with rel=stylesheet and knows what http effects to make to get at the css. Hyperfiddle has :link/rel which does basically the same thing, except its focused more on CRUD things and not www things