Omni is a Clojure(Script) single-page app web framework, used by Bloom for most of its web apps.
It create an SPA-style web app, with a Transit-JSON backend, and Reagent-based front-end (and Garden and Tailwind for styling).
It's not meant for "public consumption" - we open-sourced it because there are several web apps that Bloom has open-sourced that make use of Omni and it's awkward for an open-sourced project to have a critical component be an opaque blob.
☙
Before Omni (early 2018), every time we would start a new web app, we would copy-paste or manually recreate the same foundational code. I wanted to put that code in the same place.
After some time, we split out the "library-like" parts into Bloom Commons and kept Omni as "the framework".
When working on VNTRHB, we decided to architect things a little bit differently, which became its own framework: Radium.
On 2026-01-30, we finally made the Omni code public (even though it has been on Clojars since the beginning).
☙
I have a very long list of things I want to change in Omni, off the top of my head: