A proof of concept to replicate Replicant-Kanban in a Datastar kind of way (the backend streams the html to client for realtime updates).
Start with babashka
bb -x replicant-kanban/server
-
Reagami: for morphing changes into the dom
-
Nexus: Dispatch system, both in front and backend
-
Scittle: to run frontend effects and actions and acts as a bridge to the backend (e.g. EDN serialization).
-
Replicant: because we try to render code from Replicant-Kanban which uses aliases, but otherwise not needed for the backend. Of course, the whole experiment is inspired by Replicant :-).
-
Httpkit: because I wanted to make it work in Babashka. In other experiments with this setup on the JVM I preferred Aleph + Manifold for SSE setups.
-
Babashka as 'quick way' to get everything working (and tested).
To understand how it all works, first get familiar with the replicant-Kanban repo. Most of the code is coming from this repo and is loaded as a dependency. In frontend/kanban/actions you can see what the frontend can do, the rest is delegated to the backend (kanban.actions from replicant-kanban)
- The drop effect of a card has some latency compared to
replicant-kanban. You might notice as small flickering here (card moving shortly back to the original position until the server sends an updated view).