
The Execution Context in JavaScript
Execution context defines how JavaScript code runs, from global scope to function calls. Here, I explore how it works in browsers, React, Next.js, and Node.js.
Articles
Node.js is a cross‑platform, open‑source JavaScript runtime environment which executes JavaScript code outside a web browser. It allows us front‑end developers the opportunity to write code on the back‑end without the need to learn a more sophisticated back‑end language.
Below you will find a subset of articles from my blog specifically about Node.js. This is an area that I have worked with for many years, and have managed to write about quite a few times. There are twenty collected together for you below.

Execution context defines how JavaScript code runs, from global scope to function calls. Here, I explore how it works in browsers, React, Next.js, and Node.js.

When you set up a custom domain in Vercel, the default `vercel.app` subdomain still serves your site, which can lead to duplicate content. Here's how to fix it.

Vue 3 replaces Vue 2's getters and setters with JavaScript proxies. This article explains how they differ and why proxies improve Vue's reactivity system.

Middleware in Next.js provides a straightforward way to protect routes and manage user authentication. Here, I show how to implement effective route protection.

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

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

mini‑css‑extract‑plugin Warnings in GatsbySeeing Conflicting Order warnings in your Terminal whilst building your Gatsby project is not uncommon, but fortunately is very easy to fix (or suppress) too.
Gatsby and GraphQL nodes versus edges explained through graph theory, query shape, pagination, and why Gatsby data often exposes both structures.
You can let Google know that your website (and the content within) has been updated by submitting an updated sitemap automatically via a simple Node.js script.
Static site generators trade runtime complexity for build‑time output. This article looks at the benefits, the drawbacks, and where they fit best.
Fix window is not defined in Gatsby or Next.js by understanding SSR, guarding browser globals, lifecycle timing, dynamic imports, and third‑party modules.

Set up Gatsby on an M1 MacBook Air with Xcode, Homebrew, NVM, Node.js, vips, Yarn, the Gatsby CLI, dependency reinstall steps, and native image dependencies.

Disable Gatsby telemetry cleanly, with context on what anonymous analytics collect, why teams opt out, and how the setting affects local and CI work.

Replace Gatsby inline styles with an external stylesheet when needed, weighing render speed, caching, CSS Modules, styled‑components, and cleaner output.
Although an extremely useful aspect of Gatsby, source maps cause a performance hit as well as leaving your source exposed. Here is how to turn them off!

Add static files to a Gatsby site using the static folder, with notes on build output, verification files, legacy assets, and when not to process files.

Deploy a static Gatsby build over FTP with environment variables, ftp‑deploy, build scripts, and a practical CI flow for conventional or legacy hosting.

Static site generation has continued to grow and grow in popularity. I try and explain what one is, and why it might be suitable to you or your project.