Skip to main content

Blog

Web Development

Articles on Next.js, React, TypeScript, and modern web app architecture — performance, SEO, and real-world frontend engineering patterns.

90 articles

How to Build an Accessible Website in Next.js (Beginners)
Web DevOctober 202610 min read

How to Build an Accessible Website in Next.js (Beginners)

How to build an accessible Next.js website for beginners: semantic HTML, labels, skip link, focus ring, contrast, reduced motion and quick checks.

Read More
How to Run the Node Test Runner in Next.js for Beginners
Web DevOctober 20269 min read

How to Run the Node Test Runner in Next.js for Beginners

How to run the Node test runner in Next.js for beginners: write a first test, read a failure, test an API handler, then gate CI with npm test.

Read More
How Next.js Caching Works: Static, Dynamic and Revalidate
Web DevOctober 202610 min read

How Next.js Caching Works: Static, Dynamic and Revalidate

Beginner guide to how Next.js static and dynamic caching works: read build output symbols, generateStaticParams, revalidate, then check headers with curl.

Read More
How to Improve Core Web Vitals in Next.js for Beginners
Web DevOctober 202610 min read

How to Improve Core Web Vitals in Next.js for Beginners

How to improve Core Web Vitals in Next.js for beginners: measure LCP, CLS and INP, tune next/image priority and sizes, use next/font, fix common errors.

Read More
How to Build Next.js Middleware: Matcher, Redirect, Rewrite
Web DevOctober 202610 min read

How to Build Next.js Middleware: Matcher, Redirect, Rewrite

A beginner guide to building Next.js middleware: middleware.ts, matcher, redirect, rewrite, headers and testing with curl, plus the most common errors.

Read More
How to Build an API in Next.js with Route Handlers (route.ts)
Web DevOctober 202610 min read

How to Build an API in Next.js with Route Handlers (route.ts)

Beginner guide to building an API in Next.js: route.ts, GET and POST, input validation, status codes, one JSON error shape, client fetch, contact form.

Read More
How to Add SEO Metadata in the Next.js App Router for Beginners
Web DevOctober 202610 min read

How to Add SEO Metadata in the Next.js App Router for Beginners

How to add SEO metadata in the Next.js App Router for beginners: generateMetadata, canonical, hreflang, Open Graph, sitemap.ts, robots.ts and common errors.

Read More
How to Build a Playwright Smoke Test in GitHub Actions
Web DevOctober 20269 min read

How to Build a Playwright Smoke Test in GitHub Actions

How to build a Playwright smoke test for beginners: install, write three critical-path checks, run them in GitHub Actions and upload the HTML report.

Read More
Server vs Client Components in Next.js: A Beginner Guide
Web DevOctober 202610 min read

Server vs Client Components in Next.js: A Beginner Guide

The difference between server and client components in Next.js for beginners: use client, props, the children pattern, a decision table and common errors.

Read More
Next.js Standalone Docker Image Size: A Real Dockerfile
Web DevSeptember 202611 min read

Next.js Standalone Docker Image Size: A Real Dockerfile

What Next.js output standalone actually produces, the two directories file tracing never copies, and the three-stage Dockerfile this site deploys to a self-hosted VPS.

Read More
Claude Code Plugin for Next.js: Skill, Hook, Subagent
Web DevSeptember 202612 min read

Claude Code Plugin for Next.js: Skill, Hook, Subagent

An agent put use client at the top of a route file and the whole page shipped to the browser. The type checker said nothing. Here is the plugin I wrote for that stack in full — manifest, skill, hook, subagent — and which of the four I deleted.

Read More
Claude Code Artifacts: Publish a Page From a Session
Web DevAugust 202612 min read

Claude Code Artifacts: Publish a Page From a Session

An artifact is a live, interactive page on claude.ai published straight from a session. Here are the constraints that shape it and where it silently will not work.

Read More
Answer Engine Optimization (AEO): Get Cited by AI Search
Web DevAugust 202610 min read

Answer Engine Optimization (AEO): Get Cited by AI Search

How I structure articles so ChatGPT, Perplexity, and Google AI Overviews quote them — answer-first writing, FAQPage and TechArticle schema, and measuring AI-referral traffic.

Read More
Speculation Rules API: Instant Prerender and Prefetch in Chrome
Web DevAugust 20269 min read

Speculation Rules API: Instant Prerender and Prefetch in Chrome

How I use the Speculation Rules API to prefetch and prerender pages in Chromium — the JSON syntax, eagerness levels, document rules, and how it differs from Next.js Link prefetch.

Read More
JavaScript Temporal API: The Modern Replacement for Date
Web DevAugust 20269 min read

JavaScript Temporal API: The Modern Replacement for Date

Why the Date object is broken and how Temporal fixes it with immutable types, first-class time zones, and DST-safe math — plus the current browser status.

Read More
Next.js 16: Migrate middleware.ts to proxy.ts
Web DevAugust 20269 min read

Next.js 16: Migrate middleware.ts to proxy.ts

Next.js 16 renamed middleware.ts to proxy.ts. Here is the mechanical migration, the silent trap that exposes routes, and why auth must move to your data layer after CVE-2025-29927.

Read More
Next.js Cache Components and the use cache Directive
Web DevAugust 20269 min read

Next.js Cache Components and the use cache Directive

How Cache Components flips Next.js to dynamic-by-default and hands you explicit caching through the use cache directive, cacheLife profiles, and cacheTag invalidation.

Read More
Next.js Hydration Errors: Causes and How to Fix Them
Web DevAugust 20269 min read

Next.js Hydration Errors: Causes and How to Fix Them

What the Next.js hydration mismatch error really means, the handful of causes behind it, and how I fix each one with useEffect, dynamic imports, and suppressHydrationWarning.

Read More
Securing Next.js Server Actions: Auth, IDOR & Zod Validation
Web DevAugust 202610 min read

Securing Next.js Server Actions: Auth, IDOR & Zod Validation

Every use server function is a public POST endpoint. How I harden Next.js Server Actions with per-action auth, ownership checks, Zod validation, and rate limiting.

Read More
Astro 5 Server Islands & Content Layer API: What's New
Web DevJuly 20269 min read

Astro 5 Server Islands & Content Layer API: What's New

Astro 5 shipped Server Islands, a stable Content Layer API, and typed astro:env — how each one works and when I actually reach for it.

Read More
Svelte 5 Runes: $state, $derived, $effect Reactivity
Web DevJuly 20269 min read

Svelte 5 Runes: $state, $derived, $effect Reactivity

Why Svelte 5 dropped the compiler-magic reactive model for explicit runes — how $state, $derived, $effect, and $props work, the signals under the hood, and how to migrate.

Read More
HTMX and the Hypermedia-Driven Application Approach
Web DevJuly 20269 min read

HTMX and the Hypermedia-Driven Application Approach

How HTMX revives the hypermedia model — hx-get, hx-swap, and HTML fragments instead of a JSON API — where it shines, where it does not, and what htmx 2.0 changed.

Read More
Tailwind CSS v4: Oxide Engine and CSS-First Config
Web DevJuly 20269 min read

Tailwind CSS v4: Oxide Engine and CSS-First Config

Tailwind CSS v4 is a ground-up rewrite on the Rust Oxide engine: CSS-first theme config, automatic content detection, and builds up to 5x faster.

Read More
React Compiler: Automatic Memoization Without useMemo
Web DevJuly 20269 min read

React Compiler: Automatic Memoization Without useMemo

React's build-time compiler now memoizes components and hooks for you. Here is what it does, how to wire it into Babel, Vite, and Next.js, and where it can still bite.

Read More

More in this category