
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 outside the browser. The interesting part is not that front‑end engineers can avoid another language; it is that the same language can support servers and build tooling whilst taking on a very different set of runtime responsibilities.

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.

Protect Next.js routes with Proxy, formerly Middleware, using authentication, authorisation, matchers, API request checks and current terminology.

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 whilst 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's inlined production CSS with an external stylesheet by rewriting headComponents, with performance trade‑offs and historical context.
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 generators explained in plain English, including how they compare with SSR, ISR and modern framework rendering choices.