Type something to search...
Sajjad

Sajjad

I've dedicated years of my life to learning new technologies. I have a high-level understanding of many different things and can pick up and learn.

How does server-side rendering work in Next.js?

How does server-side rendering work in Next.js?

In an era where web applications are becoming increasingly complex, delivering a seamless user experience is paramount. This is where the concept of

Dive Deeper
How to add a contact form to WordPress website?

How to add a contact form to WordPress website?

A contact form is a crucial component for any website, and this holds true especially for WordPress sites. It serves as a

Dive Deeper
How to back up a WordPress website?

How to back up a WordPress website?

Backing up your WordPress website is an essential task that ensures the security and integrity of your valuable content. Whether you're running a per

Dive Deeper
How To build an e-commerce website with WordPress?

How To build an e-commerce website with WordPress?

In today's digital age, having an online presence is crucial for businesses of all sizes, especially those in the e-commerce realm. With the ever-inc

Dive Deeper
How to choose a WordPress theme?

How to choose a WordPress theme?

WordPress themes play a pivotal role in dictating the aesthetic and functional essence of your website. Embarking on the jou

Dive Deeper
How to create a multilingual WordPress website?

How to create a multilingual WordPress website?

In today's globalized world, businesses and organizations are increasingly seeking to expand their reach and connect with audiences across different

Dive Deeper
How to install WordPress on my own hosting?

How to install WordPress on my own hosting?

WordPress is the most popular content management system (CMS) in the world, powering millions of websites. Installing WordPress on your own hosting g

Dive Deeper
How to make a WordPress website secure?

How to make a WordPress website secure?

In today's digital age, website security is paramount. With the widespread use of content management systems (CMS) like WordPress, securing your webs

Dive Deeper
How to manage comments in WordPress?

How to manage comments in WordPress?

Your website’s comment section is more than just a feature; it is the digital town square for your brand. It is where your audience transforms from p

Dive Deeper
How to move an existing website to WordPress?

How to move an existing website to WordPress?

In today's digital landscape, having a robust and user-friendly website is paramount for any business or individual looking to establish a strong onl

Dive Deeper
How to optimize a WordPress website for SEO?

How to optimize a WordPress website for SEO?

