Hey HN! I built Lume.js after getting frustrated with framework overhead on simple projects.
The problem: 80% of websites don't need a full framework. Vanilla JS works great except for one thing: reactivity. You end up with spaghetti code manually tracking which DOM elements to update.
What Lume does: Adds reactivity to vanilla JS using only web standards. data-bind attributes (valid HTML5) + ES6 Proxies. No JSX, no v-model, no x-data. No build step unless you want one.
Philosophy: Inspired by Go - do one thing well. Lume makes HTML reactive. Everything else (routing, validation, etc.) is optional addons or separate libraries.
I rewrote the core three times over two months to get automatic dependency tracking without memory leaks. Ended up with 114 tests and full coverage.
The repeat addon for list rendering is experimental (API might change), but everything else is stable.
Would love feedback, especially on:
API decisions (explicit state() wrapping vs automatic)
Tradeoffs (bundle size vs features)
Use cases I'm missing
Links:
The idea is really cool. I thought the simplicity of the framework would mean there were lots of examples. Well, there are lots. But not one of them is working.
Uncaught TypeError: The specifier “lume-js” was a bare specifier, but was not remapped to anything. Relative module specifiers must start with “./”, “../” or “/”.
sathvikchinnu•1mo ago
The problem: 80% of websites don't need a full framework. Vanilla JS works great except for one thing: reactivity. You end up with spaghetti code manually tracking which DOM elements to update.
What Lume does: Adds reactivity to vanilla JS using only web standards. data-bind attributes (valid HTML5) + ES6 Proxies. No JSX, no v-model, no x-data. No build step unless you want one.
Size: 1.5KB gzipped (vs 42KB React+ReactDOM, 18KB Vue, 15KB Alpine).
Philosophy: Inspired by Go - do one thing well. Lume makes HTML reactive. Everything else (routing, validation, etc.) is optional addons or separate libraries.
I rewrote the core three times over two months to get automatic dependency tracking without memory leaks. Ended up with 114 tests and full coverage.
The repeat addon for list rendering is experimental (API might change), but everything else is stable.
Would love feedback, especially on:
API decisions (explicit state() wrapping vs automatic) Tradeoffs (bundle size vs features) Use cases I'm missing Links:
Website: https://sathvikc.github.io/lume-js/ GitHub: https://github.com/sathvikc/lume-js Design decisions: https://sathvikc.github.io/lume-js/#docs/design/design-decis...