Syntax Snack Pack: When Chalk, Debug, and Color turn against you…


A Tasty Treats NEWSLETTER for Web Developers

Issue #53:

  • HTML tips so good you’ll wonder why no one told you sooner
  • jQuery refuses to die — and it might outlive us all
  • Color-shifting CSS tricks to make your UI look like it’s in a Marvel movie
  • Hot take: What’s harder - front-end or back-end?
  • Did you see we dropped the first batch of limited-edition web dev pin packs???

🚨🗞️ BREAKING NEWS

The maintainer of 18 widely used npm packages (over 2 BILLION downloads per week in total) including debug, chalk and color - got hacked and his credentials were used to publish malicious versions of these packages.

You might not use these dependencies directly BUT your dependencies might use these, so you should check if you have any of the listed versions installed (see below for scripts).

For a detailed timeline of what happened and an analysis of the malware see this post by Aikido.

TLDR: maintainer got phished, attackers published crypto stealing malware with his credentials, npm removed the packages after 1 hour, compromised packages still got downloaded millions of times within that hour, the included malware was just crypto stealing that only worked in the browser 🤦‍♂️ (no machine persistence, RCE or other credentials stolen).

To check if you've been impacted:

  • Check your local node_modules to see if it contains the malware: grep -R 'checkethereumw'
  • Check your npm cache with this script by phxgg
  • Check your project with this script by AndrewMohawk

Thanks to this post by Security Alliance for the remediation links.

Stay safe out there - don't click links in emails, pin your package versions, eat your veggies.

- CJ

HTML tips you won’t find in most tutorials

FROM CJ

Sick tips for all you HTML programmers out there.

jQuery - The Library That Won't Die

CJ'S LINK

Why jQuery is still relevant in 2025

Color Shifting in CSS

HAND selected by cj

An exploration of color animation techniques with CSS.

just for fun:

slideventura.com - Ace Ventura sliding door simulator

fun PROVIDED by cj

Slide your mouse to re-live a classic movie scene.

All Hail The Algorithm

Some good stuff™ from the socials

The Feed

New episodes 2×/week + other new video content!

SHAMELESS PLUG

SvelteKit observability just got 10x better,
and we’re here for it

The Svelte team just rolled out full observability and tracing support for SvelteKit — making it the first ESM-based meta-framework with built-in instrumentation.

Great news for Sentry users, and a big step forward for the JavaScript ecosystem.

Syntax

Read more from Syntax

A Tasty Treats NEWSLETTER for Web Developers Issue #52: CSS Grid layouts at the push of a button 2ality shifts gears: beginner-friendly posts from a web dev deep-diver Adventures in State Space — gorgeous math puzzles in motion Spin the globe and stream live radio from literally anywhere Plus: a 6-step framework for starting new projects, brutal truths about iOS parental controls, and Scott’s instant hype over InstantDB New series of blog posts: learning web development FROM CJ Learn the...

A Tasty Treats NEWSLETTER for Web Developers Issue #51: The Prettier config that shipped malware (and how to check if you’re affected) Why one dev thinks today’s CS students are wasting their time Logic gates... in CSS? Yep, Chrome 137 just unlocked chaos pnpm quietly became your new Node version manager A file server you can run in your browser — or maybe your fridge A tic-tac-toe game made without HTML or JS (yes, really) Plus: a link that un-shortens URLs, Wes gets cocky in CSSBattle, and...

A Tasty Treats NEWSLETTER for Web Developers Issue #50: Nuxt 4.0 just dropped. Is it still your go-to full stack pick? Node.js is all grown up. These are the patterns to watch for 2025 JavaScript’s next wave: what’s landing in ES2025 and why it matters Plus: solar-powered coffee breaks, grilled CAPTCHA challenges, and why core coding skills are your AI-era superpower ENTER The History of React Through Code FROM cj A fun trip down memory lane that provides context and reason for why React is...