Skip to content
Back to home

Atharv Dange's Blog - Articles on JavaScript, Web Fundamentals, and Systems Engineering

$ls blog/

Writing on JavaScript & Web fundamentals, frameworks, tools and software engineering and things I figure out while building.

June 16, 2026·17 min read
Layouts That Persist and Data That Arrives Before You Do

Continuing to build a client-side router from scratch. This post covers what happens after the basics: how nested routes keep your navbar mounted across navigations, why the Outlet pattern is just a context counter, and how data loaders flip fetch-on-render into render-as-you-fetch with parallel execution and race condition guards.

June 12, 2026·13 min read
What Actually Happens When You Click a Link in React

I'm building a client-side router from scratch to understand what React Router and TanStack Router do under the hood. This post walks through what I've found so far: the History API that makes navigation work without reloads, why useState breaks in concurrent mode, how route patterns become regex, and the `useSyncExternalStore` hook that ties it all together.

June 10, 2026·13 min read
Why Every Sitemap Tool Fails on Modern JavaScript Apps

Traditional sitemap generators break on React, Next.js, and Vue apps. I built one from scratch that handles Clerk auth loops, redirect oscillations, and framework-specific rendering - and audited it three times to find out how wrong my initial assumptions were.

May 28, 2026·21 min read
I Built All 5 Web Rendering Strategies From Scratch. Here's What I Actually Learned

A from-first-principles case study on all five web rendering strategies - Static Site Generation, Server-Side Rendering, Client-Side Rendering, Incremental Static Regeneration, and Partial Pre-Rendering - built with zero frameworks using Node.js's built-in http module.

April 18, 2026·19 min read
I Intentionally Built a Buggy Auth System. Here's Everything That Was Wrong With It

A deliberately flawed JWT auth system, designed as a teaching exercise to surface the security holes, race conditions, and missing edge cases that survive a first-pass auth design.

April 15, 2026·23 min read
Understanding Node.js Architecture: How V8, libuv, and the Event Loop Fit Together

Node.js is more than just 'JavaScript on the server.' It's a carefully assembled runtime built on top of battle-tested components that make non-blocking I/O possible. This post breaks down how those components fit together, what they actually do, and why the design choices matter.

March 22, 2026·17 min read
Building chai-wind: How I Cloned Tailwind's Core Idea From Scratch

How chai-wind works, covering DOM scanning, inline style injection, multi-property parsing, MutationObserver-based dynamic watching, and a runtime class registration API, all built without a bundler, build step, or stylesheet.