<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nextjs on Commentary of Takao</title><link>https://takao.blog/en/tags/nextjs/</link><description>Recent content in Nextjs on Commentary of Takao</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>Commentary of Takao</copyright><lastBuildDate>Sat, 13 Jun 2026 23:11:50 +0900</lastBuildDate><atom:link href="https://takao.blog/en/tags/nextjs/index.xml" rel="self" type="application/rss+xml"/><item><title>2026 Static Site Generators: Astro, Hugo, and 11ty</title><link>https://takao.blog/en/web/static-site-generators-2026-comparison/</link><pubDate>Tue, 05 May 2026 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/static-site-generators-2026-comparison/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post 2026 Static Site Generators: Astro, Hugo, and 11ty" /&gt;&lt;h2 id="2026-static-site-generators-astro-hugo-and-11ty"&gt;2026 Static Site Generators: Astro, Hugo, and 11ty
&lt;/h2&gt;&lt;p&gt;The static site generator landscape in 2026 is more diverse than ever. Developers choose between blazing-fast Go-based &lt;strong&gt;Hugo&lt;/strong&gt;, the islands-architecture pioneer &lt;strong&gt;Astro&lt;/strong&gt;, and the minimalist, flexible &lt;strong&gt;11ty&lt;/strong&gt; (Eleventy). Each excels in different scenarios — understanding their trade-offs is essential for picking the right tool for your project.&lt;/p&gt;
&lt;p&gt;This comparison evaluates them across build speed, templating, content management, image optimization, i18n, and deployment.&lt;/p&gt;</description></item><item><title>PPR (Partial Prerendering): Merging Static and Dynamic routes</title><link>https://takao.blog/en/web/nextjs-partial-prerendering-ppr/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/nextjs-partial-prerendering-ppr/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post PPR (Partial Prerendering): Merging Static and Dynamic routes" /&gt;&lt;h2 id="the-problem-static-vs-dynamic-tradeoffs"&gt;The Problem: Static vs Dynamic Tradeoffs
&lt;/h2&gt;&lt;p&gt;Traditionally, Next.js developers faced a binary choice: &lt;strong&gt;static generation&lt;/strong&gt; (fast but stale) or &lt;strong&gt;server-side rendering&lt;/strong&gt; (fresh but slower). Partial Prerendering (PPR) eliminates this tradeoff by combining both approaches in a single page — a static HTML shell streams instantly, while dynamic content is loaded via React Suspense.&lt;/p&gt;
&lt;h2 id="how-ppr-works"&gt;How PPR Works
&lt;/h2&gt;&lt;p&gt;PPR works by identifying &lt;strong&gt;static and dynamic boundaries&lt;/strong&gt; using React Suspense. During build time, Next.js prerenders the static shell. At request time, it replaces Suspense fallbacks with streaming dynamic content:&lt;/p&gt;</description></item><item><title>Next.js 15 Stable Release: Best Practices in Production</title><link>https://takao.blog/en/web/nextjs-15-stable-features-overview/</link><pubDate>Sun, 05 Oct 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/nextjs-15-stable-features-overview/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Next.js 15 Stable Release: Best Practices in Production" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Next.js 15 ships as a stable release with &lt;strong&gt;React 19 support&lt;/strong&gt;, a redesigned caching model, and major API improvements for async request handling. This version defaults to &lt;strong&gt;no caching&lt;/strong&gt; for fetch requests and GET Route handlers, simplifying behavior predictability. It also introduces &lt;code&gt;async&lt;/code&gt; variants for &lt;code&gt;cookies()&lt;/code&gt;, &lt;code&gt;headers()&lt;/code&gt;, and &lt;code&gt;params()&lt;/code&gt;, aligning with React 19&amp;rsquo;s async rendering paradigm. This article covers every breaking change and best practice for production adoption.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="react-19-stable-compatibility"&gt;React 19 Stable Compatibility
&lt;/h2&gt;&lt;p&gt;Next.js 15 pairs with &lt;strong&gt;React 19 stable&lt;/strong&gt;, enabling the new &lt;strong&gt;React Compiler&lt;/strong&gt; to automatically memoize components and hooks. This eliminates the need for manual &lt;code&gt;useMemo&lt;/code&gt;, &lt;code&gt;useCallback&lt;/code&gt;, and &lt;code&gt;React.memo&lt;/code&gt; in many cases.&lt;/p&gt;</description></item><item><title>Demystifying Next.js App Router Caching Mechanisms</title><link>https://takao.blog/en/web/nextjs-app-router-caching/</link><pubDate>Thu, 10 Apr 2025 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/nextjs-app-router-caching/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Demystifying Next.js App Router Caching Mechanisms" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Next.js App Router features a robust caching architecture designed to optimize loading speeds and reduce backend API overhead.&lt;/p&gt;
&lt;p&gt;However, because Next.js integrates multiple caching layers, developers often run into debugging issues. Common issues include pages displaying stale data or APIs firing too frequently.&lt;/p&gt;
&lt;p&gt;This article clears up the confusion by explaining the &lt;strong&gt;four caching mechanisms&lt;/strong&gt; in Next.js, along with techniques to configure, refresh, and invalidate them.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-the-four-caching-layers-of-nextjs-app-router"&gt;1. The Four Caching Layers of Next.js App Router
&lt;/h2&gt;&lt;p&gt;The Next.js App Router uses four separate caching layers:&lt;/p&gt;</description></item><item><title>Next.js Internationalization: Routing and Content Strategy</title><link>https://takao.blog/en/web/nextjs-i18n-routing/</link><pubDate>Tue, 08 Oct 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/nextjs-i18n-routing/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Next.js Internationalization: Routing and Content Strategy" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Internationalization is a fundamental requirement for modern web applications. Next.js has evolved its i18n support from an integrated routing system in Pages Router to a flexible middleware-based approach in App Router. This article covers routing strategies, locale detection, content management, and SEO optimization for multi-language Next.js applications.&lt;/p&gt;
&lt;p&gt;The key concepts are locales, default locale, locale detection, and the trade-offs between sub-path routing and domain routing. The App Router approach offers more flexibility but requires more manual setup than its predecessor.&lt;/p&gt;</description></item><item><title>Next.js Middleware: Routing, Auth, and Edge Computing</title><link>https://takao.blog/en/web/nextjs-middleware/</link><pubDate>Tue, 18 Jun 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/nextjs-middleware/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Next.js Middleware: Routing, Auth, and Edge Computing" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Next.js Middleware executes before every request, running at the Edge or serverless region. A single &lt;code&gt;middleware.ts&lt;/code&gt; file at the project root intercepts incoming requests and can redirect, rewrite, manipulate headers, or perform authentication checks before the request reaches the matched route.&lt;/p&gt;
&lt;p&gt;Middleware is ideal for fast, edge-based decisions that should happen before page rendering. It does not run on static assets or &lt;code&gt;_next/static&lt;/code&gt; by default.&lt;/p&gt;
&lt;h2 id="basic-structure"&gt;Basic Structure
&lt;/h2&gt;&lt;p&gt;The middleware file exports a function that receives &lt;code&gt;NextRequest&lt;/code&gt; and returns &lt;code&gt;NextResponse&lt;/code&gt;, along with a &lt;code&gt;config&lt;/code&gt; object that defines which paths trigger execution.&lt;/p&gt;</description></item><item><title>Next.js Image Optimization: From Setup to Advanced Patterns</title><link>https://takao.blog/en/web/nextjs-image-optimization/</link><pubDate>Tue, 26 Mar 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/nextjs-image-optimization/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post Next.js Image Optimization: From Setup to Advanced Patterns" /&gt;&lt;h2 id="introduction"&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Images account for over 50% of total webpage bytes on average, making optimization essential for performance. Next.js provides a comprehensive image optimization pipeline through the &lt;code&gt;next/image&lt;/code&gt; component and its built-in Image Optimization API. This article covers setup, configuration, and advanced patterns with a focus on Core Web Vitals impact.&lt;/p&gt;
&lt;h2 id="the-nextimage-component"&gt;The next/image Component
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;next/image&lt;/code&gt; component extends the HTML &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element with automatic optimization features: lazy loading, responsive srcset generation, width and height enforcement to prevent Cumulative Layout Shift, blur-up placeholders, and automatic format negotiation.&lt;/p&gt;</description></item><item><title>React Server Components: The Future of Web Rendering</title><link>https://takao.blog/en/web/react-server-components/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0900</pubDate><guid>https://takao.blog/en/web/react-server-components/</guid><description>&lt;img src="https://takao.blog/img/thumnail.webp" alt="Featured image of post React Server Components: The Future of Web Rendering" /&gt;&lt;p&gt;React Server Components (RSC) represent a paradigm shift in how React applications render. Components run exclusively on the server, sending zero JavaScript to the client. This is not the same as Server-Side Rendering (SSR), which renders components on the server but still sends all the JavaScript for them to the client for hydration. RSC produces a special serialized format — the RSC payload — that the React reconciler on the client uses to reconstruct the component tree without executing the component code.&lt;/p&gt;</description></item></channel></rss>