Benjamin Lesné
benjaminlesne.bsky.social
Benjamin Lesné
@benjaminlesne.bsky.social
Web Developer | mainly with React

https://benjamin-lesne.dev/
Reposted by Benjamin Lesné
All stats are public btw, thanks to @plausible.io :

plausible.io/tkdodo.eu
Plausible · tkdodo.eu
Plausible is a lightweight and open-source web analytics tool. Your website data is 100% yours and the privacy of your visitors is respected.
plausible.io
November 26, 2025 at 8:28 AM
Reposted by Benjamin Lesné
types also _are_ documentation :)
December 1, 2025 at 6:10 PM
Reposted by Benjamin Lesné
📣 TanStack AI Alpha is here!

✨ Framework agnostic
🤖 Provider agnostic
🧠 Type safe
🔧 Isomorphic tools
🛠 Devtools
🌐 Open protocol
📦 JS, Python, PHP
⚛️ React, Solid, Vanilla
🌀 OpenAI, Anthropic, Gemini, Ollama, ++

Official blog post: tanstack.com/blog/tanstac...
Docs: tanstack.com/ai
TanStack AI Alpha: Your AI, Your Way | TanStack Blog
The TanStack team is excited to announce the alpha release of , a framework-agnostic AI toolkit built for developers who want control over their stack. Let's be honest. The current AI landscape has a....
tanstack.com
December 4, 2025 at 10:44 PM
Reposted by Benjamin Lesné
Feedback I got yesterday was mostly: "I tried it but it showed a lot of findings, I looked at the first two and they were false-positives so I dismissed it"

The false-positives would go away with better config, but people need to see the benefit _immediately_
October 30, 2025 at 12:11 PM
Reposted by Benjamin Lesné
Quite happy with this (mostly) vibe-coded result: github.com/getsentry/se...
October 31, 2025 at 1:25 PM
Reposted by Benjamin Lesné
✂️ If you're using knip at work, try and get your employer to sponsor @webpro.nl
webpro.nl Lars @webpro.nl · Nov 3
✂️ Thank you, sponsors!

We've officially hit €500/month in sponsorships ❤️

knip.dev/sponsors

Most of them are supporting Knip for quite a while already which I truly appreciate! 🙏
November 3, 2025 at 12:36 PM
Reposted by Benjamin Lesné
Async work in @react.dev has come a long way. If you're still using fetches inside of useEffects you are behind the times. React 19.2 has a full async ecosystem now. Let's learn it in just 10 minutes! youtu.be/KI4gjUrOfOs
Master React 19.2 Async Everywhere — Boost Performance
YouTube video by Jack Herrington
youtu.be
October 20, 2025 at 2:28 PM
Great talk on using Knip in a big codebase!

Loved how it covered the caveats and the clever ways to solve them 👏
Decluttering Sentry: One Knip at a Time | Dominik Dorfmeister
YouTube video by React Prague
youtu.be
October 8, 2025 at 7:38 AM
Reposted by Benjamin Lesné
🗣️ My talk "Decluttering Sentry - One Knip at a Time" from @react-prague.bsky.social is now available on YouTube

✂️ This is a real-life story (with ups and downs) about how we used knip by @webpro.nl at @sentry.io to delete 20k lines of unused code and now run it in CI so it never happens again 🎉
Decluttering Sentry: One Knip at a Time | Dominik Dorfmeister
YouTube video by React Prague
www.youtube.com
October 6, 2025 at 7:10 PM
Reposted by Benjamin Lesné
I was today years old when I learned that if you have an unbound generic T and a variable that is T | null and you do a control-flow narrowing by checking if (variable !== null), you’ll wind up with T & ({} | undefined) which is so weird but somewhat logical as T could contain undefined in the union
September 25, 2025 at 10:04 AM
Reposted by Benjamin Lesné
📚 As promised, a quick writeup on how syncing state - even if it’s between server and client state - can be avoided if we’d just derive state instead:
Deriving Client State from Server State
How to use derived state in React to keep client state and server data aligned without manual sync or effects.
tkdodo.eu
September 1, 2025 at 1:17 PM
Reposted by Benjamin Lesné
🎙️ I've been on the PodRocket podcast by @logrocket.bsky.social recently, talking some more about useCallback, useMemo, "the latest ref pattern" and the React Compiler:
Is React’s useCallback Hook Useless? | PodRocket
YouTube video by LogRocket
www.youtube.com
September 4, 2025 at 2:47 PM
Reposted by Benjamin Lesné
📚 Whenever I see useCallback, I wonder: why do we need it here? And a lot of the times, when I look deeper, I see that it actually doesn’t do anything. I think a lot of code-bases would be better of just not memoizing at all - and then let the compiler do it for you:
The Useless useCallback
Why most memoization is downright useless...
tkdodo.eu
July 28, 2025 at 4:22 PM
Reposted by Benjamin Lesné
Absolutely fantastic write-up by @joshwcomeau.com on the State of Devs survey results. Contains a lot of correlations that aren't even in the main report!

