I've been low key working on a project to manage forms with business logic that can be safely worked on by multiple users concurrently, and it's getting to the point where it's a working prototype. The main ideas here are that the underlying platform manages all the cross cutting concerns like dealing with external services, providing database access, report generation etc., The platform also provides a set of common widgets for UI elements. Then each form that lives on top of it is basically like a small self contained app which has a data model, business logic, and views associated with it. The apps live in EDN files which can just be versioned in a db. The documents get pinned to a particular version of the EDN, so you can safely do updates on each app. https://github.com/yogthos/stepvine it's basically the same concept I've discussed in this talk, but I decided to skip ClojureScript this time around and just do everything server side with datastar providing a minimal frontend. https://www.youtube.com/watch?v=IekPZpfbdaI The project is still in early stages, and has bugs to shake out, but it is starting to get to a point where the core idea works. If anybody is interested to collab on it or discuss feel free to ping me.
I was also thinking this could have potential for agentic tool integration, since the state of any form is running server-side, you can trivially hook in a client through an API along side the UI, and then the user can see what the agent is doing in real-time and work with it, for example if you have transcription that you want to fill in a form, the agent could do speech to text, and then fill out the fields, and the user can review
This sounds great, congrats on the release! I will definitely be trying it.
thanks, it's been an idea I've had for a while and just never had the energy to put it all together until now
still very raw, but at least you can see the concept mostly working
Datastar FTW
it's pretty awesome :)
Initial release for a couple more "biff 2" libraries: • https://github.com/jacobobryant/biff/tree/v2.x/libs/fx: lightweight effects system. Turn your functions into pure state machines. See https://biffweb.com/p/fx/ for more background. • https://github.com/jacobobryant/biff/tree/v2.x/libs/config: a small wrapper/adapter for Juxt's https://github.com/juxt/aero library.
📺 https://github.com/kpassapk/atomstream - stream TUIs to the Web. • Updated charm.clj to 0.2.71 • Added doc/examples/launcher. This uses sci to load each of the examples on both TUI and Web. (In other words, it lets you "channel surf" through the examples.) Apart from trying out the library more easily, this is also useful for sharing a single stable link with friends or coworkers, and then adding or removing TUIs later on.