Josh Goldberg
banner
joshuakgoldberg.com
Josh Goldberg
@joshuakgoldberg.com
Open source developer

👨‍💻 Bingo, create-typescript-app, ESLint, Flint, Mocha, OctoGuide, typescript-eslint...
👪 Boston TS Club & SquiggleConf
✍ Learning TypeScript (O'Reilly)
🌟 Microsoft MVP
💌 TC39 Invited Expert

https://joshuakgoldberg.com
Pinned
📮 What Flint Does Differently

Flint is an experimental linter. It intentionally revisits many of the core design decisions from other popular web linters.

Please enjoy this medium dive how Flint's intentionally deviating from other linters and trying new things. ❤️‍🔥

www.flint.fyi/blog/what-fl...
What Flint Does Differently
[Experimental] A fast, friendly linter. ❤️‍🔥
www.flint.fyi
🙌 My NodeTLV talk is live!

Web dev tooling! Formatters! Linters! Type Checkers! Pruning! Templates! All that and more!

www.youtube.com/watch?v=1JSE...
Josh Goldberg @ NodeTLV '25 | Keynote: Tooling Like It’s 2025
YouTube video by NodeTLV
www.youtube.com
January 3, 2026 at 3:28 PM
I have to say, it's a little infuriating setting up a monorepo of published packages with the new npm Trusted Publisher requirements. Every package needs a multi-step access change in the UI. Which keeps captcha-ing me. Repeatedly.

npm needs more funding.
January 3, 2026 at 1:52 PM
📮 What Flint Does Differently

Flint is an experimental linter. It intentionally revisits many of the core design decisions from other popular web linters.

Please enjoy this medium dive how Flint's intentionally deviating from other linters and trying new things. ❤️‍🔥

www.flint.fyi/blog/what-fl...
What Flint Does Differently
[Experimental] A fast, friendly linter. ❤️‍🔥
www.flint.fyi
January 2, 2026 at 5:24 PM
Reposted by Josh Goldberg
✂️ Knip for Editors & Agents

Couldn't be more excited and proud to introduce the brand new VS Code Extension and MCP Server. For humans and coding agents alike, Knip will help keep your codebases tidy.

→ Read the blog post:
Knip for Editors & Agents
knip.dev
December 17, 2025 at 11:09 AM
JSHeroes is one of my *favorite* conferences of all time. Lovely people, high quality event, and the best desserts 🍩.

I tried to resist the urge to submit but couldn't. Happy new year!
We're entering the last hours of the CFP! 😱
Keep in mind the form closes at midnight Romania time, 11:00 CET so you can enjoy the New Year celebrations after wrapping up your proposal! 🎉

Happy New Year everyone! ❤️
⏳ The Call for Papers is closing soon!
If you haven’t submitted your proposal yet, you still have 3 days left to take your chance at joining us as a speaker at #JSHeroes 2026. 🌟

👉 jsheroes.io/speak

#TechEvent #TechConference #WebDev #TechInnovation
December 31, 2025 at 5:17 PM
Reposted by Josh Goldberg
Today on the pod, we wrap up 2025 with Microsoft's JS/TS modernization agent, Next.js 16.1, Bun 1.3.5, and Standard Schema V1. Plus community tips on types vs interfaces! At the end, we read some of your listener feedback and reflect on our 50+ episodes 🎉

youtu.be/q9PYRBqLNgM?...

#typescript
Modernization Agents, Standard Schema V1, and Year-end Podcast Wins | News | Ep 49
Our last episode for 2025, see you in 2026! News for the week of December 15 2025: Microsoft's experimental JS/TS modernization agent, new Next.js and Bun releases, and how pnpm is tightening the…
youtu.be
December 23, 2025 at 9:11 PM
flint.fyi ❤️‍🔥
December 30, 2025 at 10:37 PM
Introducing Flint: a fast, friendly linter.

Flint is an experimental linter made to validate several hypotheses: hybrid linting, streamlined rich configuration, thorough docs & plugins, and tooling coordination.

Expect to hear more about Flint over the next month. ❤️‍🔥

www.flint.fyi/blog/introdu...
Introducing Flint
[Experimental] A fast, friendly linter. ❤️‍🔥
www.flint.fyi
December 30, 2025 at 9:40 PM
I wish JavaScript had an interrobang-ish operator. Like ??, but inverse: only produce the right-hand side if the left-hand wasn't nullish.

Before: a ? b : undefined
After: a ?! b

It looks silly at first but I often write ternaries over nullish values in code and feel like this'd help... just me?
December 27, 2025 at 6:01 PM
This was a lovely conversation, thanks Rafael!
December 23, 2025 at 7:39 PM
Reposted by Josh Goldberg
Rafael Gonzaga is a Principal Open Source Engineer at @nodesource.bsky.social. He joins @joshuakgoldberg.com to discuss @nodejs.org performance, benchmarking, balancing speed and stability, and contributing to a major open source project.

softwareengineeringdaily.com/2025/12/23/n...
Node.js in 2026 with Rafael Gonzaga - Software Engineering Daily
JavaScript has grown far beyond the browser. It now powers millions of backend systems, APIs, and cloud services through Node.js, which is one of the most widely deployed runtimes on the planet. Keepi...
softwareengineeringdaily.com
December 23, 2025 at 10:40 AM
HUGE thanks to the AWS Open Source & AWS JS SDK teams for an INCREDIBLE $5,000 GitHub Sponsors end-of-year sponsorship! 🤯

This is the single biggest sponsorship intake I've ever received. It's about as much as I usually make on GitHub Sponsors in ~10 months. I am absolutely floored.

1/🧵
December 23, 2025 at 4:36 PM
Ah, yes, the yearly "wrapped" feature slog where I get to see memories of my dead family members. Thank you, Google and Microsoft, for reminding me of these cherished (traumatic) memories.

🖕
December 20, 2025 at 2:53 PM
Reposted by Josh Goldberg
we released the new @e18e.dev ESLint plugin today! 🎉

this comes with 3 categories of rules: modernisation, performance, replacements

it also works with oxlint and most of the rules have auto-fixes 🛠️

try it out and let us know any feedback/rule suggestions in discord/bsky/github!
GitHub - e18e/eslint-plugin: The official e18e ESLint plugin for code modernization and performance best practices
The official e18e ESLint plugin for code modernization and performance best practices - e18e/eslint-plugin
github.com
December 19, 2025 at 7:44 PM
I'm back home from a lovely trip to Tel Aviv for NodeTLV 2025. Thanks so much to the conference organizers for having me on as a keynote speaker - it was a fantastic conference with a ton of bright people & companies to talk to!
December 19, 2025 at 7:50 PM
One of my favorite conference talk props is putting “flexible slides” towards the end. If you’re short for time, you can cover them briefly and move on. If you have extra time, you can go deeper.

Demos in particular are great for this! 🧠
December 19, 2025 at 6:25 PM
What a week for tooling!
🚨Standard JSON Schema v1 just dropped🚨

🟢libraries can now accept ArkType wherever they need JSON Schema
🟢100% type-safe with inference built-in
🟢day one support from AI SDK
🟢TanStack AI and MCP SDK support imminent
December 17, 2025 at 10:30 AM
ESLint Plugin Perfectionist is an excellent plugin and @azat.io is a real MVP for all the work leading it! 🎉

Congrats Azat on the 5.0.0!
Released ESLint Plugin Perfectionist v5.0.0. 🎉

It’s a plugin for sorting imports, TS types, JSX props, classes, objects, variables, and more.

In this release: move to ESM-only, dropped Node.js v18 support, two new rules.

github.com/azat-io/esli...

More in the thread below ⬇️
GitHub - azat-io/eslint-plugin-perfectionist: ☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.
☂️ ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc. - azat-io/eslint-plugin-perfectionist
github.com
December 17, 2025 at 10:21 AM
It's 3am local time, I'm giving a keynote at 9:20am tomorrow morning, and I can't sleep I'm so excited. yay.
December 16, 2025 at 1:04 AM
I'm at React Next today and NodeTLV tomorrow. If you want to talk about the web, open source, or just chat, come find me! 🙌
December 15, 2025 at 7:40 AM
Reposted by Josh Goldberg
bless you.

you can tuna piano but you can't piano a tuna.
December 12, 2025 at 1:57 PM
Someone sent an AI slop PR to @typescript-eslint.io with a description of almost 1,000 words and no backing issue. We told them to file a backing issue, to be more pithy, and avoid AI slop.

They then filed an issue with _over_ 1,000 words, clearly written with AI slop.

Absolutely ridiculous.
December 11, 2025 at 2:44 PM
Reposted by Josh Goldberg
Made a site comparing the sizes of living things :)

The great Julius Csotonyi spent 5 months painting over 60 illustrations for the site, no ai used

> neal.fun/size-of-life/
December 10, 2025 at 4:03 PM
Do you think it's confusing how linters and TypeScript both get the same red squiggly color by default in VS Code? But you don't want to downgrade lint reports all the way to orange?

Please upvote my VS Code feature request to add a "danger" style between orange and red! github.com/microsoft/vs...
Offer "danger" (orange) style between "warning" (yellow) and "error" (red) · Issue #246507 · microsoft/vscode
Overview Right now, there are two warm-color severities for "squigglies" in code: editorWarningForeground #CCA700: often used for lint reports and other warnings editorErrorForeground #F14C4C: ofte...
github.com
December 9, 2025 at 1:54 PM