Stop trying to sculpt David with a JS chainsaw and get yourself an HTML/CSS chisel.
Like, it *could* be an SPA, in the same sense that one *could* use a solid rocket booster to power one's car.
How do I know it's ridiculous to apply this much JS to the problem?
Because I helped build e-commerce sites with similar features (filtering, carts, etc.) that had to work on 4.0 browsers over 33.6 modems to WebTV boxes in 1999.
So you're starting from the now-usual React/Redux/GraphQL/SSR disaster, what can you do?
Turn off JS on the client and keep the SSR. There will be things to fix, ofc, but you needed to fix them anyway for a11y and resilience.
"but we want interactivity!", you say.
OK. Find the *small* part of your team that owns performance and who will be the only people licensed to approve JS (preferably as web components you can drop into SSR output)
Can you still make mistakes w/ that set of choices? Absolutely. But JS is special-occasion-food, and "full stack" is a lie, full stop.
You *must* put controls on your JS emissions.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Combined with now-rampant NIMBY-ism from the last generation to enjoy tax-funded higher ed, spiraling property costs mean the dream of owning a reasonable home and starting a family is a receding vision.
The "way up" is "supposed to be" tech -- one of the few industries often paying enough to get you a slice of California. And for the lucky few, it absolutely is.
My contention for something like a decade has been that if your tree is closed for half the year, you're "kept source", regardless of the license code eventually drops with:
It *is true* that working across layers is a key trait of highly effective engineers. Respecting those who do it on the client is good.
The idea that one must "graduate" to the back end carries the same stench as every overconfidently presented "full stack" failure I trace.
Front-end demands humility because it is *different* and, in key respects, *harder*.
There's an asymmetric hubris here: those of us who work the client don't tell back-enders that their work is trivial. Nor do we gate-keep the "full stack" crowd, no matter how poorly they do.
The cognitive dissonance of anti-web and anti-choice rules made & justified because device resource scarcity [1] against the marketing of ALL POWERFUL CPUs [2] is dizzying.
For a sense of scale, when the anti-choice, anti-web rules were laid down, Apple's fastest device was the iPhone 3G; a single-core, 32bit, in-order, ~400MHz chip attached to 128MiB of system memory.
Today, the slowest device you can buy directly from Apple is based on the A12...
The A12 is a 64 bit, 6-core, 2-and-change-GHz part with ~~8MiB of L2 cache~~ attached to 3GiB of RAM in the most resource-impoverished device Apple markets today: