
The Safest Way to Test for NaN in JavaScript
Why equality, typeof and global isNaN() are unreliable JavaScript NaN checks, and when Number.isNaN() provides a safer modern alternative in practice.
Articles from more than two decades of building, rebuilding, debugging, and leading web projects.

NaN in JavaScriptWhy equality, typeof and global isNaN() are unreliable JavaScript NaN checks, and when Number.isNaN() provides a safer modern alternative in practice.

var or let or constCompare var, let, and const in JavaScript, including scope, hoisting, reassignment, block behaviour, ES6 defaults, and when each declaration fits.

Local SEO is a technical problem too, covering crawlable content, structured pages, performance, metadata, internal links, and reliable local signals.

Learn how DDoS attacks overwhelm services with distributed botnet traffic, why they are hard to block and which mitigations can reduce the risk.

Gatsby and GraphQL nodes versus edges explained through graph theory, query shape, pagination, and why Gatsby data often exposes both structures.

preload AttributeUnderstand the HTML video preload attribute, including auto, metadata, none, browser behaviour, bandwidth cost, playback expectations, and trade‑offs.

Avoid protocol‑relative URLs on modern sites, with reasons around HTTPS, security, performance, browser expectations, and clearer absolute resource loading.

Can you learn front‑end development in 2 months? Yes for fundamentals and small projects, no for mastery. Here is what eight focused weeks can realistically do.

Find web development jobs through job boards, aggregators, social networking, cold outreach, freelance routes, contract listings, and better search habits.

localStorage in JavaScriptWith HTML5, new storage APIs became available that allow us to store small amounts of non‑essential data on the client‑side without needing cookies.

Use useBreakpointValue and ChakraProvider in Chakra UI 1.8 to respond to screen sizes in React, with custom breakpoints and server‑rendering caveats.

Improve Time to First Byte by checking redirects, connections, cache hits, database queries, and origin work before deciding whether to add server capacity.

?.)Introduced as part of the ES2020 spec, JavaScript optional chaining takes some of the guesswork and convoluted if statement structuring out of accessing data.

Semantic HTML explained through meaningful elements, HTML5 structure, header, nav, footer, section, figure, accessibility, and more understandable markup.

Understand CSS positioning with static, relative, absolute, fixed, and sticky values, including containing blocks, layout effects, and common front‑end bugs.

Time To First Byte (TTFB) is a measurement of the time it takes for a server to respond to a request: how quickly your visitor can start to load your page.

A historical Gatsby sitemap‑ping workflow, with a postscript explaining Google's retired endpoint and how to keep sitemaps discoverable.

Understand CSS margin collapse, including vertical margins, parent‑child behaviour, margin transference, why it feels odd, and how to prevent it.

Change the mouse cursor with CSS using built‑in cursor values or custom assets, whilst keeping interaction cues useful and avoiding distracting effects.

vw and vhExplore CSS viewport units beyond vw and vh, including vmin, vmax, vi, vb, svh, lvh, and dvh for mobile browser chrome, writing modes, and sizing bugs.

!!) OperatorThe double bang operator turns values into explicit booleans, but it is not always the clearest option. Here's when it helps and when it does not.