Drab: remote controlled frontend framework for Phoenix

After a long discussion with myself, my answers to the questions are:

1. Yes

They will be cacheable, shrinkable and easier to maintain.

"dependencies": {
  "drab": "file:deps/drab",
  "drab_query": "file:deps/drab" // TBD

2. Yes

Very short max_age. Drab client will grab it, and delete it from document.cookies immediately.

3. Yes

Standard Drab installation will just add plug to generate a token cookie, and Drab will start on load. We just need to solve the case, when you want to add something, like authentication token, to the connect callback. Proposition:

plug(Drab.Client, connect: false)

and

if (window.Drab) Drab.connect({auth_token: window.my_token});

Drab will not try to start if the commander is not present.

4. No

%Phoenix.Socket{} is enough. I will just do some housekeeping, moving all drab’s underscore assign to the one struct, and keep all under __drab assign.

5. No

We can’t. Session cookie is http only.

6. Yes

But I still have no idea how :slight_smile:

1 Like