Comment by aurareturn
4 months ago
I'm unconvinced.
Basic page renders were taking 200-400ms.
I've never seen this. Next.js is very fast for basic pages.
If a Google crawler or our Ahrefs SEO monitoring tool hit multiple pages at once, the site would start crashing multiple times per week.
This just seems like code issue and not Next.js. Plenty of sites use Next.js and have billions of views/year.
Large pages, especially ones with dynamic content, could spike well beyond 700ms.
This might have something to do with the database/server being far away and nothing to do with Next.js.
We built our own server-side rendering system using plain React and Express.
Could explain the above inefficiency. Usually when you build your own server, it sits as close to your DB as possible.
We already knew how to build SSR—it’s not hard.
It's actually really hard to do SSR with React at scale and good client side. One thing Next.js (and other modern frameworks) do very well is that the initial load is SSR, but subsequent loads are client-side.
Truthfully, they should have picked an SSG generator. It's better than using SSR, and certainly better than using a custom SSR solution. It's a marketing site with little to no database content.
I used Next.js with mui.com at one point, and after each change in dev mode it took 10s to recompile. I don’t touch anything that has to do with Vercel ever since then.
Next.js doesn't play well with barrel packages (large packages that export everything into the main entrypoint file). It's a known issue (but rarely mentioned when you read about working with Next.js):
https://github.com/vercel/next.js/issues/48748
I've never used MUI, but assuming that MUI is a barrel package, and you do the following:
Next.js ends up compiling the entire package instead of just that component you need. If MUI has their components exported into separate files, an optimization would be:
I switched to Astro plus tailwind and never looked back. If you are interested though, imports are a pretty big thing in mui https://mui.com/material-ui/guides/minimizing-bundle-size/.
2 replies →
That sounds like a MUI problem, not a next problem. What a clunky UI framework. Next plus tailwind remains lightning fast for me.