Our great sponsors
- Appwrite - The open-source backend cloud platform
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- Onboard AI - Learn any GitHub repo in 59 seconds
-
The TODO app points to https://github.com/nuejs/www/blob/master/todomvc/todo-compac...
but the link is broken, it's actually: https://github.com/nuejs/www/blob/master/todomvc/todomvc-com...
-
Hey! You can clone and play with this: https://github.com/nuejs/create-nue — it showcases Nue JS, which is currently the only thing completed from the Nue Ecosystem. The only real Nue project atm is the nuejs.org website.
-
Appwrite
Appwrite - The open-source backend cloud platform. Add Auth, Databases, Functions, and Storage to your product and build any application at any scale while using your preferred coding languages and tools.
-
headlessui
Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.
Thanks for sharing! I love projects that reimagine entire ecosystems: there's a lot of value in imagining what could be if we didn't worry about what is.
Some feedback: your comparison of the various ListBox implementations[0] feels disingenuous. I know Vue best, so I looked at that implementation in detail, and it's got a lot going on that you don't attempt to replicate in your version. A few key features that are missing:
* Search—in the HeadlessUI version there are several hundred lines dedicated to making typing work for jumping to specific list items.
* Multiselect—HeadlessUI supports multiple selections, yours does not appear to. Again, this occupies a lot of lines.
* Focus management—HeadlessUI has a lot of code dedicated to smoothing out the focus management. In my testing, your implementation has pretty buggy support for using tab to navigate.
* The HeadlessUI version dedicates a lot of lines to types, where your Nue implementation is dynamically typed. This may be a feature for you, but in my mind those type declarations are doing important work.
* In general, the HeadlessUI implementation tries to be flexible for many use cases [2], while yours only needs to support the one demo list.
You also include this render.ts file [1] from HeadlessUI, which is more part of a bespoke sub-framework used by HeadlessUI than it is a necessary part of any old Vue ListBox implementation. If you're going to count that against Vue, then there are parts of Nue JS that should be included as well.
These kinds of comparisons are most persuasive if you can write all the implementations from the ground up, using idiomatic patterns for each framework and identical feature sets for each implementation. When you do that, it's easy to compare and contrast the frameworks. As it is, it's like comparing a house to a garden shed: yes, you've used fewer lines of code, but it's not obvious to me that that's a feature of Nue and not just a byproduct of a less ambitious component.
[0] https://nuejs.org/compare/component.html
[1] https://github.com/tailwindlabs/headlessui/blob/%40headlessu...
[2] https://headlessui.com/vue/listbox#component-apihttps://head...
-
I hear you! I went all-in to jQuery- scene. Even wrote a semi-famous library called "jQuery Tools" (oldies know). Then came React and I wrote Riot to simplify the syntax. Then I sidetracked to a startup world for (too) many years and watched aside how the frontend ecosystem grew to it's current dimensions.
Node uses a single dependency, htmlparser2 [1], in the package.json [2]. The HTML parser is used to traverse the HTML that is written on the Nue files. I quickly _thought_ of writing my own parser, but right now I'm having my eyes staring at Bun's native HTML parsing capabilities. Instead of Node, I'm using Bun to develop everything. I need less dependencies with it, because things like JS minification or .env file parsing are biult in.
-
-
-
A truly reactive Preact [1] is merely 3 kb of JS.
OTOH the need for really simple bits of interactivity does occur in real life. If the htmx [2] approach does not cu it, a micro-library like this could.
[2]: https://htmx.org/
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
A truly reactive Preact [1] is merely 3 kb of JS.
OTOH the need for really simple bits of interactivity does occur in real life. If the htmx [2] approach does not cu it, a micro-library like this could.
[2]: https://htmx.org/
-
shoelace-css
A collection of professionally designed, every day UI components built on Web standards. Works with all frameworks as well as regular HTML/CSS/JS. 🥾
After trying out and reviewing the code of https://shoelace.style/ I began asking the question: Do we still need libraries like Vue? Haven't native web components reached the point where we can let go of the component "polyfills" we've been using?
This crossover is bound to happen, like it happened with jQuery. The question is when.
-
Have you looked at https://mobx-keystone.js.org/ by any chance?
I've been quite enjoying keystone + lit (or react if required) of late and at the very least it feels like solid prior art towards MVC stuff.
Also https://mojojs.org/ for server side.
(I'm not saying "use these" even if I quite enjoy using them myself, but they're my reference points for comparison here)
-
stencil
A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, and traditional web developers from a single, framework-agnostic codebase.
Related posts
- I created pseudo 3D engine inside browser console, raycasting algorithm with some lighting system. Works fine to on Chrome :)
- How We Test Semi Design React Component
- Is this just normal for developing apps using javascript?
- I implemented raycasting algorithm in React that renders scene using only HTML divs, no canvas, with sprites, textures and simple lightings. Also renders as text inside textarea or Chrome console
- Microsoft Frontend Bootcamp • Learn HTML, CSS, JavaScript, React and Redux using Microsoft's Fluent UI Components!