RSSAmplifier

Blog

Software Engineering and Technical Articles by John Kavanagh

Technical articles by John Kavanagh on the practical work, decisions, and trade-offs involved in building and modernising web platforms.

johnkavanagh.co.ukRSS feed ↗100 posts

Latest posts

The Talent Bar Paradox in Engineering Hiring

Companies talk about a high hiring bar, but weak offers, slow interviews, and vague criteria drive strong engineering candidates out long before a decision.

The Web is Becoming Machine‑Readable First

Machine-readable websites need more than schema. They need stable pages, clean entities, useful metadata, feeds, APIs and content that survives extraction.

Converting Objects to Query Strings and Vice Versa

Converting objects to query strings is essential for handling URLs in JavaScript. Here, I explore encoding, parsing, and managing query parameters in Next.js.

The False Economy of Cheap Engineering

Cheap engineering can shrink payroll, but it often increases rework, instability, contractor spend, supplier dependence, and total delivery cost later.

HTTP Cache Validation with ETag and Last‑Modified

ETag and Last-Modified drive conditional HTTP requests and 304 responses. See how precedence, weak validators, CDNs, and cache policy affect revalidation.

Best Practices for Managing Environment Variables in Next.js

Best practices for managing environment variables in Next.js, so secrets stay server-side and deployments do not freeze the wrong values at build time.

Production Observability for Next.js: Instrumentation, Logs, and Release Debugging

Approach production observability in Next.js with contextual logs, traces, release markers, client errors, cache signals, build visibility, and business data.

The False Economy of Cutting QA in the AI Delivery Era

AI-assisted delivery can increase throughput, but cutting QA, accessibility, SEO, security, and exploratory testing in response is a costly mistake.

Everyone Wants the Best Engineers. Fewer Companies Want to Pay for Them.

Underpaying senior engineers can look efficient on payroll, but often costs more through weaker hiring, slower delivery, contractor spend, and retention risk.

Your Website Has a New Customer: The AI Agent

AI agents are starting to research, compare and narrow buying choices. Websites need to serve autonomous evaluators before human visitors arrive.

AI Slop is a Symptom, Not the Disease

AI slop is a symptom of weak incentives, not just weak tools. This article links generic output to shallow briefs, poor review, and volume-led metrics.

Faceted Navigation SEO in Headless Commerce: Filters, Canonicals, and Crawl Control

Handle faceted navigation SEO in headless commerce with URL policy, canonicals, crawl control, product data, internal links, and filter-page content.

The Platform Dependency Trap: When Efficiency Becomes Lock‑In

Platforms can speed delivery, but cutting internal capability too far can turn efficiency into lock-in, weak negotiating power, and expensive migrations later.

Right to Represent Agreements for UK Contractors

Right to Represent agreements for UK contractors, covering recruiter pressure, duplicate submissions, hybrid working changes, and safer wording before signing.

Error Handling in JavaScript with try, catch, and finally

Go beyond basic try/catch in JavaScript with finally, custom errors, async error handling, testing, user-facing failures, and defensive-code traps.

Gatsby Build Times are Slow: Fix or Migrate?

Slow Gatsby builds need a clear choice: optimise plugins, data, and images in place, or move to Next.js when publishing and cache limits justify it.

When AI Search Creates Visibility Without a Visit

AI search creates visibility that is not just a ranking, click or citation. Sites need to be retrievable, quotable, attributable, and comparable by machines.

The AI Governance Gap in Digital Transformation

AI programmes are often adopted tactically, without enough governance for supplier risk, data exposure, quality, workforce impact, or board accountability.

GTM, Consent Tools, and Core Web Vitals: How to Audit Third‑Party Script Cost

Audit third-party script cost across GTM, consent tools, analytics, experimentation, and personalisation, without breaking measurement or business workflows.

Why AI Makes Senior Engineers More Important, Not Less

As AI reduces friction in implementation, the value of architecture, review, domain judgement, mentoring, and failure analysis rises rather than falls.

Gatsby to Next.js Migration Checklist

A practical Gatsby to Next.js migration checklist covering routes, data, rendering, plugins, images, redirects, preview, sitemaps, and SEO validation.

The Automation Tax No One Measures

Automation can save labour, but it also creates monitoring, exception handling, vendor, governance, and security costs that many business cases ignore.

Contentful to Sanity Migration Checklist for Next.js Sites

A practical Contentful to Sanity migration checklist for Next.js sites, covering schemas, references, preview, redirects, metadata, and SEO checks.

SEO Best Practices in Next.js: Improving Core Web Vitals

SEO best practices in Next.js, with a sharper focus on Core Web Vitals, stable layouts, lighter bundles, metadata, and real user measurement for search.

Google's Search Monopoly Was Built on a Deal. AI is Rewriting It.