In the ever-evolving digital landscape, optimizing your website for search engines has become an indispensable strategy for success. With [WordPress

Dive Deeper
How to set up Google Analytics on WordPress?

How to set up Google Analytics on WordPress?

Understanding your website's performance is crucial for growth. You need to know who visits your site, how they find you, what content resonates with

Dive Deeper
How to speed up a WordPress website?

How to speed up a WordPress website?

In today's fast-paced digital world, the speed of your WordPress website can make or break your online presence. A slow-loading site not only frustra

Dive Deeper
How to troubleshoot a WordPress error?

How to troubleshoot a WordPress error?

As a WordPress user, encountering errors can be frustrating and disruptive. Whether you're a blogger, an e-commerce store owner, or managing a corpor

Dive Deeper
How to update WordPress and it's themes and plugins?

How to update WordPress and it's themes and plugins?

In the ever-evolving digital landscape, keeping your WordPress website updated is crucial for maintaining its security, performance, and functionalit

Dive Deeper
How to use WordPress for a membership website?

How to use WordPress for a membership website?

Building a membership website can be a rewarding venture, both personally and professionally. It allows you to create a community, generate revenue,

Dive Deeper
Is WordPress free?

Is WordPress free?

WordPress, the world's most popular content management system (CMS), is renowned for its flexibility, user-friendliness, and vast array of features.

Dive Deeper
The Importance of Mobile-Friendly Websites

The Importance of Mobile-Friendly Websites

In the digital age, mobile devices have become an integral part of our daily lives. With the increasing popularity of smartphones and tablets, people

Dive Deeper
Nextjs Adding analytics

Nextjs Adding analytics

Performance is no longer a "nice to have" you tack on after launch. Core Web Vitals are a confirmed Google ranking signal, slow pages measurably kill

Dive Deeper
Nextjs Adopting Partial Prefetching

Nextjs Adopting Partial Prefetching

Prefetching is one of those Next.js features that quietly does a lot of work and gets almost none of the credit. Hover a <Link>, and Next.js has us

Dive Deeper
Nextjs after function

Nextjs after function

Some work genuinely shouldn't block a response — logging an analytics event, firing a webhook notification, writing an audit log entry. The user does

Dive Deeper
Setting up your Next.js project for AI coding agents

Setting up your Next.js project for AI coding agents

If you have spent any time pairing with an AI coding agent on a Next.js project, you have probably watched it confidently write code against an API t

Dive Deeper
Nextjs API Components

Nextjs API Components

Every React framework eventually ends up shipping its own set of "special" components — the ones that aren't quite ordinary JSX, because they're doin

Dive Deeper
API Reference for Next.js Functions and Hooks

API Reference for Next.js Functions and Hooks

Beyond file conventions and directives, the App Router exposes a substantial set of importable functions and hooks — the actual verbs of the framewor

Dive Deeper
Next.js API Reference for the App Router

Next.js API Reference for the App Router

If you've spent any time in the Next.js docs, you've probably noticed they're split into very different kinds of pages. Some walk you through buildin

Dive Deeper
Next.js Implementing authentication

Next.js Implementing authentication

Authentication is one of those features every real application needs and almost nobody wants to build from scratch. Next.js doesn't ship an opinionat

Dive Deeper
Next.js Caching

Next.js Caching

If you learned Next.js caching a year or two ago, forget most of it. Up through Next.js 15, caching in the App Router was a tangle of overlapping mec

Dive Deeper
Next.js App router CSS

Next.js App router CSS

Every Next.js project eventually needs an answer to the same question: where does the CSS go? Unlike a plain Create React App setup where there was r

Dive Deeper
Next.js Deploying

Next.js Deploying

Every Next.js tutorial ends the same way: npm run dev, the app works on localhost:3000, and the reader is left to figure out the rest on their ow

Dive Deeper
Next.js Error Handling

Next.js Error Handling

Every non-trivial application fails sometimes. A form submission hits a validation rule, an upstream API times out, a database query throws, or a com

Dive Deeper
Next.js Fetching Data

Next.js Fetching Data

If you learned data fetching in the Pages Router, or in plain React, the App Router's approach can feel like it's asking you to unlearn a habit. Ther

Dive Deeper
Next.js Getting Started

Next.js Getting Started

If you open the official Next.js documentation for the first time, the "Getting Started" section looks deceptively small. It's really just a table of

Dive Deeper
Next.js Guides

Next.js Guides

If you've spent any time in the official Next.js documentation, you've probably noticed it's split into a few distinct zones that don't behave the sa

Dive Deeper
Next.js Image Optimization

Next.js Image Optimization

Images are usually the heaviest thing on a web page, and they're also the easiest way to accidentally wreck your Core Web Vitals. A single unoptimize

Dive Deeper
Incremental Static Regeneration (ISR)

Incremental Static Regeneration (ISR)

Static generation and server-side rendering used to be a hard fork in the road. You either prerendered a page at build time and served it instantly f

Dive Deeper
Next.js Installation

Next.js Installation

Every Next.js project starts the same way: one command, a handful of prompts, and a folder full of generated files. That simplicity is deceptive. The

Dive Deeper
Next.js Mutating Data

Next.js Mutating Data

If you learned React before Server Components existed, "mutating data" probably meant one thing: write an API route, call it with fetch from a `use

Dive Deeper
Next.js Proxy

Next.js Proxy

Every request that hits your Next.js app has to travel through routing, rendering, and eventually a response before it reaches the browser. Most of t

Dive Deeper
Nextjs Revalidating

Nextjs Revalidating

Caching is only half the story. The moment you cache a database query, an API response, or a rendered component, you've created a second problem: at

Dive Deeper
Next.js Streaming

Next.js Streaming

Streaming is the mechanism underneath nearly every other article in this series' caching and rendering coverage — Cache Components, instant navigatio

Dive Deeper
Next.js Upgrading

Next.js Upgrading

Next.js moves fast. The team ships canary builds almost daily, minor releases every few weeks, and a major version roughly once or twice a year. That

Dive Deeper
Implementing authentication with Cache Components

Implementing authentication with Cache Components

If you've already read a guide on "authentication in Next.js," you might assume this article is a rehash — sign up, log in, set a cookie, check it on

Dive Deeper
Using Next.js as a backend for your frontend

Using Next.js as a backend for your frontend

Most people reach for Next.js because they want to render a UI — Server Components, layouts, streaming HTML, the whole App Router experience. But the

Dive Deeper
next.js Building interactive apps

next.js Building interactive apps

Every time a user clicks something in a Next.js app that triggers a Server Function, there's a gap. The network round-trip takes an unknown amount of

Dive Deeper
Next.js Building your application

Next.js Building your application

Most developers treat next build as a black box. You run it, you wait, and either it prints a green checkmark or it doesn't. If it fails, you scrol

Dive Deeper
Next.js cacheLife Function

Next.js cacheLife Function

A use cache directive tells Next.js that something should be cached. cacheLife tells it for how long, and — less obviously — _how that durati

Dive Deeper
Next.js cacheTag

Next.js cacheTag

Caching data is only half the problem — the other half is invalidating exactly the right subset of it when something changes, without wiping out ever

Dive Deeper
Caching and Revalidating (Previous Model)

Caching and Revalidating (Previous Model)

Next.js 16 introduced Cache Components, a new caching model built around the use cache directive that makes caching an explicit, opt-in decision ra

Dive Deeper
Next.js catchError

Next.js catchError

error.js catches errors for an entire route segment — but not every error boundary you need actually lines up with a route segment boundary. Someti

Dive Deeper
Configuring CI build caching

Configuring CI build caching

If you've ever watched a Next.js build run in CI and wondered why it takes three minutes on your laptop but twelve minutes on GitHub Actions, the ans

Dive Deeper
Client-side data fetching with SWR

Client-side data fetching with SWR

Not everything in a Next.js App Router project belongs on the server. A product search box that fires a new request on every keystroke, a notificatio

Dive Deeper
Client-side data fetching with TanStack Query

Client-side data fetching with TanStack Query

TanStack Query (the library most people still call React Query out of habit) solves a problem that Server Components don't: what happens to data _aft

Dive Deeper
Client-side data fetching

Client-side data fetching

Every Next.js App Router project eventually hits the same fork in the road: some piece of UI needs data that the server rendered version can't (or sh

Dive Deeper
Next.js Codemods

Next.js Codemods

A codemod is a programmatic transformation applied across your codebase — the entire point being that when Next.js renames or restructures an API, yo

Dive Deeper
Next.js connection function

Next.js connection function

Next.js can usually tell a component needs per-request rendering because it calls a Request-time API like cookies() or headers() — that call itse

Dive Deeper
Setting a Content Security Policy (CSP)

Setting a Content Security Policy (CSP)

Cross-site scripting is one of those vulnerabilities that sounds theoretical right up until it isn't. All it takes is one comment form, one rich-text

Dive Deeper
Next.js cookies function

Next.js cookies function

Cookies are one of those primitives that seem simple until you actually need to read or write one from a server-rendered React tree. In a traditional

Dive Deeper
Next.js Using CSS-in-JS libraries

Next.js Using CSS-in-JS libraries

If you've spent any real time with styled-components, Emotion, or a similar runtime CSS-in-JS library, you already know the pitch: colocate your styl

Dive Deeper
Next.js Setting up a custom server

Next.js Setting up a custom server

Every Next.js app already has a server. When you run next start, Next.js spins up an HTTP server for you, wires up its router, and handles every re

Dive Deeper
Next.js Data security in Next.js

Next.js Data security in Next.js

For most of the framework's history, the security model of a React app was easy to reason about, whatever code ran in the browser was untrusted by de

Dive Deeper
Next.js Debugging tools

Next.js Debugging tools

Most developers debug a Next.js app the same way they'd debug any React project: sprinkle in a few console.log calls, stare at the output, delete t

Dive Deeper
Next.js default.js

Next.js default.js

If you've never touched Parallel Routes, default.js is one of those files you'll never think about — and the moment you do touch Parallel Routes, y

Dive Deeper
Next.js Deploying to different platforms

Next.js Deploying to different platforms

"Can I deploy Next.js anywhere?" is the wrong question, and it's the one most teams ask. The right question is narrower: does the platform I'm consid

Dive Deeper
Next.js Directives

Next.js Directives

If you've spent any time in the App Router, you've typed 'use client' at the top of a file without thinking too hard about what that string literal

Dive Deeper
Next.js Draft Mode

Next.js Draft Mode

If you've ever worked with a headless CMS, you already know the workflow: a content editor writes a draft, saves it, and then wants to see exactly ho

Dive Deeper
Nextjs draftMode function

Nextjs draftMode function

If you've ever built a site backed by a headless CMS, you've hit this problem: an editor saves a draft, previews it, and it doesn't show up because y

Dive Deeper
Next.js Dynamic Route Segments

Next.js Dynamic Route Segments

Most of the routes in a real application aren't known ahead of time. A blog doesn't have a finite list of URLs baked into its file structure — it has

Dive Deeper
Next.js dynamicParams

Next.js dynamicParams

generateStaticParams tells Next.js which specific values of a dynamic segment to prerender at build time. But real traffic doesn't always stick to

Dive Deeper
Ensuring instant navigations

Ensuring instant navigations

Every framework promises fast navigation. Next.js is one of the few that gives you a way to actually verify it, route by route, before a user ever co

Dive Deeper
Nextjs Environment variables

Nextjs Environment variables

Every non-trivial application needs a way to keep secrets, connection strings, and per-environment settings out of the codebase. A database password

Dive Deeper
Next.js error.js

Next.js error.js

An error.js file gives a route segment its own React error boundary, automatically. Instead of manually wrapping trees of components in error-catch

Dive Deeper
Nextjs fetch function

Nextjs fetch function

Every Next.js developer meets fetch on day one, and most of them assume it behaves exactly like the fetch they already know from the browser. It

Dive Deeper
Next.js favicon, icon, and apple-icon

Next.js favicon, icon, and apple-icon

App icons look like the simplest possible piece of metadata to get right — drop an image somewhere, done — until you actually try to cover every surf

Dive Deeper
Next.js File-system conventions

Next.js File-system conventions

Every framework has to answer one boring but load-bearing question: how does a folder full of files turn into a running application? Most React frame

Dive Deeper
Next.js Font Module

Next.js Font Module

If you've already read a getting-started guide on fonts in Next.js, you know the basics: import a font from next/font/google, slap the className

Dive Deeper
Next.js Font Optimization

Next.js Font Optimization

Web fonts have a reputation for quietly wrecking performance scores. You add a nice-looking Google Font to your project, ship it, and a week later so

Dive Deeper
Next.js  forbidden function

Next.js forbidden function

Most tutorials on handling errors in Next.js focus on the easy case: the thing doesn't exist, so you show a 404. Far fewer talk about the case that a

Dive Deeper
Next.js  forbidden.js

Next.js forbidden.js

Most authorization failures in a web app fall into one of two buckets, and they deserve different responses: "you're not logged in" (401, please sign

Dive Deeper
Next.js Form Component

Next.js Form Component

If you've spent any time with the App Router, you've probably already reached for Server Actions to handle form submissions — a user fills something

Dive Deeper
Next.js Creating forms with Server Actions

Next.js Creating forms with Server Actions

For most of the last decade, building a form in a React app meant the same ritual: wire up useState for every field, write an onSubmit handler th

Dive Deeper
Next.js generateImageMetadata

Next.js generateImageMetadata

Most of the time, a favicon or an Open Graph image in a Next.js app is a single static file sitting next to a route: one icon.png, one `opengraph-i

Dive Deeper
Next.js  generateMetadata function

Next.js generateMetadata function

Every page you ship eventually gets shared somewhere — pasted into Slack, tweeted, indexed by Google, unfurled in an iMessage thread. What determines

Dive Deeper
Next.js generateSitemaps

Next.js generateSitemaps

A single sitemap.xml file works fine right up until it doesn't. The sitemap protocol caps every file at 50,000 URLs (and 50MB uncompressed), and lo

Dive Deeper
Next.js generateStaticParams

Next.js generateStaticParams

Dynamic route segments like app/blog/[slug]/page.tsx are, by default, rendered on demand: the first time someone requests /blog/hello-world, Next

Dive Deeper
Next.js generateViewport

Next.js generateViewport

If you've ever squinted at a site on your phone because the text rendered tiny and zoomed-out, you've felt the absence of a proper viewport meta tag.

Dive Deeper
Next.js Handling redirects

Next.js Handling redirects

"Just redirect the user" sounds like it should have one obvious answer, and in Next.js it deliberately doesn't — because "redirect after this form su

Dive Deeper
Next.js headers

Next.js headers

Every incoming HTTP request carries a bundle of headers you never see in your component tree by default — the user-agent, the authorization token

Dive Deeper
Next.js How revalidation works

Next.js How revalidation works

Most Next.js developers interact with revalidation at a very shallow level: you call revalidateTag() after a mutation, or you set a cacheLife pro

Dive Deeper
Next.js Image Component

Next.js Image Component

Images are usually the single heaviest thing on a web page, and they are also the thing most likely to wreck your Core Web Vitals if you leave them u

Dive Deeper
Next.js ImageResponse

Next.js ImageResponse

Every time a link to your site gets dropped into Slack, iMessage, or Twitter, something has to decide what the preview card looks like. For most site

Dive Deeper
Next.js instrumentation-client.js

Next.js instrumentation-client.js

Server-side instrumentation gets you visibility into requests, renders, and errors that happen before HTML ever reaches a browser. But a meaningful c

Dive Deeper
Next.js instrumentation.js

Next.js instrumentation.js

instrumentation.js is one of the smallest files in the App Router's convention vocabulary and one of the most disproportionately useful once you ac

Dive Deeper
Next.js Intercepting Routes

Next.js Intercepting Routes

There's a specific kind of navigation almost every app eventually needs: clicking a photo in a feed should open it in a modal, right there, without l

Dive Deeper
Next.js Internationalization

Next.js Internationalization

Most frameworks that promise "internationalization support" actually mean one of two very different things: either they ship a router that understand

Dive Deeper
Next.js io

Next.js io

If you've enabled Cache Components in a Next.js 16 project, you've probably run into a build error that seems to come out of nowhere: a component tha

Dive Deeper
Next.js ISR with Cache Components

Next.js ISR with Cache Components

If you've been building with Next.js for a while, you've probably run into the same trade-off every team hits eventually: you have a catalog with ten

Dive Deeper
Next.js Implementing JSON-LD

Next.js Implementing JSON-LD

If you've ever wondered how Google shows a recipe's star rating and cook time directly in search results, or how a product listing gets a price and s

Dive Deeper
Next.js layout.js

Next.js layout.js

layout.js is the outermost wrapper in a route segment's component hierarchy — it sits above template.js, error.js, loading.js, not-found.js

Dive Deeper
Next.js Layouts and Pages

Next.js Layouts and Pages

Every React project eventually asks the same question: how do URLs map to components? In the Pages Router, the answer was a flat mapping between a fi

Dive Deeper
Next.js Lazy loading Client Components and libraries

Next.js Lazy loading Client Components and libraries

Every component you ship, every library you import, every icon set you pull in — all of it has to travel down the wire before a browser can do anythi

Dive Deeper
Next.js Link Component

Next.js Link Component

Every Next.js app eventually comes down to one question: how does a visitor get from page A to page B without the whole browser reloading? The answer

Dive Deeper
Next.js Linking and Navigating

Next.js Linking and Navigating

Every route in the Next.js App Router is rendered on the server by default. That single fact explains almost everything interesting about how navigat

Dive Deeper
Next.js Loading and optimizing scripts

Next.js Loading and optimizing scripts

A plain <script src="..."> tag is one of the easiest ways to quietly wreck a page's performance, because the browser's default behavior for it is a

Dive Deeper
Next.js loading.js

Next.js loading.js

The gap between "the user clicked a link" and "the page they wanted is fully rendered" is where a lot of apps feel sluggish even when the underlying

Dive Deeper
Next.js Optimizing your local development environment

Next.js Optimizing your local development environment

Every Next.js developer eventually hits the same wall: the app used to reload in a blink, and now every save takes a beat too long. You edit a compon

Dive Deeper
Next.js manifest.json

Next.js manifest.json

Every "Add to Home Screen" prompt, every PWA install banner, every app-like icon a browser shows for your site instead of just a generic bookmark — a

Dive Deeper
Next.js Using markdown and MDX

Next.js Using markdown and MDX

Markdown is the easiest way to write structured content without touching HTML, and if you've ever written a README, a changelog, or a blog post in a

Dive Deeper
Next.js maxDuration

Next.js maxDuration

Serverless execution environments generally enforce a hard ceiling on how long any single invocation is allowed to run — exceed it, and the platform

Dive Deeper
Next.js Enabling Next.js MCP Server for coding agents

Next.js Enabling Next.js MCP Server for coding agents

Every AI coding assistant working on a Next.js project faces the same handicap: it can read your source files, but it has no idea what's actually hap

Dive Deeper
Next.js mdx-components.js

Next.js mdx-components.js

If you've configured @next/mdx in the App Router and your MDX files are rendering with completely unstyled HTML — plain black links, default browse

Dive Deeper
Next.js Metadata and OG images

Next.js Metadata and OG images

Every page you ship eventually gets shared somewhere you don't control: pasted into a Slack channel, tweeted, dropped into a WhatsApp group, or index

Dive Deeper
Next.js Metadata Files API Reference

Next.js Metadata Files API Reference

Search engines, social media crawlers, and browsers all expect a handful of specific files and head-tag conventions before they'll represent your sit

Dive Deeper
Next.js Migrating from Create React App

Next.js Migrating from Create React App

Create React App has been officially archived, and if you're still running a CRA project, you've probably noticed the signs even before that announce

Dive Deeper
Next.js Migrating from Vite

Next.js Migrating from Vite

Vite earned its popularity for a good reason: it's fast, it has almost no configuration ceremony, and npm create vite gets you a working React app

Dive Deeper
Next.js Migrating

Next.js Migrating

At some point, almost every React codebase outgrows the tool it started with. A Create React App project hits a wall when someone asks for server-ren

Dive Deeper
Next.js Migrating from Pages to the App Router

Next.js Migrating from Pages to the App Router

If you have a Next.js application that predates the App Router, you are sitting on more technical debt than you probably realize. The pages directo

Dive Deeper
Next.js Migrating to Cache Components

Next.js Migrating to Cache Components

If you've been running a Next.js App Router project for a while, your codebase almost certainly has a scattering of `export const dynamic = 'force-dy

Dive Deeper
Next.js Building multi-tenant apps

Next.js Building multi-tenant apps

If you check the official Next.js docs page for "Building multi-tenant apps," you'll find something unusual for this documentation set: it's one sent

Dive Deeper
Next.js Building micro-frontends with multi-zones

Next.js Building micro-frontends with multi-zones

There's a particular kind of pain that shows up in large Next.js applications well before they become unmaintainable: build times creep up, the depen

Dive Deeper
Next.js NextRequest

Next.js NextRequest

Every Route Handler and every proxy.js file in a Next.js application receives a request object, and that object is not a plain Web Request. It's

Dive Deeper
Next.js NextResponse

Next.js NextResponse

If you've written a Route Handler or a proxy file in Next.js, you've almost certainly returned a NextResponse without stopping to think about what

Dive Deeper
Next.js not-found.js

Next.js not-found.js

Next.js actually gives you two distinct tools for "this doesn't exist" scenarios, and conflating them is the most common mistake people make with thi

Dive Deeper
Next.js notFound

Next.js notFound

Every app built on dynamic data eventually hits the same question: a user requests /blog/a-post-that-was-deleted or /user/999999, and your data l

Dive Deeper
Next.js Handling connectivity drops

Next.js Handling connectivity drops

Before this feature existed, a network drop mid-navigation or mid-Server-Action was just an error. The fetch throws, the promise rejects, and it's on

Dive Deeper
Next.js opengraph-image and twitter-image

Next.js opengraph-image and twitter-image

The image that shows up when a link to your site is shared on Slack, Twitter/X, or iMessage isn't magic — it's read from specific <meta> tags (`og:

Dive Deeper
Next.js Instrumentation with OpenTelemetry

Next.js Instrumentation with OpenTelemetry

"Add some logging" is usually the first response to "we can't tell what's slow in production," and it's usually the wrong one past a certain scale. L

Dive Deeper
Next.js Optimizing memory usage

Next.js Optimizing memory usage

Every Next.js project starts out light. A handful of routes, a couple of dependencies, a next dev process that boots in under a second. Then, six m

Dive Deeper
Next.js Optimizing prefetching

Next.js Optimizing prefetching

There's a ceiling to how instant a navigation can feel once you've adopted Cache Components and Partial Prefetching: the shared App Shell prefetched

Dive Deeper
Next.js Optimizing third-party libraries

Next.js Optimizing third-party libraries

This article covers a narrower, more specific tool than it might sound like at first glance. If you've read the "How to incorporate third-party libra

Dive Deeper
Next.js Optimizing package bundling

Next.js Optimizing package bundling

Every kilobyte of JavaScript shipped to the browser is a kilobyte that has to be downloaded, parsed, and executed before your app is fully interactiv

Dive Deeper
Next.js page.js

Next.js page.js

Every other special file in the App Router's vocabulary — layout.js, template.js, loading.js, error.js — exists to wrap or coordinate somethi

Dive Deeper
Next.js Parallel Routes

Next.js Parallel Routes

Most routing systems assume a page renders one thing at one URL. That assumption breaks down the moment you build a dashboard with independently-upda

Dive Deeper
Next.js permanentRedirect

Next.js permanentRedirect

Every framework that handles routing eventually needs an answer to one specific question: "this URL used to point somewhere, and now it permanently p

Dive Deeper
Next.js Implementing Partial Prerendering on your platform

Next.js Implementing Partial Prerendering on your platform

Most of the articles in this series are written for people building Next.js applications. This one isn't. If you're building a deployment platform, a

Dive Deeper
Next.js preferredRegion (deprecated)

Next.js preferredRegion (deprecated)

This reference documents an officially deprecated option. It's included here for the practical reason every deprecated API reference exists: real

Dive Deeper
Next.js Prefetching

Next.js Prefetching

Every framework with client-side navigation makes some version of the same promise — "clicking a link feels instant" — and the mechanism behind that

Dive Deeper
Next.js Preserving UI state with Activity

Next.js Preserving UI state with Activity

Before Cache Components, keeping a page's state alive across a navigation and back required real effort: hoisting state up into a shared layout so it

Dive Deeper
Next.js Preventing flash before hydration

Next.js Preventing flash before hydration

There's a specific category of UI bug that only exists because of server rendering, and it trips up almost everyone the first time they hit it: anyth

Dive Deeper
Next.js Production checklist

Next.js Production checklist

Every article in this series so far has covered one specific feature in depth. This one is different on purpose — it's the checklist you actually run

Dive Deeper
Next.js Building a Progressive Web App (PWA)

Next.js Building a Progressive Web App (PWA)

Native mobile apps have three things a website usually doesn't: a home-screen icon, the ability to send push notifications, and an app-like full-scre

Dive Deeper
Next.js Project structure and organization

Next.js Project structure and organization

Every Next.js project starts the same way: a fresh app directory with a page.tsx and a layout.tsx, and nothing else. It looks simple, almost to

Dive Deeper
Next.js proxy.js

Next.js proxy.js

If you've worked with an older Next.js codebase, you know this file by a different name: middleware.ts. As of Next.js 16, that convention is deprec

Dive Deeper
Next.js public Folder

Next.js public Folder

Not everything in an app benefits from Next.js's rendering, caching, and optimization pipeline — sometimes you just need a file served exactly as-is,

Dive Deeper
Next.js Building public/static pages

Next.js Building public/static pages

A landing page, a product listing, a blog index — the common thread across all of them is that every visitor sees the same content. Nobody's landin

Dive Deeper
Next.js redirect

Next.js redirect

Every non-trivial Next.js app eventually needs to send a visitor somewhere other than the page they asked for — bounce an unauthenticated user to `/l

Dive Deeper
Next.js refresh

Next.js refresh

If you've spent any time with Server Actions in the Next.js App Router, you've probably noticed that the UI usually just "knows" to update itself aft

Dive Deeper
Next.js Rendering Philosophy

Next.js Rendering Philosophy

Every other article in this series covers a specific feature — how to cache something, how to stream something, how to structure a route for instant

Dive Deeper
Next.js revalidatePath

Next.js revalidatePath

Every caching system eventually needs an escape hatch — a way to say "forget what you know about this one thing, go get it fresh." In Next.js, `reval

Dive Deeper
Next.js revalidateTag

Next.js revalidateTag

Caching only earns its keep if you have a reliable way to say "this specific piece of data is now wrong, go get it again." revalidateTag is that me

Dive Deeper
Next.js robots.txt

Next.js robots.txt

robots.txt is the oldest, plainest piece of SEO infrastructure a site can have — a text file at a well-known path telling crawlers what they're all

Dive Deeper
Next.js next/root-params

Next.js next/root-params

Every Next.js developer runs into the same annoyance eventually: a route parameter that belongs to the whole application — a locale, a tenant slug, a

Dive Deeper
Next.js Route Groups

Next.js Route Groups

Not every folder in your app directory needs to correspond to a URL segment. As a project grows, you'll often want to organize routes by team, feat

Dive Deeper
Next.js Route Handlers

Next.js Route Handlers

Every framework eventually has to answer the question "what if the client just needs raw JSON, not HTML?" In the Pages Router, the answer was API Rou

Dive Deeper
Next.js route.js

Next.js route.js

route.js is the file convention behind Route Handlers — the App Router's mechanism for defining custom request handlers for a given route, built di

Dive Deeper
Next.js Route Segment Config

Next.js Route Segment Config

Behind the friendly file conventions of the App Router — page.js, layout.js, route.js — sits a small set of plain exported variables that let y

Dive Deeper
Next.js instant

Next.js instant

Prefetching promises fast navigations, but a prefetched route can still feel slow in practice if something inside it — an uncached fetch, a runtime A

Dive Deeper
Next.js prefetch

Next.js prefetch

A <Link> component expresses intent — "prefetch this destination, and how eagerly." But the destination itself has no way to know, ahead of time, w

Dive Deeper
Next.js runtime

Next.js runtime

If you've read older Next.js material, you likely came across a real, meaningful choice here: render this segment on Node.js, or on the leaner, faste

Dive Deeper
Next.js Script Component

Next.js Script Component

If you've read a guide on optimizing third-party scripts in Next.js, you already know the pitch: next/script gives you a strategy prop instead of

Dive Deeper
Next.js Self-hosting your application

Next.js Self-hosting your application

Vercel built Next.js, and Vercel's platform is tuned to make every Next.js feature work with zero configuration. That convenience quietly shapes how

Dive Deeper
Next.js Server Actions and Mutations

Next.js Server Actions and Mutations

The "Mutating Data" article earlier in this series covers how to write and call a Server Action — the tutorial-level mechanics. This one is the deepe

Dive Deeper
Next.js The Server and Client Boundary

Next.js The Server and Client Boundary

The "Server and Client Components" article earlier in this series covers the basics — how to decide which one a piece of UI should be, the everyday c

Dive Deeper
Next.js Server and Client Components

Next.js Server and Client Components

If you have written even a small amount of App Router code, you have already run into the split between Server Components and Client Components, whet

Dive Deeper
Next.js Setting up instrumentation

Next.js Setting up instrumentation

Every production Next.js app eventually hits the same wall: something breaks in a way you can't reproduce locally, and by the time you find out about

Dive Deeper
Next.js Building single-page applications (SPAs)

Next.js Building single-page applications (SPAs)

There's a common assumption that "Next.js" and "SPA" describe opposite philosophies — one server-first, one client-first — and that adopting Next.js

Dive Deeper
Next.js sitemap.xml

Next.js sitemap.xml

A sitemap is how you hand search engines a structured, authoritative list of every URL on your site worth crawling — rather than relying entirely on

Dive Deeper
Next.js src Folder

Next.js src Folder

By default, Next.js expects your app (or pages) directory to sit directly at your project root, alongside package.json, next.config.js, and e

Dive Deeper
Next.js Creating a static export

Next.js Creating a static export

Sometimes the right amount of server infrastructure for a project is none at all. A marketing site, a documentation portal, a project that needs to r

Dive Deeper
Next.js Installing Tailwind CSS v3

Next.js Installing Tailwind CSS v3

This project runs Tailwind CSS 4, which is the version the official Next.js "getting started" docs point you toward by default now — so it's worth be

Dive Deeper
Next.js template.js

Next.js template.js

layout.js persists across navigations by design — that's precisely why it's useful for shared UI. But sometimes persistence is exactly what you _do

Dive Deeper
Next.js Setting up Cypress

Next.js Setting up Cypress

Of the four testing tools covered in this series, Cypress is the one that does double duty out of the box — genuine End-to-End testing and component-

Dive Deeper
Next.js Setting up Jest

Next.js Setting up Jest

Jest paired with React Testing Library is the long-established default for unit and snapshot testing in the React ecosystem, and Next.js has carried

Dive Deeper
Next.js Testing

Next.js Testing

The official Next.js docs page for "Testing" is deliberately short — it's an orientation page, pointing to four separate, tool-specific setup guides

Dive Deeper
Next.js Setting up Playwright

Next.js Setting up Playwright

Given how often this series has pointed toward "use E2E testing" as the answer for whatever a given unit-testing tool doesn't yet support — async Ser

Dive Deeper
Next.js Setting up Vitest

Next.js Setting up Vitest

Vitest is the newer entrant among this series' four testing tools, built from the ground up around Vite's tooling rather than retrofitted onto an old

Dive Deeper
Next.js unauthorized

Next.js unauthorized

Every app with a login screen eventually needs a clean way to say "you're not signed in, go log in" from deep inside a Server Component, a Server Act

Dive Deeper
Next.js unauthorized.js

Next.js unauthorized.js

unauthorized.js completes a trio of authorization-adjacent special files alongside forbidden.js and the long-standing not-found.js — and of the

Dive Deeper
Next.js unstable_cache

Next.js unstable_cache

If you've spent any time in a Next.js codebase written before the App Router's newer caching model matured, you've almost certainly run into `unstabl

Dive Deeper
Next.js unstable_noStore

Next.js unstable_noStore

Every so often you run into an API in the Next.js docs that's still fully functional, still shipped, still documented — and still flagged as somethin

Dive Deeper
Next.js unstable_rethrow

Next.js unstable_rethrow

If you've ever wrapped a data fetch in a try/catch block and watched notFound() silently stop working, you've already run into the exact problem

Dive Deeper
Next.js updateTag

Next.js updateTag

There's a specific kind of bug that makes an app feel broken even when nothing is technically wrong: a user submits a form, the page redirects to sho

Dive Deeper
Next.js Upgrade Guides

Next.js Upgrade Guides

Like a few other index pages covered elsewhere in this series, the official "Upgrade Guides" page is short by design — it's a table of contents point

Dive Deeper
Next.js Upgrading to version 14

Next.js Upgrading to version 14

Of the three version-specific upgrade guides in this series, 13→14 is genuinely the smallest — a handful of removals and renames rather than the swee

Dive Deeper
Next.js Upgrading to version 15

Next.js Upgrading to version 15

This is the middle jump of the three major upgrades covered in this series, and it's the one where the ground genuinely shifts under a lot of existin

Dive Deeper
Next.js Upgrading to version 16

Next.js Upgrading to version 16

This is the most relevant of the three upgrade guides in this series for anyone reading this blog specifically, since this project itself runs Next.j

Dive Deeper
Next.js use cache

Next.js use cache

If you've read an introductory piece on caching in the App Router, you've probably seen 'use cache' dropped at the top of a function with a one-lin

Dive Deeper
Next.js use cache: private

Next.js use cache: private

Caching and personalization usually pull in opposite directions. Caching wants one answer you can hand out to everyone; personalization wants an answ

Dive Deeper
Next.js use cache: remote

Next.js use cache: remote

If you've adopted Cache Components and started sprinkling 'use cache' through your app, you'll eventually hit a wall: some of your cached functions

Dive Deeper
Next.js use client

Next.js use client

Every component in a Next.js App Router project starts life as a Server Component. That's the default, and it's a good one — it means your components

Dive Deeper
Next.js use server

Next.js use server

If you've written a Server Action in Next.js before, you've already used use server without necessarily thinking hard about what it does. It's easy

Dive Deeper
uNext.js seLinkStatus

uNext.js seLinkStatus

Click a link in a well-optimized Next.js app and, most of the time, nothing visible happens between the click and the new page appearing. That's the

Dive Deeper
Next.js useOffline

Next.js useOffline

Every network-dependent app eventually hits the same UX problem: a user's connection drops mid-session, a request silently fails, and the interface g

Dive Deeper
Next.js useParams

Next.js useParams

Every dynamic route in the App Router hands its filled-in segments to the matching page.js and layout.js files as a params prop. That works fin

Dive Deeper
Next.js usePathname

Next.js usePathname

Every app eventually needs a component that behaves differently depending on where the user currently is — a nav link that highlights itself when act

Dive Deeper
Next.js userAgent

Next.js userAgent

Every incoming request carries a User-Agent header — a single, dense string like `Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKi

Dive Deeper
Next.js useReportWebVitals

Next.js useReportWebVitals

useReportWebVitals is the one hook in the Next.js API surface whose entire job is to hand you a stream of performance measurements as they become a

Dive Deeper
Next.js useRouter

Next.js useRouter

Most navigation in a Next.js app doesn't need any JavaScript at all — you render a <Link>, the framework prefetches it, and clicking it just works.

Dive Deeper
Next.js useSearchParams

Next.js useSearchParams

Every URL in a web app carries two kinds of information: the path, and everything after the ?. Next.js gives you a clean way to read the path (rout

Dive Deeper
Next.js useSelectedLayoutSegment

Next.js useSelectedLayoutSegment

Every layout in the App Router renders a children prop it doesn't fully control — the actual page or nested layout underneath it is decided by what

Dive Deeper
Next.js useSelectedLayoutSegments

Next.js useSelectedLayoutSegments

Breadcrumbs look like a solved problem until you actually try to build them inside a nested layout system. You can't just split `window.location.path

Dive Deeper
Next.js Using a CDN with Next.js

Next.js Using a CDN with Next.js

Putting a CDN in front of a Next.js app sounds like a five-minute job. Point your DNS at Cloudflare or Fastly, flip on caching, and enjoy sub-50ms re

Dive Deeper
Next.js Using Sass

Next.js Using Sass

This project runs on Tailwind CSS 4, which is worth saying upfront since it means everything in this article describes a path this specific codebase

Dive Deeper
Next.js Using and optimizing videos

Next.js Using and optimizing videos

Images get a dedicated, highly-optimized next/image component with automatic format conversion, resizing, and lazy loading built in. Video gets no

Dive Deeper
Next.js Designing view transitions

Next.js Designing view transitions

Route changes on the web have historically had no visual continuity — one full set of elements disappears, an entirely unrelated set appears, and not

Dive Deeper
Understanding and Utilizing WordPress Plugins

Understanding and Utilizing WordPress Plugins

WordPress stands as a beacon for web developers, bloggers, and business owners alike, offering a versatile platform to create and manage websites. Bu

Dive Deeper
What are widgets in WordPress and how to use them?

What are widgets in WordPress and how to use them?

Widgets in WordPress are modular components that enhance the functionality and design of your website. They allow you to add features like search bar

Dive Deeper
What are WordPress plugins?

What are WordPress plugins?

WordPress plugins are powerful tools that allow you to extend the functionality of your WordPress website. They are essentially software add-ons that

Dive Deeper
What are WordPress shortcodes?

What are WordPress shortcodes?

WordPress shortcodes are small pieces of code, wrapped in square brackets like [gallery], that let you add dynamic content and complex functionalit

Dive Deeper
What is a WordPress permalink and how do I change it?

What is a WordPress permalink and how do I change it?

A WordPress permalink is the permanent URL that points to a specific post, page, category, or other piece of content on your site. Unlike a temporary

Dive Deeper
What is the difference between WordPress.com and WordPress.org?

What is the difference between WordPress.com and WordPress.org?

In the world of website creation, WordPress reigns supreme as one of the most popular and versatile platforms. However, it's important to recognize t

Dive Deeper
What is the Gutenberg editor in WordPress?

What is the Gutenberg editor in WordPress?

The digital landscape is continually evolving, demanding more dynamic and versatile content management systems. WordPress, a leader in this domain, h

Dive Deeper
What is WordPress?

What is WordPress?

WordPress is the cornerstone of modern web creation, embodying a powerful platform that transcends its humble origins as a mere blogging tool. Born i

Dive Deeper
What web hosting is needed for a WordPress website?

What web hosting is needed for a WordPress website?

Choosing the right web hosting is critical to the success of your WordPress website. Hosting serves as the foundation of your site, influencing its s

Dive Deeper
WordPress Child Theme: The Key to Safe and Effective Website Customization

WordPress Child Theme: The Key to Safe and Effective Website Customization

Creating a child theme in WordPress is an essential skill for anyone looking to customize their website without compromising the integrity of the par

Dive Deeper