Ian
Full stack developer with a passion for frontend.
he/him, Canadian
Posts
Full stack developer with a passion for frontend. he/him, Canadian
"would it not be better to do X?" followed by a "you're absolutely right" response from the LLM.
Full stack developer with a passion for frontend. he/him, Canadian
Full stack developer with a passion for frontend. he/him, Canadian
Full stack developer with a passion for frontend. he/him, Canadian
Full stack developer with a passion for frontend. he/him, Canadian
Full stack developer with a passion for frontend. he/him, Canadian
It's kind of like a conspiracy theory for sane people who are really hoping someone's in control.
Full stack developer with a passion for frontend. he/him, Canadian
Just look at all the accidental leaks that have happened in Next when those same devs have direct access to the database and secret keys with server actions and such.
That doesn't mean solutions like SSR aren't viable. You get much better time to first contentful paint, avoid loading spinners and don't have to heavily modify your frontend app to accommodate it.
Point being, yes, you can optimize at the server, but it comes with risks that pure frontends don't.
Full stack developer with a passion for frontend. he/him, Canadian
This isn't me speculating, I've encountered it several times. I had to pause a project because I discovered over 5000 SQL injection vulnerabilities in their API. The only reason they hadn't been utterly pwned is because their host had some rudimentary injection prevention middleware.
Had they used a framework, they wouldn't have been able to produce those vulnerabilities (at least not as easily as they did raw dawging it).
To summarize, servers are a luxury and should be treated as such. If your team is struggling to ride a bicycle, don't give them a motorcycle.
Full stack developer with a passion for frontend. he/him, Canadian
All I'm saying is, call out the actual culprits; in this case, React. Vue and Svelte are both are more efficient and better citizens in the space.
Full stack developer with a passion for frontend. he/him, Canadian
I'm not disputing that showing a loading spinner on a benefits site is ridiculous. If you need one before you can even interact then you've already failed.
Building performant frontends isn't a hard thing to do, just something you have to be aware of. In my experience, this mostly boils down to saying no to "grid" components and no to charts libraries, haha.
Full stack developer with a passion for frontend. he/him, Canadian
The blast radius of a mistake in server side is so much worse. You see it now as server components and mixed client/server state accidentally leak because a convention got messed up.
These teams will exist no matter what and their impact will be worse the closer to the metal you put them.
Full stack developer with a passion for frontend. he/him, Canadian
I believe it's important to be measuring this stuff, but I also treat performance as a feature, and features get cut all the time.
For example, the latest Pokemon games on Switch have terrible performance issues but it sold 5.8 million copies in its first week. The game was compelling enough that anyone who played it didn't care. The only ones loudly complaining were people who didn't really play them; the video game academics, so to speak.
My point is that teams are optimizing for their users and sometimes that means performance takes a hit.
Full stack developer with a passion for frontend. he/him, Canadian
The issue is many of them don't have deep web fundamentals. Not because of frameworks, but because the web is notoriously vast and constantly churning. I happen to like the churn but many find it exhausting and I don't blame them for that.
At the very least, Frameworks are well documented mostly static targets that let developers focus more on solving problems rather than fighting their browsers. Frameworks are solving a people problem more than a technical one.
Full stack developer with a passion for frontend. he/him, Canadian
I never said it was impossible to build those flows without a SPA, only that SPAs are intended to be applications, not sites. The examples I gave were just applications where a SPA could shine; not where it was somehow the only option.
Have sites been built as SPAs? yes. Is it the best use case for them? No. Just because a team chose the wrong tech to build something doesn't invalidate the tech.
I've built ordering systems back in the day as MPAs and their UX was never as nice as a stateful frontend app. And building a stateful frontend app is a lot nicer with Vue than vanilla JS. However, if I'm building a landing page, that's going to be Astro these days.
Full stack developer with a passion for frontend. he/him, Canadian
Though, I'd argue that a restaurant site with any kind of online ordering capability is an application, just like UberEats, DoorDash, etc.
And even if a site is a SPA when it really shouldn't be, SSR solves that by giving you fast time to first paint before hydrating. So you can glance at the hours of operation. Most sites built as SPAs need SSR anyways for per-page SEO metadata.
That's the true indicator; if your project needs SEO, it's a site and if it doesn't it's an app (since most apps are behind a login anyways).
Full stack developer with a passion for frontend. he/him, Canadian
SPAs being shoehorned into sites and landing pages by teams that didn't know better at the time is unfortunate, but mostly mitigated by SSR these days anyway.
Also, let's not kids ourselves; it isn't SPAs that are the problem, it's React specifically. It's the slowest at DOM manipulation, has one of the heaviest runtimes, and seems to almost be designed to cause re-render issues.
Full stack developer with a passion for frontend. he/him, Canadian
Full stack developer with a passion for frontend. he/him, Canadian
cowabunga, cowabunga, cowabunga, cowabunga.
I'm betting that they foil all Shredder's plans.
cowabunga, cowabunga, cowabunga, cowabunga.
Oh please defeat the Technodrome and Krang.