
JavaScript Build Tools Before Framework Clis Took Over
A look back at JavaScript build tools before framework CLIs, covering Grunt, Gulp, Browserify, webpack, Babel, npm scripts, and everyday trade‑offs.
Articles from more than two decades of building, rebuilding, debugging, and leading web projects.

A look back at JavaScript build tools before framework CLIs, covering Grunt, Gulp, Browserify, webpack, Babel, npm scripts, and everyday trade‑offs.

Discover why working with a local web developer in Brighton matters. With local insight, tailored solutions, and reliable support, Brighton businesses benefit.

Is software engineering high paying in the UK? Usually yes after the early career stage, though pay varies a lot by location, sector, seniority, and company.

prototype.apply() in JavaScriptUnderstand Function.prototype.apply() in JavaScript, including this binding, array‑like arguments, call() differences, dynamic invocation, and modern use cases.

Explore the 'Longest Palindromic Substring' problem: its relevance in web development and four JavaScript (ES6 & TypeScript) solutions for efficiency.

text‑wrap: balanceExploring the synergy of `text‑wrap: pretty` and `text‑wrap: balance` in web typography, enhancing text aesthetics and readability in different contexts.

Master the 4Sum problem in JavaScript: Explore the two‑pointer technique, solve with ES6/TypeScript, and test using Cypress. Elevate your coding skills.

text‑wrap: prettyAn exploration of the power of `text‑wrap: pretty` in CSS, a simple but very effective way to enhance web typography by preventing orphans in blocks of text.

Why old jQuery plugins became front‑end debt, from hidden state and global CSS to accessibility gaps, browser assumptions, migration cost, and ownership.

hasOwnProperty() MethodDiscover JavaScript's `hasOwnProperty()` for checking an object's own properties, an essential method for accurate and reliable object property iteration.

Solve 3Sum Closest in JavaScript with sorting and two pointers, reducing brute‑force work whilst finding the nearest total efficiently in TypeScript.

Deduping an array involves removing duplicate values to ensure each item appears only once. Here, I explore different JavaScript techniques to achieve this.

Solve LeetCode Add Two Numbers in TypeScript with linked‑list traversal, carry handling, edge cases, and a clear implementation you can test and extend.

CSS trigonometric functions open up more expressive layout and animation patterns. This guide covers sin(), cos(), tan(), and practical examples.

Solve the 3Sum problem in JavaScript with sorting, two pointers, duplicate skipping, Jest coverage, edge cases, and a clear TypeScript implementation.

typeof Operator: Uses and LimitationsExplore the usage and limitations of JavaScript's `typeof` operator, understand its quirks, and learn when and how to use it effectively in your code.

Will AI replace front‑end developers? This article separates routine automation from judgement, accessibility, browser knowledge, product context, and UX.

I am not a fan of carousels, although I have built many in my career. Here, I discuss why they hinder UX and SEO, and explore alternatives for engaging content.

Falsy and nullish values are not the same in JavaScript. This guide clears up the difference and shows why 0 and empty strings often trip people up.

parseInt in JavaScript: The Significance of RadixParseInt() can give surprising results if you ignore radix. This guide explains why the second argument matters and when Number() is a better fit.

Solve Longest Substring Without Repeating Characters in JavaScript with a sliding window, unique‑character tracking, and substring return variants.