Skip to main content

Tag: Next.js

10 posts

Posts
Colorful tags and labels sorted into rows

Client-Side Tag Filtering Without Losing SEO URLs

One component renders Link for crawlable tag pages or button for instant client filtering. The same TagChipStrip serves both without duplicating code.

2 min read
A single bright thread connecting scattered fabric swatches on a table

Killing Split-Brain Content with One Metadata Export

How moving cover images, titles, and excerpts into MDX metadata eliminated 680 lines of duplicate records and the silent drift between them.

3 min read
A shield icon protecting a circuit board

Sentry Should Be Optional in Your Next.js App

A single boolean guard across three runtimes keeps Sentry from crashing local dev when the DSN is missing.

1 min read
A funnel pouring colored liquid into a glass flask

Correlating a Multi-Step Funnel with One sessionStorage ID

A timestamp and random suffix in sessionStorage ties scan, completion, email capture, and calendar booking into one GA4 funnel with zero backend state.

2 min read
Search results with ranked filters on a screen

Upgrading cmdk Search with MiniSearch Field Boosting

cmdk does substring matching. Keeping its UI shell and swapping the filter engine for MiniSearch gives ranked, fuzzy results with match highlighting.

2 min read
A command palette interface on a dark screen

Site Search Without a Server: Static Index and cmdk

A build-time search index and cmdk power Cmd+K search across 47 pages with zero API calls.

2 min read
An hourglass with sand flowing through it

An 8-Second Timeout for Third-Party Iframes

An iframe that never loads looks like a broken page. An 8-second timeout and a direct booking link keep users moving instead of staring.

2 min read
Two puzzle pieces fitting together on a clean surface

Fixing Hydration Mismatches Without Suppressing Them

A three-line useSyncExternalStore hook helps server and client renders agree, no more suppressHydrationWarning.

2 min read
Tangled cables forming a circular loop

Why import type Isn't Optional: A Circular Dependency Crash

How a subtle difference between import and import type causes a circular dependency crash in a Turbopack-bundled Next.js app.

2 min read
An abstract network of connected nodes glowing in blue

Building a Unified Content Pipeline with Next.js and MDX

How a single content registry replaces duplicated per-type data files, cutting the cost of adding new content types from 6+ files to 3.

2 min read