Index

ascent is effect-native reactive UI for Scala 3. It renders straight to the DOM: no virtual DOM, no diffing. The UI is a pure tree built once; the engine surgically patches the exact node, attribute, or child-list behind each reactive boundary. The substrate is ZIO.

Docs pages are Specular DocSpecs: the same source asserts under zio-test and SSR-renders here.

Install (core + browser)

libraryDependencies ++= Seq(
  "rocks.earlyeffect" %%% "ascent-core" % "0.2.0",
  "rocks.earlyeffect" %%% "ascent-js"   % "0.2.0", // Scala.js mount engine
  "rocks.earlyeffect" %%% "ascent-css"  % "0.2.0", // optional typed CSS
)

Optional modules

libraryDependencies ++= Seq(
  "rocks.earlyeffect" %%% "ascent-conduit"      % "0.2.0", // Ctx[M] state bridge
  "rocks.earlyeffect" %%  "ascent-html"         % "0.2.0", // SSR
  "rocks.earlyeffect" %%  "ascent-datastar-http" % "0.2.0", // server datastar
  "rocks.earlyeffect" %%% "ascent-datastar-js"  % "0.2.0", // browser datastar
)

Documentation

Continue with: