comparison Backend & software
Static vs dynamic website
Static pages can still be interactive. The key distinction is when and where HTML is produced for a request.
What it means
A static website can send prebuilt HTML and assets without generating a new page on each visitor request. A dynamic website commonly uses server-side code to generate or tailor responses from state, data or user context at request time. Static versus dynamic here describes the serving/generation approach, not whether the screen can respond to clicks. Web server types Rendering terminology
A static page may contain JavaScript that opens menus, filters results or calculates values in a visitor's browser. That makes the interface interactive without requiring the server to generate its HTML for every request. Client-side code
Try it
Example — two ways to produce a product page. Same visible result, different work location.
Static generation: source data → build step → product.html → visitors
Request-time: visitor request → app + data store → HTML responseIf the price changes, a purely prebuilt page may need a new build or client-side data fetch. A request-time renderer can calculate a price on demand. The second option is not automatically faster or more accurate; caching, freshness, data sources and infrastructure decide the outcome. Static export boundary
Compare the same criteria
| Criterion | Prebuilt static site | Request-time dynamic site |
|---|---|---|
| HTML generation | At build/deploy time | On the server when handling a request |
| Per-user content | Needs client code, external services or separate variants | Can be produced using server-side context |
| Runtime needs | Static file serving or CDN | Application runtime and often data services |
| Updates | Rebuild or update assets for prebuilt content | Server can reflect changed data at next response |
| Attack surface | No per-request application execution at static host | More runtime, state and input-handling concerns |
| Failure modes | Missing/old asset or deployment failure | Application, database and network dependencies |
Static exports are appropriate for predictable content, documentation and many marketing pages. Personalized accounts, private updates and payment flows generally require additional backend capabilities, even if the user-facing pages are initially static. Next.js static export limitations
Hybrid designs exist
A dynamic site almost always serves some static CSS, images or JavaScript. A static page can call a separate API, and a framework can pre-render some routes while computing others. The distinction should be applied to a particular page or response, not used as a universal label for the entire business.
Static export excludes request-dependent server functions by design. Next.js's documented static mode produces files at build time, while client-side components can still run in the browser. The limits matter if someone assumes a static upload can provide authenticated server actions or a writable database without another service. Export guide
In practice
Choose prebuilt delivery when public content can be generated ahead of time, and the editorial/rebuild workflow is acceptable. Choose server-side processing when requirements genuinely depend on secrets, private data, current shared state or validated writes. In either approach, plan caching, security, accessibility, backups and rollback.
Common mistake: assuming “static” means “no JavaScript,” or assuming every dynamic page requires a separate database. Neither statement is generally true. JavaScript roles
Sources & model boundaries
Primary references used for this explanation. The example above is illustrative; it is not a live check.
- MDN — What is a web server?
Static/dynamic web server and hosting files. HTTP server role, served files, and the distinction between static and dynamic processing.
Checked .
- MDN — What is JavaScript?
Client-side versus server-side code. Browser JavaScript can create dynamic interactions even on statically hosted pages.
Checked .
- Next.js — Static exports
Supported and unsupported features. Static HTML at build time, client interactivity and limits of a serverless static export.
Checked .
- MDN — Server-side rendering
SSR vs static generation. Build-time generation differs from generation in response to each request.
Checked .