Reactive by default
Fine-grained reactivity withsignal(),computed(), and effect(). No virtual DOM.
Dathra is a web framework built aroundWeb Components, Signals, and server-rendered Declarative Shadow DOM. It is designed for apps that want framework-level ergonomics without giving up the platform primitives that browsers already understand.
These docs are also a Dathra app: the shell is a custom element rendered on the server with @dathra/core/ssr, hydrated on the client with @dathra/core/hydration, and styled inside Shadow DOM.
Choose the rendering path first. CSR is the fastest way to try Dathra in a browser-only app. SSR adds server-rendered Declarative Shadow DOM, request state, and hydration.
Fine-grained reactivity withsignal(),computed(), and effect(). No virtual DOM.
Define custom elements with Shadow DOM, reactive props, and Declarative Shadow DOM output for SSR.
Server-side render with islands architecture, progressive hydration, and interaction replay.
Recoil/Jotai-inspired atom-based state management with store boundaries and AsyncLocalStorage support.
Custom JSX/TSX transformer (oxc-parser + esrap) with CSR and SSR code generation modes.
Vite, Webpack, Rollup, and esbuild plugins via unplugin.
Dathra is organized as a monorepo with eight packages:
defineComponent(), CSS helpers,
registry, SSR rendering for Web Componentsatom(),createAtomStore(),withStore()