François Best
banner
francoisbest.com
François Best
@francoisbest.com
Freelance web developer, open-sourcerer, speaker.

Building `nuqs`, a type-safe search params state manager for React frameworks:
🔗 https://nuqs.dev
🦋 @nuqs.dev

🎥 youtube.com/@47ng-dev
🟣 twitch.tv/fortysevenfx
🏠 francoisbest.com
Pinned
I'm signing the @opensourcepledge.com, it's time to give back to the maintainers of the projects @nuqs.dev depends on.

I just gave 2700€ ($3,212) to 18 maintainers & projects I use, love, and want to support.

Happy Thanksgiving! 💖

nuqs.dev/blog/open-so...
Signing the Open Source Pledge | nuqs
Giving back to maintainers of the OSS projects nuqs depends on.
nuqs.dev
@profanity.accountant I know at least one that's going to trigger you (the one that's not heaven 🤘)
November 30, 2025 at 12:02 PM
Reposted by François Best
This Friday @reactadvanced.gitnation.org London, I got to see @francoisbest.com's talk on #nuqs for the second time! The last time was actually his first talk at @forkit.community Rouen 2024.

Inspiring to see how far he's come 📖✍️ and to witness the crowd react with such amazement!

Congrats man!
November 30, 2025 at 9:56 AM
Easily, my favourite talk at @reactadvanced.gitnation.org on Friday was @joehart.bsky.social’s making Final Fantasy IX in the browser with React, just for fun.

Hilarious from start to end, educational on reverse engineering sprite resources, 3D scenes stitching, and silly in the best possible way.
November 30, 2025 at 7:24 AM
Yesterday I learned about HTTP methods CONNECT & TRACE.

CONNECT is for establishing a tunnel with an http proxy
developer.mozilla.org/en-US/docs/W...

TRACE is a loopback test used for debugging, but may be unavailable for security reasons.
developer.mozilla.org/en-US/docs/W...
TRACE request method - HTTP | MDN
The TRACE HTTP method performs a message loop-back test along the path to the target resource.
developer.mozilla.org
November 29, 2025 at 2:55 PM
I'm signing the @opensourcepledge.com, it's time to give back to the maintainers of the projects @nuqs.dev depends on.

I just gave 2700€ ($3,212) to 18 maintainers & projects I use, love, and want to support.

Happy Thanksgiving! 💖

nuqs.dev/blog/open-so...
Signing the Open Source Pledge | nuqs
Giving back to maintainers of the OSS projects nuqs depends on.
nuqs.dev
November 27, 2025 at 6:29 PM
I’m on my way to London for React Advanced. 🇫🇷🚅🇬🇧

See you all tomorrow at 14:00 GMT, Heezen track 🗣️

Join the live stream:
reactadvanced.com/schedule-off...
React Conference In London, Nov 28 & Dec 1, 2025
The main React Conference in the UK, running every year in London. Focused on Advanced React topics from the React Core team, framework authors and case studies from top engineers.
reactadvanced.com
November 27, 2025 at 8:40 AM
Hey it's me! 👋

Looking forward to see the full video, thanks again @clerk.com & @jason.energy !
Clerk put up $25,000 for the winner of the Next.js Conf Hackathon last month, and @codetv.dev partnered up to host and hang out with the teams. this was VERY fun, and we're cooking up something even bigger with the @clerk.com team for next year — stay tuned! 👀
November 25, 2025 at 11:47 PM
Reposted by François Best
🚨 check your dependencies!

in these 500+ packages, three third-party nuxt modules were affected:

- @alexcolls/nuxt-ux
- @alexcolls/nuxt-socket.io
- @posthog/nuxt

no dependencies of nuxt itself, or any of our first party modules, were affected.
We have updated this list to include more than 500 packages and 700+ affected versions, as well as a technical analysis of the attack. socket.dev/blog/shai-hu....

cc: @campuscodi.risky.biz @typescript.fm @bleepingcomputer.com @theregister.com
November 24, 2025 at 9:22 PM
A little side project using @bun.sh runs CI in ~10 seconds (sub-second package installs, and unit testing).

3 of these seconds is the old tsc for type-checking.

Let’s see how low we can Go (before the network becomes the bottleneck).
who are all you people
November 24, 2025 at 7:34 PM
Reposted by François Best
📚 Have you ever seen a TypeScript type say:

T extends any ? ... : never

and wondered: why would you do that - that doesn’t do anything! Or does it?

