Should dashboards default to SSR or stay client-side SPAs? #91475
-
|
Building a React dashboard with real-time data (Supabase, analytics, payments). Everyone keeps saying "use Next.js for SSR" but I'm seeing faster dev cycles and simpler deploys with Vite + client-side rendering. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 5 replies
-
|
Dashboards should stay client-side. SSR is solving the wrong problem. Public content (blogs, marketing, e-commerce) Dashboards don't need any of that. Authenticated → They wait for login anyway, SSR's "instant first paint" is irrelevant What actually matters for dashboards: Fast API responses (optimize your Supabase queries) Vite + React is the right call. Next.js adds: Serverless complexity Ship client-side. Optimize what users actually feel: interactions, not initial paint. |
Beta Was this translation helpful? Give feedback.
-
|
Hello adonisdev313, nice to meet u. What matters: Vite = faster dev, static deploy, zero vendor lock-in. |
Beta Was this translation helpful? Give feedback.
-
|
Hey! Who are u?
What does it matter?
…On Tue, Mar 17, 2026 at 12:53 AM Joseph ***@***.***> wrote:
32 seconds between post and answer... are we actually interested in
helping here?
—
Reply to this email directly, view it on GitHub
<#91475 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/B2ZEMT7FGG5QXIFPHMDTU234RCAVZAVCNFSM6AAAAACWT4WSOWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTMMJWG42DIMQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
I was answer going to answer this, but it is looking like unauthentic user activity, probably trying to drive a narrative, or farm answers. For what is worth what I had been drafting. I didn't finish it, but I don't think anyone on this thread cares lol
You can do dashboards with Next.js. Focusing on SSR is the wrong level of abstraction even, and shows that, even if you go CSR, you are likely designing the solution incorrectly.
With the App Router, the server reads the session cookie and fetches data in a single request. The user sees a fully rendered page on navigation, not a blank shell followed by client-side fetch waterfalls. This is faster than SPA-style
As if SSR is some kind of hospitality feature for anonymous visitors. Server rendering isn't about "strangers vs regulars"; it's about where computation happens. A returning authenticated user still benefits from getting a server-rendered page with data already in it instead of a blank shell + spinner + client fetch waterfall.
Server Components ship zero client JS. Initial dashboard data arrives server-rendered, and only the real-time subscription piece needs a thin Client Component. This means less JavaScript shipped and a faster meaningful paint.
Next.js is open source and runs on any Node.js host with The Adapters API is for individuals or organizations, with a predefined infrastructure, CDN, Cache layers, etc, to map their infra into the Next.js server, not that this requires an existing custom infra, which further eliminates barriers of adoption into other providers.
For dashboards specifically, server-rendering has advantages: data fetching without exposing API credentials to the client, reduced client bundle size (heavy transformations stay server-side), and elimination of client-side fetch waterfalls. These matter for dashboards with many data-heavy panels. A Vite SPA is absolutely a valid choice, the point is that the tradeoffs should be evaluated on accurate technical grounds, not outdated assumptions about how SSR works.
Next.js with Turbopack has fast HMR too. When HMR feels slow, it's usually a bottleneck in server-side evaluation, something you'd hit client-side too, just masked as a loading spinner instead. |
Beta Was this translation helpful? Give feedback.
Hello adonisdev313, nice to meet u.
Your discussion topic is very interesting for me.
I think like this.
Client-side. Period.
SSR optimizes for strangers. Dashboards serve authenticated users with live data.
SSR costs:
Hydration overhead
Serverless complexity
Stale HTML (pointless for real-time)
What matters:
Code-split routes
Parallel API calls
Optimistic updates
Vite = faster dev, static deploy, zero vendor lock-in.
Next.js for blogs. Vite for apps.