Hi Everyone! My main motivation for making this was that I wanted something as powerful as Svelte or React but I wanted no build steps, no JSON API, and I wanted something as close to vanilla js as much as possible. I'm mainly a backend developer, and I wanted to simply return html with some interactive islands when I need to (whose components get 'hydrated' with by backend language's templates).
Some key ideas:
• It's centered around light dom web components
• Uses a "reactive element", which uses observables for fine-grained reactivity
• Rendering is done through lit-html's tagged templates
• A pub/sub store
• Easy immutability using immer (it powers the observable updates & also the reducers)
It's my first 'serious' library that I'm using in some work prototypes, and it's also my first 'real' open source project, so comments & feedback would be great!
Some feedback from first glance is “type inference” could be better, which would help prevent a lot of foot-guns. Consider the example code here:
Does this allow “count” to be inferred as a “number” type in the rest of the code? There might be a way to allow JS to easily infer the types, without requiring a build step…