François Best

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/francoisbest 🏠 francoisbest.com

1.5K followers475 following1.5K posts

François Best reposted

📦 nuqs@2.10.2 is out! 🚀 It fixes a bug of state flickering when a sync render interrupted a startTransition in React Router, and a bug in Next.js 16.4.0 with shallow updates interfering with each other. Changelog: nuqs.dev/changelog Try it out: pnpm add nuqs@latest

Haven't been active much here, sorry, AI-in-OSS burnout is real. How do you care when nobody else does? When nobody engages? When all the human connection is gone? When all you read is AI slop? I want to go back to coding for fun. Because whatever this is, it's very much _not_ fun.

François Best reposted

📦 nuqs@2.9.3 is out! 🚀 It fixes a bug where state updates would blink/replay when pending state updates done in startTransition were rebased on top of other priority updates. Concurrent React is fun. Try it out: pnpm add nuqs@latest

🗣️ I'll be speaking at @reactadvanced.gitnation.org London again this year! 🇬🇧 My "Maintaining open-source at the age of AI" talk is a fun one, with deep & important discussions about our OSS ecosystem. See you all on October 23rd/26th! Grab your ticket or register for the livestream via my badge:

gitnation.comCheck out my badge & claim your free React Advanced 2026 remote ticket!Join 5k engineers worldwide at React Advanced 2026 and meet 40+ top speakers at October 23 - 26, 2026

François Best reposted

📦 nuqs@2.9.2 is out! 🚀 It fixes a React concurrency issue where a discarded render could leave query state stuck out of sync with the URL. Try it out: pnpm add nuqs@latest

This is the first GA release that went through our new npm staged publishing pipeline 🙌 Blog post explaining how it works in progress ✍️

nuqs@nuqs.dev

📦 nuqs@2.9.0 is out! 🚀 - Added support for @reactrouter.com v8 - Added `history` as a global default at the adapter level 🐞 Plus lots of bug fixes, check out our new changelog page: nuqs.dev/docs/changel... Try it out: pnpm add nuqs@latest

Weekend project: drafting a spec RFC for StandardCodec, a StandardSchema inspired-and-compatible way to bidirectionally convert between two arbitrary data types in TypeScript. Zod codecs, Effect Schema, nuqs parsers, and now Waku codecs are all implementations of this. We need a standard.

A huge thank you to all my sponsors 💖 Y'all are the reason I can dedicate more time to open-source, my dream being able to do this full-time and still pay the bills and sustain my family while working in the open. Join these wonderful folks, it's one command away: $ npx cashcn franky47 100/m 🫶

New silly weekend project: `cashcn`, the fastest way to sponsor OSS maintainers. $ npx cashcn franky47 100 Supports: - GitHub repos: 47ng/nuqs - OpenCollective: oc://antfu - NPM packages: npm://msw - recurring: 100/m Redirects to GitHub sponsors pre-filled (URL state FTW) Go sponsor maintainers!

github.comGitHub - franky47/cashcn: Sponsor OSS maintainers via the CLISponsor OSS maintainers via the CLI. Contribute to franky47/cashcn development by creating an account on GitHub.

🌶️ I’m dropping Git tags from my GitHub Actions. I’m updating some of the GitHub Actions I made a while back, and I won’t be releasing them under a Git tag (that allows consuming it as @​1.2.3). Those are mutable, and SHA1 pinning is recommended and enforceable anyway.

I won’t be removing old tags obviously, and GitHub has immutable releases & tags, but you can never know from the outside if a repo has this turned on. That leaves the problem of discovery, the only immutable place with a modification record would be the README or a CHANGELOG file.

Playing with staged publishing: - You can reject then re-stage the same package. Useful if a workflow botched a release: cancel, reject, and try again. - You can't stage the same package twice (409 Conflict), makes sense. - Is there a timeout on staged packages? We'll see… ⏱️

Staged publishing TL;DR 1. You replace `npm publish` with `npm stage publish` 2. It puts the tarball in a staging area for review 3. You approve it via the CLI or web It will land in npm@^11.15.0. I've already turned off non-staged publishing in @nuqs.dev (in the Trusted Publishing settings).

James@43081j.com

Woooo yeaaah! The missing piece 🎉 everything is about to get a lot more secure

🟣 I'll be live today on Twitch to talk about the security of GitHub Actions (or lack thereof): - What you can change in your workflows today to avoid being pwned - What you can setup to make sure it stays "secure" over time Gonna be fun, come hang out at 10am CEST: www.twitch.tv/francoisbest

twitch.tvfrancoisbest - TwitchFreelance web developer, open-sourcerer, speaker. Building nuqs, a type-safe search params state manager for React (Next.js, Remix, React Router, React SPA etc)

François Best reposted

Heartbreaking. And a wake-up call. It is no longer about being difficult to find a way to sustain yourself through your work online. It is no longer sustainable to keep a website up now. Axel has done so much for the web and all of us. Buy one of his books if you can. We've learned so much from him.

1/ I’m still processing what’s going on in tech at the moment. I used to feel at home in that world. It used to feel incredibly creative and positive. Now it’s increasingly full of bugs, dark addicting patterns and AI slop. 2ality.com

Takeaway from the TanStack vuln: people don't read reports. The number of replies "they should have checked before merging"... 😓 The PR that kicked it off **wasn't** merged. It didn't need to be, and the vuln vector (cache poisoning) was invisible to maintainers.

Writing this made me feel sad, angry, borderline sick, but better be safe than sorry. nuqs currently stands at 2.5M weekly downloads, it only takes one angle I haven't seen and defended against to pwn projects that I care about. I have ideas I want to try, stay tuned. We'll be back. 🫶

nuqs@nuqs.dev

PSA: given the state of the supply chain security theatre on GitHub & NPM, and the scale of recent attacks, we're no longer accepting 3rd party PRs on nuqs for the time being. In time, I hope, this too shall pass. 🙏 github.com/47ng/nuqs/di...