Dynamic websites render HTML on the server per request. Static sites render HTML at build time and serve it from a CDN. The right answer is static for a content site with no per-user data (marketing pages, blogs, documentation), dynamic for a per-user app with server-side logic (dashboards, SaaS, e-commerce), hybrid (SSG + ISR) for the in-between case (mostly static with per-user data on the edges). The mistake every team makes: the team picks a dynamic stack for a content site and pays for the server they do not need.
Table of contents
- The server — the difference is where the HTML is generated
- The cache — the dynamic site has cache headers, the static site is the cache
- The data — the dynamic site has per-request data, the static site has build-time data
- The hybrid — SSG + ISR for the in-between case
- The cost — the static site is cheaper, the dynamic site is more flexible
- The right choice for 2026
- How this fits the rest of the stack
- FAQ
The server — the difference is where the HTML is generated
A dynamic website generates the HTML on the server per request. The request comes in, the server runs the application code (query the database, call the API, render the template), the server returns the HTML. The latency is the server’s response time, the throughput is the server’s capacity.
A static site generates the HTML at build time. The build runs once (or on a content change), the output is a set of HTML files, the files are served from a CDN. The latency is the CDN’s response time, the throughput is the CDN’s capacity (effectively infinite).
The cache — the dynamic site has cache headers, the static site is the cache
A dynamic site has cache headers (Cache-Control: max-age=60), the CDN caches the response for 60 seconds, the next request hits the cache. The right answer is cache headers for a dynamic site that has mostly-static content with occasional updates (a marketing page with a featured product). The wrong answer is to set max-age=0 and have every request hit the server.
A static site is the cache. The HTML is in the CDN, every request hits the CDN, the server is not in the path. The right answer is a static site for a content site that does not change per request.
The data — the dynamic site has per-request data, the static site has build-time data
A dynamic site has per-request data. The request comes in with a cookie or a query string, the server reads the data, the server renders the HTML with the data. The right answer is a dynamic site for per-user data (a dashboard, a SaaS, an e-commerce cart).
A static site has build-time data. The build runs the data fetch (the content from the CMS, the products from the database), the build generates the HTML with the data. The right answer is a static site for build-time data (a blog, a documentation site, a product catalog).
The hybrid — SSG + ISR for the in-between case
The hybrid is Static Site Generation (SSG) with Incremental Static Regeneration (ISR). The build generates the HTML for the static pages, the per-user pages are generated on the first request and cached, the cache is invalidated on a content change. The right answer is SSG + ISR for a site that is mostly static with per-user data on the edges (a news site, a product catalog, a SaaS marketing site with a logged-in dashboard).
The gotcha: ISR is a complex feature, and the team that has a true per-user data path (a dashboard) is better off with a dynamic site. The right answer is SSG + ISR for a site where the per-user data is on a few specific routes, the wrong answer is SSG + ISR for a site where the per-user data is on every route.
The cost — the static site is cheaper, the dynamic site is more flexible
The cost of a static site is the CDN (effectively free for low traffic, pennies per GB for higher traffic) and the build (free for low frequency, a few dollars per build for higher frequency). The cost of a dynamic site is the server (a few dollars per month for low traffic, hundreds for higher traffic) and the database (a few dollars per month for low usage, more for higher usage).
The right answer for a team’s cost calculation is to model the cost at the team’s actual traffic, not the vendor’s headline price. The right answer is a static site for a low-traffic site (the CDN is cheaper than the server), a dynamic site for a high-traffic site where the dynamic logic is worth the cost.
The right choice for 2026
The right answer for a content site with no per-user data is static. The right answer for a per-user app with server-side logic is dynamic. The right answer for the in-between is SSG + ISR.
The right answer for a marketing site is static. The right answer for a SaaS dashboard is dynamic. The right answer for a SaaS marketing site (mostly static, with a logged-in dashboard) is SSG + ISR. The right answer for an e-commerce site is SSG + ISR (the product catalog is static, the cart and checkout are dynamic).
How this fits the rest of the stack
The infrastructure question is a small piece of a larger pattern: the team’s runtime, storage, database, secret store, logs, and deployment platform are all parts of the same platform. The right answer is to model the full stack before the project ships, not after. The RunxBuild hosting calculator is the right place to do that exercise — pick the runtime, the memory tier, the storage, the secret store, and the egress, and the calculator shows what the deploy actually costs at the team’s actual usage.
Useful related references:
FAQ
What is the difference between a dynamic website and a static site?
A dynamic website generates HTML on the server per request. A static site generates HTML at build time and serves it from a CDN.
When should I use a static site?
For a content site with no per-user data: marketing pages, blogs, documentation, product catalogs. The right answer is static for any site that does not need server-side logic per request.
When should I use a dynamic website?
For a per-user app with server-side logic: dashboards, SaaS, e-commerce, anything that needs a per-request data fetch.
What is SSG + ISR?
Static Site Generation with Incremental Static Regeneration. The build generates the static pages, the per-user pages are generated on the first request and cached.
Is a static site faster than a dynamic site?
Yes — a static site is served from a CDN, the latency is the CDN’s response time. A dynamic site has the server in the path, the latency is the server’s response time plus the network.
Is a static site cheaper than a dynamic site?
For low traffic, yes — the CDN is cheaper than the server. For high traffic, the answer depends on the dynamic site’s cost vs. the CDN’s cost.
Can a static site have a login?
Yes — the static site is the shell, the dynamic part is the login API. The right answer is SSG for the marketing pages + a serverless function for the login.
What is the right framework for a dynamic site?
Next.js (with SSR), Nuxt.js, Remix, SvelteKit. The right answer is the framework that matches the team’s frontend skill set and the deploy target.