panel
uibuilder
panel | uibuilder | |
---|---|---|
1 | 6 | |
272 | 128 | |
0.4% | - | |
5.7 | 0.0 | |
3 months ago | about 4 years ago | |
JavaScript | TypeScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
panel
-
Web Components Will Outlive Your JavaScript Framework
Webcomponents will outlive React 13, mostly likely. Will they outlive React entirely or its cousins like Solid and Svelte? Perhaps not.
Webcomponents and React look like they solve the same problem but they do not.
Webcomponent api is pretty shallow. You get connected/disconnnected/attributeChanged call back but gotta write your own property setter and getters, and that’s mostly it. Shadow dom becomes a pain to work with if something needs to pierce it. Can’t pass nested objects in attributes, gotta encode as string.
Mixpanel went all in on webcomponents, but had to build a whole bunch of lib tooling around it. They made their own framework on top of webcomponents. https://github.com/mixpanel/panel
Worked on panel lib and webcomponent UI for many years. It is not a silver bullet.
The issue with webcomponents is there are a ton of libraries that fill in the missing gaps. There’s not a lot you can do with pure vanilla webcomponent api since browsers don’t provide efficient dom updating mechanism. Google has their own thing, Microsoft had multiple internal libs across orgs, Reddit does their own thing.
The most standard thing for frontend with wide adoption right now is React.
So the way I see it, is that React has already outlived webcomponents.
uibuilder
- Web Components Will Outlive Your JavaScript Framework
- If Web Components are so great, why am I not using them?
- Ask HN: Good resource on writing web app with plain JavaScript/HTML/CSS
-
AlpineJS – Lightweight JavaScript Framework
This looks bad. I see custom syntax, and JavaScript embedded into HTML in a way that cannot be syntax-checked at build time.
If you want a lightweight framework check out UIBuilder instead: https://github.com/wisercoder/uibuilder
Same JSX syntax as React, but this lib is very simple -- just over 200 lines of source code.
-
Virtual DOM is pure overhead
If you don't need Virtual DOM then Web Components are a great idea for building reusable components that work with all frameworks, including React. You can even use JSX to build Web Components: https://github.com/wisercoder/uibuilder
What are some alternatives?
lit-state - Simple shared component state management for LitElement.
svelte-query - Performant and powerful remote data synchronization for Svelte
lit - Lit is a simple library for building fast, lightweight web components.
react-svelte - Use Svelte components inside a React app
router - Small and powerful client-side router for Web Components. Framework-agnostic.
Alpine.js - A rugged, minimal framework for composing JavaScript behavior in your markup.
web-components-examples - A series of web components examples, related to the MDN web components documentation at https://developer.mozilla.org/en-US/docs/Web/Web_Components.
budibase - Budibase is an open-source low code platform that helps you build internal tools in minutes 🚀
joystick - A full-stack JavaScript framework for building stable, easy-to-maintain apps and websites.
fastdom - Eliminates layout thrashing by batching DOM measurement and mutation tasks
live_state - The hex package for the server side of live state
proposal-import-attributes - Proposal for syntax to import ES modules with assertions