CFML-first
Use <cf_Island> and <cf_Slot> like any other custom tags. Pass CFML structs as props and CFML markup as slots.
X*rKK|b9<{OU}pd9=Eoc@iY`m=r;r?7`QFgAEeaB_c({>uEK
zspNdFc_%w)c=h-HtobJ=9G#bWdH&NC@kR9^tgH-L&c?BO*G2GT@H}|>D&Z~rh3@7{
zlX`xYPWk Mount Vue or React components into CFML pages with server-side rendering and progressive hydration. Coldspa brings the islands architecture popularized by Astro to ColdFusion, so you can keep rendering pages with CFML while sprinkling in interactive widgets that hydrate on demand. Mount Vue or React components into CFML pages with server-side rendering and progressive hydration. Coldspa brings the islands architecture popularized by Astro to ColdFusion, so you can keep rendering pages with CFML while sprinkling in interactive widgets that hydrate on demand. CFML-first Use Real SSR A Node sidecar pre-renders Vue and React to HTML so the page is meaningful before JS loads — no flash of empty containers. Progressive hydration Choose Vite-powered HMR in dev, hashed bundles + manifest in prod. One Vite plugin ( Vue & React Both frameworks supported out of the box, and you can mix them on the same page. Slots, the CFML way Default and named slots come from CFML markup — including
Coldspa
Coldspa
Why Coldspa?
Section titled “Why Coldspa?”<cf_Island> and <cf_Slot> like any other custom tags. Pass CFML structs as props and CFML markup as slots.load, idle, visible, or client per island. Below-the-fold widgets stay dormant until the user scrolls.coldspa/vite) wires up component globs, client entries, and the SSR build.<cfoutput> queries, <cfinclude>, and conditionals.