biff

A web framework + self-hosted deployment solution for Clojure. Repo: https://github.com/jacobobryant/biff. Docs: https://biff.findka.com
rainbow_bamboo 2020-08-31T22:44:29.001100Z

*Intention To use biff in combination with domino-clj to create a more reactive system for web development. This should be similar to the logic behind using re-frame with biff. *Theory - Biff makes it easy to have your front-end subscribe to data via websockets w/sente. - On the client, I can define the data that I want to subscribe to, and then I'll have access to an atom that will automatically change when new data is added. - I can then (from the client/cljs) submit transactions as sente events (:biff/tx ?) that will update the crux db. - These transactions don't need to be defined like a REST-ful route, if the transaction submitted is in keeping with a set of rules(written with clojure.spec?) then the transaction will be submitted to the crux db on the server and then propagated via the sente websocket subscription to the front end. - I can have domino initialize with the atom as the ctx - I can use domino to create a state atom for rum/cursor-in and build up a UI based on the result of the data flow engine. *Questions What are the steps that I need to do to add a new table of 'facts' (or any other datatype)? When I'm thinking about building the data model for my app, should I be thinking about biff as starting point to using crux, or as an open-source firebase? I'm guessing that it's the latter, but calling it "tables" instead of "collections" threw me off for a second. :biff/tx vs :crux.db/tx? When should I use crux directly? Do I need to edit handler.clj with a custom handler new type, or is there a standardized way of doing it with biff?

rainbow_bamboo 2020-08-31T22:45:46.002400Z

( Hi, just sharing my notes in case anyone can point out any misconceptions that I have or answer any questions )