Engineering6 min readBy the Kiwi senior team

When a Next.js static export is the right B2B marketing site

Static export fits a B2B marketing site that can be files on an edge CDN. It does not fit an authenticated portal. A 2026 decision guide from Next.js deploy docs.

In this guide
  1. Direct answer
  2. Website vs portal vs panel
  3. A practical sequence
  4. SEO consequences
  5. What to send if you want a senior review
  6. Questions
  7. Sources

Direct answer

Use `output: 'export'` when every public URL can be a file, you do not need server-only cookies on those URLs, and the host is a CDN (Pages, S3+CDN, similar). Use a server or edge runtime when you need sessions, A/B at the origin, or HTML that depends on the request.

Next.js documents the constraints: no dynamic server routes in the export, trailing slash behaviour must match the host, and image optimization needs a compatible loader.

Website vs portal vs panel

The marketing website can be static. The client portal and operator panel cannot, because authorization is per request. Split the origins or split the runtimes. Do not force a portal through static export and then ‘fake’ login with a public JSON file.

A practical sequence

Prove the host before you design 200 pages.

  • List routes that must be public files
  • List routes that need a session
  • Match trailingSlash to the CDN
  • Put Core Web Vitals budgets in CI on the export
  • Keep the form on a dedicated route with an explicit embed

SEO consequences

Static files are easy to cache and easy to get wrong: duplicate index.html vs slash, stale HTML after a content change, and sitemaps that list routes you no longer export. Treat the export directory as the source of truth for what is live.

What to send if you want a senior review

Share whether you need login on the same host. Related work at Kiwi: custom website design and development.

Frequently asked questions

Can we static-export the blog too?

Yes, if posts are known at build time. Pagination and topic hubs must be generated in that build. Do not expect a CMS webhook to mutate HTML without a rebuild.

Does static mean we cannot have a form?

You can embed a third-party form or post to an edge function on another origin. The HTML can still be static.

Is static faster than SSR by default?

It is easier to cache. Speed still depends on fonts, images, and third-party scripts. Measure LCP on mobile.

Sources

Figures cited above are drawn from the linked publications and are the responsibility of their sources; we date and scope them rather than presenting them as universal guarantees.

What would this change for your business?

Share your goal and the challenge behind it. We’ll help you turn the useful ideas into a practical first step. A senior practitioner replies within one business day.

Start a project