February 13, 2026
Bots vs $: pick a side
I asked Claude Code to remove jQuery. It failed miserably
Ranting dev’s bot fails, and the internet fights: keep jQuery or join the AI hustle
TLDR: A developer says Claude Code bungled a simple cleanup of old jQuery with rookie errors. Comments split between AI boosters yelling “adapt or be underclass,” jQuery loyalists warning “never remove jQuery,” and pragmatists claiming other tools work—proof that AI gains depend on setup and oversight, not magic.
An exasperated dev tried using Claude Code, an AI coding assistant, to strip out jQuery—an older web helper—from a bunch of admin pages. He set rules, helper functions, even a review bot. Then it faceplanted: grabbing elements that don’t exist, breaking basic browser rules, and ignoring cautions like MDN’s warning about scripts in modules. Cue the fireworks: the rant was spicy, the tech mistakes were basic, and the comment section turned into a cage match.
The strongest voices? The AI hustle crowd vs. the leave jQuery alone loyalists. One power user bragged about 20x productivity and dropped the immortal line: “Adapt or be underclass.” Meanwhile, a purist shouted, “You don’t remove jQuery. EVER. You’ll lose all the $,” turning the library’s dollar-sign mascot into the day’s meme. Others dunked on the whole project—“Just use sed,” a Unix tool—while calm pragmatists chimed in: different tools work; Codex (another AI) fixes bugs fine on big codebases. A few said their jQuery-to-vanilla rewrites went great, making it a classic internet split-screen: rage-post meets receipts, hype vs. reality, and everyone convinced the other side is “holding it wrong.”
Key Points
- •The author attempted to use Claude Code (Opus 4.6) to replace jQuery with vanilla JavaScript across ~67 small edits in simple admin pages.
- •Preparatory work included a detailed CLAUDE.md, helper functions (e.g., _id wrapper), custom fadeIn/fadeOut via CSS transitions, and explicit edge-case guidance.
- •The AI produced multiple technical errors, including using document.currentScript inside module scripts and referencing non-existent DOM elements without optional chaining.
- •It generated invalid CSS selector usage (e.g., querySelectorAll on IDs starting with digits) and ran inline code without waiting for DOMContentLoaded, causing potential load-order issues.
- •Lifecycle differences between jQuery’s $.html() and vanilla JS insertion methods (createContextualFragment/createElement) were highlighted, noting scripts execute but DOMContentLoaded is not triggered in the latter.