It does! I’m explaining it based on the `DistributiveOmit` type in my newest article:
Omit for Discriminated Unions in TypeScript
Why TypeScript’s built-in Omit breaks discriminated unions, and how a distributive version preserves them.
tkdodo.eu
November 24, 2025 at 3:49 PM
Reposted by François Best
✍️ Open source doesn’t fail because of code.
It fails because of governance gaps, burnout, and invisible work.

I wrote down what I learned working on #Expressjs and #Lodash

blog.ulisesgascon.com/open-source-...
Open Source Doesn’t Fail Because of Code!
We like to blame code when open source breaks. The reality is uglier: governance, burnout and invisible work are the real fault lines. This reflects what I learned during our work on Express and Lodas...
blog.ulisesgascon.com
November 24, 2025 at 8:22 AM
In college, I wanted to understand the sound behind Origin of Symmetry by Muse. 🎸

The rabbit hole of learning started here: analog electronics, DSP, C++, UI design (to make it all look nice), then the web (to build faster).

And there’s still one tiny part of that album that eludes me.
What’s the lore behind choosing your career path ?
November 23, 2025 at 9:37 AM
You know it’s going to be a fun side-project when you’re implementing a streaming YAML parser for lockfiles 🫠
November 23, 2025 at 9:25 AM
TIL the GraphQL explorer was removed from the @github.com docs (I should have read the warning).

It's a shame, it was handy to quickly try out queries without fiddling with access tokens.

Anybody has a good macOS GraphQL client to recommend? Preferably native & OSS 🙏
November 23, 2025 at 5:25 AM
Reposted by François Best
URL as a state is such an interesting concept. Although I haven't really deep dive into it yet, building components utilizing existing APIs like `useSearchParams` is really fun.

I want to try out @nuqs.dev and compare the implementation sometime 👀

ausathikram.com/blog/reusabl...
Reusable Components with Search Params as State
Using URL search params as state for common UI patterns.
ausathikram.com
November 22, 2025 at 8:59 AM
TIL that Qualcomm acquired Arduino, and is now proceeding to turn what was once an open community of OSH makers into a corporate machine.

Sad, especially since I wrote my first ever programs on those chips, and my first contribution to OSS was creating the Arduino MIDI Library, ~16 years ago. 😓
Did Qualcomm kill Arduino for good? | Molecularist
The maker community worried Qualcomm would kill the Arduino ethos. New T&Cs confirm the community's worst fears. Here's what's at stake, what Qualcomm got wrong, and what might still be salvaged.
www.molecularist.com
November 21, 2025 at 7:59 PM
Reposted by François Best
📦 [email protected] is out! 🚀

🐞 It fixes two bugs with @tanstack.com Router:

- Trailing slash is no longer added on state updates
- Custom history.state is maintained

Try it out: pnpm add nuqs@latest
November 21, 2025 at 12:01 PM
Happy nerdy cyberdjent day to those who celebrate 🤘👨‍💻

*state of flow intensifies*
Recursive Infinity, by The Algorithm
9 track album
intothealgorithm.bandcamp.com
November 21, 2025 at 9:15 AM
The State of React survey is out!

🔗 survey.devographics.com/en-US/survey...

You know what to do 👀
November 19, 2025 at 9:33 PM
Welcome to Bluesky, @orcdev.bsky.social ! 👋

For the Horde! ⚔️
November 19, 2025 at 2:25 PM
Yesterday I quietly released @nuqs.dev 2.8.0

No big new feature, but a widening of the SemVer range for react-router{-dom} to include v5, as I need it in a client project.

Might be removed in [email protected], we'll see how support goes.

The adapter can be installed with the @shadcn.com CLI:
React Router v5 Adapter | nuqs
Using nuqs in React Router v5 applications.
nuqs.dev
November 18, 2025 at 8:51 AM
Reposted by François Best
Going back through @ricky.fm's Async React as I prep an internal talk, and this part is insanely good, felt like it deserved a reshare🔥
youtu.be/p9OcztRyDl0?...
November 17, 2025 at 7:12 PM
Reposted by François Best
❌ If you unit-test a React 19 app, there’s a good chance a chunk of your CI time is being wasted on… 😴 setTimeout.
Wait, what? Yes!

React 19 introduced a minimum delay for showing a Suspense fallback, and hardcoded (!) it to 300ms.
Just 3 tests can waste almost 1 second on absolutely nothing!
November 17, 2025 at 2:15 PM
I have an idea for my @reactadvanced.gitnation.org talk that would requiring building and shipping a new feature in @nuqs.dev next week (so I can actually rehearse with it).

Conference-driven development is real.
November 15, 2025 at 9:09 PM