Relaxjs (@relax.js/core) is a Web Component library that lets developers ship faster with less code. It fills the gaps vanilla Web Components leave open -- forms, routing, DI, templating, i18n -- without a virtual DOM, custom template compiler, or framework-specific lifecycle. The guiding principle: you always know when something ran, why it ran, and what triggered it. Target audience is beginner developers.
Beginner-to-intermediate web developers building SPAs or component-driven UIs. They want standard HTML, standard DOM, and async/await -- not framework abstractions. They consume the library via npm (@relax.js/core).
Single-package TypeScript library. Key areas:
src/: Library source, organized by feature (forms, routing, DI, i18n, templating, HTTP, WebSocket, SSE, pipes, components)tests/: Vitest test suite mirroringsrc/structuredist/: Build output (declarations via tsc + bundles via esbuild throughbuild.js) -- do not edit manuallydocs/: Markdown documentation per feature areacoverage/: Generated by test:coverage, not committed
Each feature area (forms, routing, DI, etc.) is designed to be usable independently.
TypeScript library targeting ES2020, bundled for ESNext module consumers. One runtime dependency (reflect-metadata, for decorator-based DI). Build pipeline: tsc for declarations, esbuild via build.js for bundles. Tests run under Vitest with jsdom. See package.json and tsconfig.json for specifics.
None. All features are self-contained.