Service pillar
Next.js developer
Next.js 15 as the presentation layer, WordPress for the editors, Cloudflare as the runtime. Rendering chosen per route, not per trend. For stores, dashboards, and sites that genuinely need sessions, personalisation, and streaming.
Senior B2B, EU jurisdiction, scoped per project.
Pricing is individual. I reply within one working day.
- Next.js 15App Router + RSC
- EU jurisdictionGDPR + NIS2 ready
- Cloudflare edgeWorkers + Pages
- B2B contractsscoped per project
What I ship
Next.js 15 with the App Router and React 19 Server Components as the front end. WordPress 6.7+ as the editorial back end, communicating over REST or GraphQL. Cloudflare Workers and Pages for the runtime and the edge cache. TypeScript across the stack. Tailwind CSS for the design system. Anthropic Claude and Model Context Protocol when AI features earn their keep.
This is not a technology list from a job ad; it is the stack I run in my own production. Every element has a reason to be there: the App Router gives per-route rendering, RSC cuts the JavaScript shipped to the client, Workers eliminate cold starts and keep data within reach of European regulation. When an element stops holding up in practice, it drops out of the stack, which I document quarterly in the Tech Radar.
When Next.js is the right choice
Personalised pages, session-driven flows, A/B-tested experiences, transactional checkout, real-time dashboards, and authenticated workspaces all benefit from the streaming SSR + RSC model. The mental model is "render close to the data, stream what is ready, hydrate what is interactive". For pages that fit, Next.js delivers a UX that classic SSR or static cannot match.
For pages that do not fit, I say so. Content-heavy marketing sites, blogs, and documentation usually win on Astro with static + ISR at lower cost. The framework decision is part of scoping, not a default. If discovery shows your site does not need Next.js, you will hear that, together with a cheaper recommendation.
Architecture: WordPress as the back end, Next.js as the front end
In a headless setup WordPress stops rendering pages and stays what it is genuinely good at: an editorial system. The content team keeps working in the familiar admin, with the same roles, workflows, and editorial plugins. Next.js fetches content over REST or WPGraphQL and renders it with a strategy matched to the route: homepage and landing pages as static with revalidation, the product catalogue as ISR with webhook-driven invalidation, checkout and the customer account as SSR with a full session.
Three elements decide whether this architecture works in practice, and all three are part of the delivery. Editorial preview: an editor has to see a draft before publishing, so I wire draft mode to WordPress instead of telling the team "that is not possible anymore". Cache invalidation: publishing in WordPress fires a webhook that revalidates exactly the routes the change touches, instead of flushing the entire cache. Media handling: images go through the Next.js pipeline with automatic AVIF and responsive sizes, regardless of what the editor uploaded.
Performance and Core Web Vitals
Performance in Next.js does not come from the framework; it comes from the architectural decisions the framework makes possible. Streaming SSR sends the first byte before the server finishes rendering the whole page, which directly lowers TTFB and LCP. Server Components keep data-fetching logic on the server, so the client receives less JavaScript and INP stops suffering from hydrating everything at once. Caching on the Cloudflare edge answers users from the nearest point of the network instead of a single origin server.
Every project starts with a baseline: TTFB, LCP, INP, and CLS measured on real users before the change, not in a lab. After the launch the same metrics are collected via RUM and compared in a side-by-side measurement window. The outcome of the project is the difference in field data, not a Lighthouse screenshot. The public Astro vs Next.js measurement protocol on WooCommerce, with the methodology open for review, is linked in the reference section at the bottom of this page.
Headless WooCommerce on Next.js
A store is the most demanding headless variant, because it combines static content with a live transaction. I render product pages and categories as ISR: as fast as static, updated by webhook whenever a price or stock level changes. Cart, checkout, and the customer account run as SSR with a session, wired to the WooCommerce Store API. Per-customer pricing, B2B discount tiers, and login-gated catalogues, the typical wholesaler requirements, stop forcing you to give up caching across the whole store, because the rendering decision is made at the route level.
On top of that comes a layer stores ask about more and more often: readiness for AI shopping agents. Clean, server-rendered HTML with correct Product and Offer schema is the entry condition for an agent to see the catalogue at all. It is the same architecture that serves fast pages to humans, so you do not pay for it twice.
SEO, GEO, and AEO in Next.js
Server-side rendering is the visibility foundation that client-side React can never provide: AI crawlers such as GPTBot, ClaudeBot, and PerplexityBot do not execute JavaScript, and Googlebot executes it with delay and a budget. Next.js with SSR and RSC returns the full content in the first HTML response, so what the user sees is also what the bot sees.
On that foundation I build the technical layer: per-route metadata API, canonical and hreflang via metadata.alternates, sitemaps via generateSitemaps, structured data as JSON-LD matched to the page type (Product, Article, FAQPage, HowTo), Open Graph with per-page generated images. For visibility in generative search I add the GEO elements: direct-answer sections, FAQs with structured data, llms.txt, and content negotiation for agents. Every project goes through a 30-point SEO checklist before the DNS cutover.
Security and EU jurisdiction
Headless shrinks the attack surface in a way you can explain to a board in one sentence: WordPress disappears from the public internet. The login panel, XML-RPC, and plugin files stop being reachable by scanners, because Next.js serves the front end and the origin is accessible only to it. Add centrally configured security headers, server-side input validation, and secrets kept out of the repository.
For companies covered by GDPR, NIS2, or DORA, data geography matters too: a Cloudflare runtime with EU processing, data processing agreements in Polish or English, and documented data flows for the record of processing activities. A B2B contract in European jurisdiction, not the terms of service of a platform outside it.
Who this is for
- WooCommerce stores with custom checkout flows or per-user pricing
- SaaS dashboards and authenticated workspaces backed by WordPress as a content layer
- Multi-region brands needing ISR with webhook-driven invalidation
- Editorial publishers with live data feeds, comments, or real-time analytics surfaces
- B2B wholesalers with login-gated catalogues and pricing negotiated per account
Engagement model
Senior B2B contracts in EU jurisdiction. Four phases: discovery with a content audit and performance baseline, scoping with per-route rendering decisions, an iterative build with weekly demos and a side-by-side measurement window, and finally tuning and retainer with observability and quarterly stack reviews. Fixed-scope or time-and-materials engagements. Pricing is individual, with a per-phase schedule and decision points.
Frequently asked questions
When does Next.js win over Astro for headless WordPress?
When the page is personalised, session-driven, or transactional. Authenticated dashboards, checkout flows, A/B-tested pages, real-time data feeds, and live commerce all play to Next.js's strengths. Astro wins for high-traffic content sites where static + ISR is sufficient. The framework choice is per-project, not a default.
What is the role of React Server Components in production?
RSC lets the framework render React on the server and stream HTML to the client without shipping the component code. The wins are smaller JS bundles, faster TTI on slow networks, and a cleaner data-fetching pattern. The trade-off is a different mental model from classic React; the senior team's familiarity with RSC matters more than the framework version.
Can Next.js run on Cloudflare Workers?
Yes. The OpenNext adapter compiles a Next.js build to Workers-compatible output, and Cloudflare's first-party Next.js Workers integration covers most production cases. Edge functions and middleware port from Vercel Edge Runtime. I benchmark per project; not every Next.js feature is identical across runtimes.
Does Next.js cost more to host than Astro?
Often, yes. Static Astro pages serve from edge cache at near-zero CPU. Next.js SSR pages pay full render cost per request, and even ISR pays revalidation cost. For high-traffic content sites the difference is real. For commerce and personalised flows the difference is rarely the deciding factor.
How do you handle SEO with Next.js?
Per-route metadata via the App Router metadata API, structured data via inline JSON-LD or schema components, sitemap and robots via generateSitemaps and route handlers, and hreflang via the metadata.alternates field. I carry a 30-point SEO checklist into every Next.js engagement.
Is a Next.js site visible to AI and generative search engines?
Yes, provided it renders on the server. AI crawlers (GPTBot, ClaudeBot, PerplexityBot) do not execute JavaScript, so purely client-side React is empty to them. Next.js with SSR and RSC returns the full HTML in the first response, which makes the content readable to search bots and AI systems alike. I add structured data, llms.txt, and content negotiation when AI visibility is a business goal.
Do you rewrite an existing WordPress front end to Next.js?
Yes, that is the most common scenario. WordPress stays as the editorial back end while the front end moves to Next.js in stages, route by route, behind a Cloudflare proxy. URLs, schema, and editorial preview are preserved, and the redirect map only goes live after a side-by-side measurement window. The editorial team keeps working uninterrupted throughout the migration.
How long does a Next.js implementation with headless WordPress take?
Scope sets the timeline. A pilot migration of a handful of routes with measurements closes in a few weeks. A full site front end with checkout, personalisation, and multilingual support is a quarter-scale project. After discovery you get a per-phase schedule with decision points, not a single unbacked date.
Explore other WordPress services and knowledge base
Strengthen your business with professional technical support in key areas of the WordPress ecosystem.
Migration to Astro, Next.js, and headless WordPress.
WooCommerce sync with ERP and wholesale systems.
Headless WordPress, Sanity, Strapi, and Contentful with Astro or Next.js.
Astro, MDX, edge delivery, and 100/100 performance.
Custom WordPress engineering and architecture.
Scalable headless, ERP, and AI architecture for enterprise.
Related categories
Supporting articles

