
Access Search Parameters in Next.js SSR'd Layout
Whilst replatforming an app, I came across this limitation in Next.js: you cannot (easily) access search parameters in an SSR layout. Here, I share my solution.
Articles
JavaScript is probably one of the most‑used programming languages in the world, and a cornerstone of front‑end (and more general) web development. It enables the development of interactivity and features that HTML and CSS alone simply cannot, and includes more advanced concepts like closures, callbacks, and asynchronous programming.
Below you will find a subset of articles from my blog specifically about JavaScript. This is an area that I have worked with for many years, and have managed to write about quite a few times. There are three hundred collected together for you below.

Whilst replatforming an app, I came across this limitation in Next.js: you cannot (easily) access search parameters in an SSR layout. Here, I share my solution.

Flatten arrays in JavaScript with flat(), recursion, stacks, depth control, compatibility notes, and performance trade‑offs for nested data safely.

How to write effective Angular unit tests that focus on behaviour, TestBed boundaries, realistic setup, and assertions that survive refactoring over time.

Find the weekday from a JavaScript date with Date, UTC alternatives, modulo arithmetic, parsing caveats, daylight saving time, and readable day names.

instanceofUncover the differences between JavaScript's `instanceof` and `typeof` for type checking, with practical examples and insights on when to use each operator.

A practical guide to implementing authentication in Next.js with NextAuth.js, including sessions, callbacks, route protection, and router‑specific trade‑offs.

reduce() in JavaScriptUnderstand JavaScript reduce() with accumulator patterns, initial values, practical examples, readability trade‑offs, and when reduce() genuinely helps.

How to build a Progressive Web App with Angular, including service workers, caching, offline behaviour, installs, and the trade‑offs behind the defaults.

{} isn't Equal to {}In JavaScript two empty objects are not equal. One of my go‑to interviewing questions, here I offer an explanation and strategies to compare object contents.

Pure functions make JavaScript easier to test, reason about, and reuse. This guide explains what purity means and why it matters in everyday code.

The Vue 3 Composition API explained with practical TypeScript examples, refs, composables, reactivity, and when the pattern genuinely helps larger components.

Angular change detection explained through zone triggers, OnPush, signals, template cost, manual checks, and practical rendering optimisation at scale.

Validate parentheses input in TypeScript with a stack, checking bracket order, matching pairs, real parser‑style use cases, and alternative approaches.

.then() in Modern JavaScript.then() still matters in modern JavaScript. This guide explains promise chaining, return values, and why Promise.prototype.then() remains useful.

Understanding `stopPropagation` and `preventDefault` is key to handling events in JavaScript. Here, I explore their differences and when to use each.

An exploration of solutions to the 'Letter Combinations of Phone Number' problem using front‑end and TypeScript: recursion, backtracking, and iteration.

vh and vwCreate custom viewport units with CSS variables and JavaScript to avoid mobile 100vh bugs caused by browser chrome, keyboards, and visible height changes.

Add seeded randomisation to an SSR Gatsby project, keeping content order deterministic across builds while still rotating destination‑style content.