Remix.run Logo
▲ appplication 6 hours ago

This is an earnest question but is that really true for reactivity and state management? Of course with vanilla is all things are technically possible, but I feel like last I checked this wasn’t something well supported without really knowing what you’re doing.

▲zelphirkalt 4 hours ago | parent | next [-]

I nowadays build sites (personal websites and projects) that are much more responsive than most things I see online or on a job, just using modern CSS, a little thinking about how I structure my stylesheets, trying to use semantic HTML and not making a div soup. It works pretty well, if used correctly and given the due attention.

▲lucumo 3 hours ago | parent | next [-]

Responsiveness has been fine for a while. Not surprising with the smartphone revolution being nearly 2 decades old by now.

GP asked about reactivity. And that still requires some frameworking, either prebuilt or a lightweight self-written one.

▲oblio 2 hours ago | parent [-]

What's reactivity in this context? How quickly a website responds? My personal experience is that fast backends with server side rendered HTML and a bit of dynamic sections are in practice MUCH faster than SPAs, 20 years after using Gmail for the first time. Gmail then was fast, 95% of modern SPAs are slow.

▲bleuarff an hour ago | parent [-]

Reactivity is updating the DOM whenever the underlying data is updated. That's one of the most basic reason for existence of all js frameworks. There's TC39 Signals proposal to bring that natively, but for now as said above the choice is either use a framework or recreate one. It's surprisingly easy nowadays using Proxy.

▲0xpgm an hour ago | parent [-]

How I've done it is to use some kind of observer pattern, where you register listeners to state changes.

Whenever state is updated, the listeners are all called with the updated state and can update the UI and what not based on the new state.

I haven't profiled this and compared it to frameworks, but feels adequate for the relatively simple UIs I've done.

▲yieldcrv an hour ago | parent | prev [-]

I also do stuff wayyy more efficiently than I do on a job

But it has no utility

Compute is fine and nearly free

These are just art projects

▲satvikpendem an hour ago | parent | prev | next [-]

No, it's not, despite what other comments here say. Of course it's possible but you end up recreating React or another library along the way. JS is getting native signals sometime in the future but for now pure JS is not sufficient for a full, complex app.

▲codingdave 21 minutes ago | parent | prev | next [-]

> without really knowing what you’re doing.

That is an odd caveat to throw on the end. Sure, to avoid frameworks you have to know what you are doing. Is that really such an outrageous expectation?

▲bossyTeacher a minute ago | parent [-]

If people knew what they were doing jQuery, Angular and React would not have existed in the first place. With devs moving companies every two years or so, being able to hit the ground running was very important and you couldn't afford to spend weeks or months learning the idiosyncrasies of your new codebase especially when it came to state management. That's the main problem frameworks and libraries were solving.

▲azangru 3 hours ago | parent | prev | next [-]

> without really knowing what you’re doing

Really knowing what you're doing is the implicit part of the right-hand side of the bell-curve meme :-)

▲mb2100 an hour ago | parent | prev | next [-]

There are JS libs (like Reactive Mastro [1]) that go well with writing otherwise vanilla HTML/CSS/JS, and there are libs (like React) where you're quickly sinking into a mud of abstractions and have to fight the reactivity runtime when you try to write vanilla JS.

[1]: https://mastrojs.github.io/reactive/

▲coldtea 3 hours ago | parent | prev | next [-]

>This is an earnest question but is that really true for reactivity and state management?

Yes. We could do those before React and other crap too.

▲80fj0348i 5 hours ago | parent | prev | next [-]

1. The tools available in vanilla have improved a lot recently and 2. LLMs have made niche skills/knowledge more accessible. SPAs still have their place but the average CRUD app is now really well served by vanilla or lightweight libraries like HTMX.

▲nkmnz 4 hours ago | parent | next [-]

On the other hand, the average CRUD app doesn’t care about the traffic and rendering overhead of a reactivity library such as Vue. Looking at the boilerplate code needed for basic reactivity that your sibling comment linked to in the Mozilla docs… no, thanks. Just eat the 16kb and have some decent ergonomics.

▲soperj 4 hours ago | parent | prev [-]

CSS was always pretty accessible. You just had to actually care to learn it.

▲zelphirkalt 4 hours ago | parent | next [-]

True, though it is also true that achieving good responsiveness was not as easy in the past, say 10 or more years ago, without flex box and grid and without calc and clamp and such.

I nowadays use flex, calc, clamp, min, max, scoped variables, and even display table sometimes these days and it just works so well. Eliminates almost all hacks.

▲jimbob45 2 hours ago | parent | prev [-]

If the rest of you weren’t so stupid, our industry wouldn’t have a problem

This attitude is why we’re all still stuck writing C++ in 2026. Nobody wants to admit that they’re not hardcore enough to write in poorly designed languages so we never make the effort to improve the situation. We all seem to agree that Zig is an upgrade over C. There’s nothing inherently modern about Zig that we couldn’t have written back in 1995 - we just didn’t because nobody wanted to admit that C is frustrating and clunky, albeit fast.

▲KPGv2 36 minutes ago | parent [-]

Yeah, people like to talk about how cultish Rust programmers are, but C programmers are so much worse. Just a couple days ago I had one trying to explain to me that all other languages are worse because you don't understand what the machine is doing under the hood. Completely ignoring it doesn't matter because I have a computer from 2023, not 1986.

▲onion2k 5 hours ago | parent | prev [-]

Yep. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...