Six to sixteen weeks for typical engagements, with a four-phase shape: discovery, scoping, build and cutover, tuning. The variables are catalogue size, integration count, URL preservation, and editorial team readiness, not framework choice.

The Shopify Plus vs WooCommerce headless decision in 2026 is no longer a binary "platform vs custom" trade-off. Both can run headless, both integrate AI, both ship at the edge. The real axes are control, total cost over five years, and exit strategy. This article walks the matrix with confirmed platform facts.

Incremental Static Regeneration and Server-Side Rendering are not interchangeable. ISR wins when content changes on a predictable cadence and traffic is high. SSR wins when the page is personalised or session-driven. The choice is per-route, not per-stack.
Proof through migration discipline
Next.js is useful when the route really needs session state, personalisation or streaming. The proof layer shows how I preserve URLs, schema, editorial preview and rollback while changing the front end.
Cluster reading
Architecture and decision
- Next.js vs Astro decision matrix
- ISR vs SSR rendering decision
- Headless WordPress service pillar
- Cloudflare edge deployment service pillar
Migration and timelines
- WordPress to Astro or Next.js migration landing (transactional)
- How long does a headless WordPress migration take in 2026?
- SEO patterns for headless WordPress
- Headless WordPress for WooCommerce
Compliance and risk
Reference
Start a Next.js engagement
Tell me the scope and timeline. I reply within one working day.
Contact me