Installation
Radiant is the core package. Signals ships with it as the reactive layer. JSX is the companion package for TSX rendering.
For the standard Radiant setup, install @ecopages/radiant and @ecopages/jsx. @ecopages/signals is installed automatically with @ecopages/radiant.
That is the simplest setup today:
@ecopages/radiantprovides the custom-element and controller runtime@ecopages/jsxbacksrender()and the TSX authoring flow@ecopages/signalsbacks host reactivity,@signal, and resource helpers
You do not need to import JSX or Signals APIs directly in every Radiant component. A component can use render() without importing @ecopages/jsx symbols itself, and @state does not require importing @ecopages/signals in application code.
@ecopages/radiant currently declares @ecopages/jsx as a peer dependency. It also depends on @ecopages/signals directly for host member state. @ecopages/jsx declares @ecopages/signals as a peer dependency for signal-backed derived bindings such as mapSubscribable(...).
Installing @ecopages/radiant brings @ecopages/signals transitively, which satisfies @ecopages/jsx's peer dependency. The packages still ship as separate npm artifacts; your app bundler must resolve them to a single module instance within the application graph. Inlining @ecopages/signals into more than one app vendor chunk (or installing conflicting versions) breaks shared reactivity — for example, @state updates may not reach createResource when each chunk owns its own signals runtime.
TypeScript Setup For JSX
{
"compilerOptions": {
"jsx": "react-jsx",
"jsxImportSource": "@ecopages/jsx"
}
}Or enable it per file:
/** @jsxImportSource @ecopages/jsx */Signals Standalone
If you only want the reactive core, install @ecopages/signals by itself:
Which Packages To Install
- Install
@ecopages/radiantand@ecopages/jsxfor the standard Radiant setup.@ecopages/signalscomes in with@ecopages/radiant. @ecopages/jsxis required for TSX authoring,render(), hydration helpers, and SSR rendering.@ecopages/signalsbacks@signal, host-owned async resources, and standalone reactive code. Install it explicitly only when you want the reactive layer outside Radiant, or when using@ecopages/jsxwithout radiant.