Profile avatar
humanwhocodes.com
Human who codes. Creator of @eslint.org. Author. Speaker. Advisor. Coach. Mastodon: https://fosstodon.org/@nzakas Blog: https://humanwhocodes.com Coaching: https://humanwhocodes.com/coaching
830 posts 5,201 followers 45 following
Prolific Poster
Active Commenter

TIL MCP resources are meant to be data sources a user must explicitly include in a request. That means data sources meant for an LLM to discover and use autonomously must be tools.

The team replacing my HVAC system unexpectedly cut my power in the middle of the day. My Cyberpower UPS kicked in and the only reason I knew there was an issue was because my desk lamp went out. So glad I have it.

We are seeing some pretty amazing speedups using the multithreaded ESLint prototype. Folks reporting 1.3-3.0x improvement. You can give it a try too, we'd love more benchmarks: https://github.com/eslint/eslint/pull/19794

Does anyone know the story here?

Language plugins are a huge win for DSLs. Get all the power of ESLint with a fraction of the work vs. creating your own linter.

The CSS `@charset` rule is not an at-rule, but it is a rule, only it's unrecognized and should be treated as invalid. What? https://drafts.csswg.org/css-syntax/#charset-rule

In case you missed it, I wrote up how I’m using AI to code nontrivial things.

We could use some help testing this out.

In my latest blog post, I discuss how thinking of AI as a team of personas has improved my AI-assisted programming workflow. I've found this approach helpful for building non-trivial features. https://humanwhocodes.com/blog/2025/06/persona-based-approach-ai-assisted-programming

Putting the finishing touches on a blog post for tomorrow. I'm going to explain how I currently use AI to implement non-trivial features. This is the result of a lot of trial and error, and I'm excited to share this approach with everyone.

Friendly reminder that CommonJS functionality is frequently unspecified and often falls somewhere between "script" and "module" programs as defined by ECMA-262. It's really time to stop using CommonJS. https://github.com/nodejs/node/issues/58663

AI IDE showdown! I asked both Windsurf and GitHub Copilot to implement an auth flow using Supabase (creating all UI plus making it work). Both used Claude 3.7. The result? Windsurf got this working almost immediately (1 edit). GitHub Copilot couldn't get it working with direct instructions.

Introducing tailwind-csstree, a CSSTree extension that enables parsing of Tailwind-specific syntax with CSSTree (and the ESLint CSS plugin): https://www.npmjs.com/package/tailwind-csstree Just a few edge cases left to address (check the issues) but should work for most code.

AI IDEs and GPT-4.1 are a struggle. In both GitHub Copilot and Windsurf, GPT-4.1 is okay for 2-3 prompts, but then after that starts telling me what to do instead of doing it. This model seems to need a very specific instruction to do the work.

One peculiar thing I've noticed when using GPT-4.1 in Windsurf is that it tends to tell me what to run in the terminal instead of just running it (Claude typically just runs it).

The trouble with Claude 4 in GitHub Copilot continues. It doesn't seem to constrain itself to the initial request and goes off in other directions for way too long. My experiment ends here. 3.7 from now on.

My new approach to AI-assisted coding: Ask Gemini 2.5 Pro to design a system (or database, etc.) that fulfills some functional requirements. Then ask GPT 4.1 to implement the design. Working great so far for non-UI stuff.

Grateful to Ömer for what has become such an identifiable mark for the project.

I'm excited to share that I've been named a GitHub Star! https://stars.github.com/profiles/nzakas/ I'm not sure who nominated me, but I appreciate it.

Kind of bummed out that the Supabase MCP server doesn't work with local instances.

My first day vibe coding and I'm getting frustrated. What do y'all do when you just can't tickle the LLM to get the UI you have in mind? If I'm not supposed to hand edit the code, how do you resolve such a thing?

If you're waiting for eslint-config-airbnb to get updated for ESLint v9 before migrating, please give this alternative a try and let us know how it works: https://github.com/NishargShah/eslint-config-airbnb-extended/issues/10#issuecomment-2928085279

If you're waiting for eslint-config-airbnb to get updated for ESLint v9 before migrating, please give this alternative a try and let us know how it works: https://github.com/NishargShah/eslint-config-airbnb-extended/issues/10#issuecomment-2928085279

Giving Windsurf a try. It feels more helpful than GitHub Copilot in VS Code but still seems to struggle with some basic stuff like getting Tailwind 4 styles to show up on an Astro page.

So disappointed that Pocket is shutting down. I use this every single day. https://getpocket.com/farewell

Am I the only one who accidentally uses prompts when talking to people in real life? Like, "I'd love to hear about your trip. Don't use emdashes in your response."

Getting buy-in on a large-scale project as an IC can be challenging. In my next newsletter (dropping Tuesday), I'll discuss how to go about this in a way that makes people want to help. Sign up now so you don't miss it: https://newsletter.humanwhocodes.com

So far, Claude 4 is a thumbs down for me. In Copilot, it starts over automatically after it completes the requested task. Can't really walk away from the computer because it just keeps going.

Are you still using ESLint v8.x? I'd like to know what we can do to help you upgrade to the v9.x line.

ESLint v9.0.0: A retrospective - ESLint - Pluggable JavaScript Linter @humanwhocodes.com @eslint.org eslint.org/blog/2025/05... #ECMAScript #JavaScript