
Creating Progressive Web Apps (PWAs) with Angular
How to build a Progressive Web App with Angular, including service workers, caching, offline behaviour, installs, and the trade‑offs behind the defaults.
Articles
JavaScript is the working language behind most of my front‑end writing, from small browser behaviours to application state and asynchronous code. These articles favour the mechanism behind a feature over a clever trick, whether the subject is callbacks, async code, or a language edge that only becomes obvious in production.

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.

Why view source stopped being enough for modern web checks, and how rendered HTML, hydration, metadata, schema, crawl paths, and client output changed audits.

Validate mixed parentheses and brackets in TypeScript with a stack, check nesting order, and see why separate counters and two pointers are not enough.

.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 vwUse JavaScript and CSS custom properties for viewport sizing, with working CSS fallbacks and clear limits around browser controls, keyboards, and scrollbars.

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

Convert Roman numerals to integers in JavaScript, covering subtractive notation, invalid input caveats, and a clear TypeScript implementation.

Convert integers to Roman numerals in JavaScript, covering symbol rules, greedy matching, edge cases, and a clear TypeScript implementation.

Automate copyright year updates across JavaScript, React, Angular, Vue, jQuery, PHP, and WordPress so footers do not go stale each January across stacks.

setInterval()A discussion about using JavaScript's setInterval for repetitive tasks. Manage intervals effectively and understand best practices for time‑bound executions.


Solve regular expression matching with recursive and dynamic‑programming context, covering dot and star behaviour, edge cases and TypeScript.