Harmless
GitHub | NPM | API Doc
:warning: This project is currently under construction and missing crucial functionality |
A minimalistic reactive web frontend framework written in TypeScript.
Features
- Fine-grained reactive DOM updates via promises, observables and signals using a framework-independent signal implementation.
- Based on standard JSX using the automatic runtime (aka
react-jsx
mode), so no special transpiler plugin needed.
- Supports dependency injection via a framework-independent cdi implementation.
- Provides built-in components for flow control, like If, Choose and Route.
- It's just a library without any build system requirements. Use whatever you like.
- Easily testable with any JSX-capable testing framework (like Vitest).
Some features are intentionally missing to keep Harmless small and focused:
- No server rendering. Harmless is a client-only library.
- No web component support. Should be easy enough to use Harmless inside a web component, though.
- No CLI tools. Harmless is just a library and doesn't dictate how to structure your project or how to work with it.
- No CommonJS support. It's time to leave the stone age behind and use ESM everywhere.
TODO
- Write built-in components like
For
to iterate over collections of data.
- Write documentation
More
Check out the documentation.