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

📦 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

Install nuqs@latest using your favourite package manager.

🗣️ 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:

Check 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

gitnation.com

📦 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

Install nuqs@latest using your favourite package manager

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 🫶

You reached your goal of 20 monthly sponsors!

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 - franky47/cashcn: Sponsor OSS maintainers via the CLI

Sponsor OSS maintainers via the CLI. Contribute to franky47/cashcn development by creating an account on GitHub.

github.com

🌶️ 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.

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… ⏱️

The staged packages web UI on npmjs.com, showing two test packages waiting for approval or denial (or timeout for one of them).