how are you all building your CF UI's ? If you're ...
# cfml-general
g
how are you all building your CF UI's ? If you're doing stuff with "popular" javascript frameworks, are you using node at runtime, or just at build time ? If you're not using popular javascript frameworks, are you doing server side rendering and them some form of javascript delegates or hydration ?
d
I use angular and react apps just a build time, but only because these are micro apps within an monolith coldfusion app.
s
When the discussion of Node.js came up, our ops folks were like "NO! Absolutely no Node.js on the production servers!" 🙂
d
I called them micro apps only in respect to the monolith app, but they are micro at all.
s
So our front end team use it only for dev/test/build stuff (and our main UI is a React.js app with a REST-ish API behind it).
We still have one small partner-facing CFML app that is traditional
.cfm
pages and almost no JS at all (just to draw some charts). Our internal-facing app was the same (until we rewrote it in Clojure).
d
in short, these are js apps served with on a single cfm page (session management only) with a coldbox rest cfml api.
@seancorfield why wouldn't they do Nodejs on the production backend?
g
we're using a model similar to that of how bootstrap works with its javascript library, we render mostly HTML with ColdFusion then javascript components / events are bound to components using various data- attributes, it really doesn't matter what the components are written in, just that they follow a basic API
its works like most other frameworks in that its a tree, but we get 96-98 scores on lighthouse with no server side node
s
@Gareth Have you looked at HTMX for that sort of thing?
g
@seancorfield we have our own framework and it generally caters for 99% of our needs, was just reaching out to see if we're not the only ones doing it this way
htmx looks kinda cool, but still seems a bit over complex
p
@seancorfield you beat me to it. We do mostly server rendered HTML with Bootstrap but moving more and more to htmx as we touch each page. It is so easy to add stuff like infinite scroll to a page and get rid of the pagination buttons with HTMX it’s ridiculous.