www.joshwcomeau.com/email/2025-0...
The “State of Devs” results are in! • Josh W. Comeau
Friendly tutorials for developers. Focus on React, CSS, Animation, and more!
www.joshwcomeau.com
July 5, 2025 at 12:09 AM
Reposted by Benjamin Lesné
I turn on `verbatimModuleSyntax` and jest starts to fail because our jest.config is in TS with ESM syntax, but package.json doesn’t say type:module so now it assumes CJS and everything is on fire either way 🔥. This is what hell must feel like 😂
July 10, 2025 at 6:00 PM
🚀 The WLC Scenario Explorer is now LIVE!

This open-source tool explore different possible scenarios for whole life cycle greenhouse gas emissions of buildings across Europe.

More info below! 🧵👇
July 10, 2025 at 10:01 AM
Reposted by Benjamin Lesné
In case you need a distraction from the current news cycle, part 1 of the State of Devs survey results is now available!

2025.stateofdevs.com/en-US
State of Devs 2025
2025.stateofdevs.com
June 23, 2025 at 12:08 AM
Years of Experience vs Job Happiness.

There is a bump after 10 years. Why? Survivor bias?
share.devographics.com
June 23, 2025 at 7:40 AM
Reposted by Benjamin Lesné
I'm at about -18k lines of code for the @sentry.io codebase thanks to knip 🙌

github.com/getsentry/se...
Pull requests · getsentry/sentry
Developer-first error tracking and performance monitoring - Pull requests · getsentry/sentry
github.com
April 30, 2025 at 8:06 AM
Reposted by Benjamin Lesné
Today I learned why this:

const value = useRef(null)
if (!value.current) {
value.current = init()
}

_can_ be better than:

const [value] = useState(init)

Hint: StrictMode is involved 😜

Guess it’s time to update my blogpost / write a new one.
useState for one-time initializations
Why you shouldn't rely on useMemo for guaranteed referential stability but prefer useState instead
tkdodo.eu
April 26, 2025 at 8:43 AM
Reposted by Benjamin Lesné
And look at that brand new @intellijidea.com plugin by @wordman.dev for highlighting arktype types 🙌
April 18, 2025 at 4:12 PM
Reposted by Benjamin Lesné
📦 beekeeper-studio / beekeeper-studio
⭐ 18,448 (+31)
🗒 TypeScript

Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
GitHub - beekeeper-studio/beekeeper-studio: Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows. - beekeeper-studio/beekeeper-studio
github.com
April 15, 2025 at 6:02 PM
Reposted by Benjamin Lesné
⚛️📝 New on Overreacted: JSX Over The Wire overreacted.io/jsx-over-the...
JSX Over The Wire — overreacted
Turning your API inside-out.
overreacted.io
April 15, 2025 at 3:54 PM
Reposted by Benjamin Lesné
why bluesky "feeds" don't work, a thread
April 12, 2025 at 3:47 PM
Reposted by Benjamin Lesné
📦 fuma-nama / fumadocs
⭐ 3,746 (+83)
🗒 TypeScript

The beautiful docs framework with Next.js.
GitHub - fuma-nama/fumadocs: The beautiful docs framework with Next.js.
The beautiful docs framework with Next.js. Contribute to fuma-nama/fumadocs development by creating an account on GitHub.
github.com
April 13, 2025 at 5:02 PM