
Why JavaScript Pages are Crawled but Not Indexed
Why JavaScript pages get crawled but not indexed, covering rendered content, metadata, canonicals, links, noindex rules, quality, and crawl signals.
Articles
Development is the broadest category in my writing, so it works as the main archive rather than a narrow subject label. It brings together implementation notes and technical decisions, with delivery lessons from across the rest of the site.

Why JavaScript pages get crawled but not indexed, covering rendered content, metadata, canonicals, links, noindex rules, quality, and crawl signals.

The 'Course Schedule' problem tests our ability to detect cycles using graph traversal. I'll explain a clear solution using depth‑first search with TypeScript.

A React SPA to Next.js SEO migration checklist for preserving indexing, redirects, metadata, rendered HTML, internal links, crawl paths, and launch confidence.

How to test Vue components with Vue Test Utils using realistic interactions, focused assertions, better test boundaries, and less brittle design.

How to solve Search in Rotated Sorted Array with modified binary search, identifying the sorted half each step and narrowing safely in TypeScript.

Greener software starts with engineering discipline: lighter pages, fewer wasted requests, better caching, leaner CI, and deliberate use of AI compute.

The 'Merge Two Sorted Lists' problem on LeetCode involves combining two sorted linked lists into one. Here, I explore a clear solution with TypeScript examples.

Solve Koko Eating Bananas with binary search on the answer, using feasibility checks, speed bounds, ceiling division, TypeScript examples, and edge cases.

Tail call optimisation in JavaScript, why it matters conceptually, and why patchy engine support still makes it unreliable for production recursion.

WeakMap and WeakSet in JavaScriptUse WeakMap and WeakSet for metadata and membership without retaining keys, understand value types, and distinguish collection from guaranteed cleanup.

React's virtual DOM describes the UI before reconciliation updates the browser DOM. I explain the costs, list keys and why performance still needs measuring.

Managing routes in large Vue applications can become challenging. Here, I share practical best practices for structuring Vue Router to keep apps organised.

Garbage collection in JavaScript frees up unused memory automatically. Here, I explain how it works and how to prevent memory leaks in your applications.

How to implement server‑side rendering in Vue, with a clearer mental model for hydration, data loading, caching, and where SSR actually pays off.

Solve Daily Temperatures with a monotonic stack in TypeScript, storing indices to find the next warmer day without repeated scanning and common mistakes.

Generate valid parentheses in TypeScript with backtracking, recursion state, pruning, edge cases, and why the approach avoids invalid strings in code.

Implement a Trie prefix tree in TypeScript with Map‑based nodes, insert, search, startsWith, shared prefixes, complexity, and alternative child storage.

How to build efficient recursive functions in JavaScript, with better base cases, less repeated work, and a clearer sense of when recursion fits naturally.