Architecture
This page is for contributors and maintainers. It explains the source layout and the boundaries that keep Datastar Kit small.
Design constraints
- Public APIs stay close to Web Standard primitives:
Request,Response,Headers,URL, andReadableStream. - Datastar remains the browser runtime and patch protocol. The SDK serializes typed values for native Datastar attributes and generates actions, SSE events, and direct responses.
- Server-rendered HTML is the primary UI payload. TSX compiles to Datastar Kit's small HTML node model.
- SSE patches are the default Datastar response style. Direct responses exist for integrations that need them.
- Signals are browser-side input and feedback, not the durable state model for an application.
- Framework concerns stay outside the package.
Source layers
Datastar protocol
src/sse.tsencodes low-level Datastar SSE events and comments.src/event.tsrenders HTML nodes into Datastar SSE chunks for streams.src/reply.tsturns rendered HTML and SSE chunks into nativeResponseobjects.src/navigation.tsbuilds safe navigation scripts used by navigation helpers.
HTML and JSX
src/html.tsdefines the internal HTML node model plusrenderToStringandunsafeHtml.src/jsx-runtime.tsandsrc/jsx-dev-runtime.tsprovide automatic JSX runtime entrypoints.src/jsx.tsadapts JSX calls into the HTML node model.
Datastar authoring
src/ds/index.tsis the internal barrel re-exported by the root package.src/ds/actions.tsbuilds Datastar action expressions.src/ds/expression.tsserializes Datastar expressions.src/ds/signals.tsdefines signal refs and name validation.src/ds/state.tsbuilds typed helpers around grouped signal defaults.
Request boundary
src/read.tsdecodes Datastar signal payloads from nativeRequestvalues.- Generic query params, form posts, multipart uploads, JSON APIs, auth, and request context remain platform or framework concerns.
Public boundary
Root exports:
- Datastar authoring helpers such as
get,post,js,mod,signal, andstate eventreadreplyrenderToString,unsafeHtml
Explicit subpaths:
datastar-kit/ssedatastar-kit/jsx-runtimedatastar-kit/jsx-dev-runtime
Related: API reference, Runtime boundaries.