Google's old exchange was simple: crawl the web and send traffic back. AI search weakens that bargain by answering more journeys before the click.

Why Your Next.js App Router Page is Stale: Cache Tags, Revalidation, and CMS Publishing

Debug stale Next.js App Router pages with cache tags, revalidation paths, CMS webhooks, preview freshness, dependency graphs, and simpler cache contracts.

Contentful to Sanity Migration Risks for Next.js Sites

Contentful to Sanity migration risks for Next.js sites, including models, references, rich text, preview, metadata, redirects, and launch checks.

AI and the Collapse of Organisational Memory

AI knowledge retrieval can weaken organisational memory when summaries hide context, dissent, incident history, product reasoning, and uncertainty.

CMS Preview Should Be a Migration Requirement, Not an Afterthought

Why CMS preview belongs in the migration plan for Next.js sites, covering draft state, auth, cookies, iframes, cache invalidation, and governance.

The Hidden Cost of Replacing Juniors with AI

Replacing juniors with AI can weaken capability formation, mentoring, and future hiring. This article explains the long-term organisational cost.

The Web Just Invented a Toll Booth for AI

Cloudflare Pay Per Crawl, AWS WAF AI Traffic Monetization and AI crawlers show crawler access becoming commercial infrastructure, not just bot control.

Should You Move from Contentful to Sanity?

How to decide whether moving from Contentful to Sanity makes sense for a Next.js website, including workflow, modelling, preview, and migration risk.

AGI vs. AI vs. ASI: What Actually Changes?

A practical explanation of AI, AGI and ASI for engineering and product teams, covering capability, autonomy, risk, governance, and real-world impact.

A Deep Dive into JavaScript's Proxy and Reflect API

A look into how JavaScript's Proxy and Reflect APIs work together to intercept and redefine object behaviour, including practical use cases and common patterns.

Fixing Contentful Preview in Next.js Draft Mode

Fix Contentful preview in Next.js by checking Draft Mode, preview URLs, iframe cookies, draft data boundaries, auth, performance, and editor trust.

Union‑Find Explained: Solving the 'Number of Provinces' Problem

Solve Number of Provinces with union-find in TypeScript, comparing DFS, connected components, path compression, union by rank, and matrix scanning.

Privacy by Design is Not a Cookie Banner

Privacy by design means building safer data handling into platforms, analytics, CRM integrations, and workflows from the start, not relying on banners later.

The Great AI Content Collapse: Why Cheap Content Makes Real Expertise More Valuable

The AI content collapse makes cheap publishing less valuable, shifting durable content strategy towards proof, authorship, structure, trust, and expertise.

The AI Middle Manager Problem

AI can automate management reporting, but this article separates status theatre from judgement, coaching, accountability, and real prioritisation.

Next.js Build Failing on Vercel: How to Find the First Real Failure

A practical way to debug failing Next.js builds on Vercel, from first useful error lines and environment drift to route generation and memory pressure.

Technical GEO for Websites: Entities, Structured Data, and Crawl Paths

Technical GEO for websites, covering indexing, renderability, entity clarity, structured data, and crawl paths without inventing an AI-only markup layer.

State Management in Angular: NgRx vs. SignalStore

NgRx Store vs. SignalStore explained with real Angular trade-offs, including scope, TypeScript ergonomics, devtools, effects, and when neither is necessary.

Schema for Service Pages Without Overclaiming

Model service page schema without overclaiming by matching visible content, Service data, OfferCatalog, breadcrumbs, FAQs, entities, and proof clearly.

How Service Pages Become Answerable in AI Search

How service pages become easier for AI search to retrieve and summarise through clear problems, visible proof, internal links, schema, and answers.

AI is Making Technical Debt Cheaper to Create

AI coding tools make code faster to produce, but technical debt still needs review, ownership, tests, documentation, and senior engineering judgement.

Traffic Dropped After a Replatform: The Technical Checks I Run First

Diagnose traffic drops after a redesign, migration, or replatform by checking route parity, rendered HTML, redirects, canonicals, sitemaps, and schema.

E‑Commerce SEO Migration: Product and Category Pages in Next.js

How to migrate e-commerce product and category pages to Next.js without losing SEO value, including URLs, filters, schema, canonicals, and redirects.

The AI Productivity Mirage: When More Output Does Not Mean More Value

AI can inflate output without improving outcomes. This article explains why weak metrics, faster generation, and shallow review create a productivity mirage.

AI Will Be OK If We Stop Treating It Like Magic

AI will be OK if teams treat it as real technology, not magic, with adoption shaped by judgement, skills, governance, shared access, and careful autonomy.

Should You Move a Shopify Storefront to Next.js?

Decide whether Shopify to Next.js is worth it by weighing storefront control, SEO, performance, checkout, apps, content workflow, cost, and risk.