Sign in

Vincent Driessen

@nvie.com
620 followers 366 following 193 posts

Simplifying things for fun and profit. Engineer at liveblocks.io. Blog at nvie.com. Also decoders.cc.

PostsRepliesMedia
Reposted by Vincent Driessen
Rob Palmer @robpalmer.bsky.social · 29/09/2026
ECMAScript excitement 😉 Congrats to @michael.ficarra.me on advancing the Iterator Chunking proposal to Stage 4 at @tc39.es today 🎉 It can make iterators that chunk & window content. [0,1,2,3].values().chunks(2); // [0,1], [2,3] [0,1,2,3].values().windows(2); // [0,1], [1,2], [2,3]
2545
Vincent Driessen @nvie.com · 16/09/2026
TFW you're in the middle of a session… 🥴 #timeforcoffee
Claude code 5-hour session limit reached way too soon 🥴
010
Reposted by Vincent Driessen
Liveblocks @liveblocks.io · 01/09/2026
Introducing LiveText, part of Liveblocks Sync. Our new data type for collaborating text editing, and a replacement for Yjs. → lblcks.io/livetext
142
Vincent Driessen @nvie.com · 27/07/2026
A long-standing desire of ours, finally there! 😍
010
Reposted by Vincent Driessen
Chris Nicholas @chrisnicholas.dev · 27/07/2026
You can now upload files to @liveblocks.io! If your multiplayer app uses media, archives, or any file, `LiveFile` allows you to upload them directly to your Storage tree. Other users will see the file appear in realtime—like in this @tldraw.com clip. Learn more ↓
143
Vincent Driessen @nvie.com · 11/05/2026
Is there even any interesting tech news these days that isn’t related to AI? Never has tech news felt more boring than this year 😞
390
Vincent Driessen @nvie.com · 23/04/2026
Today, I co-blogged and got to see @chrisnicholas.dev’s amazing visualization talents up close! 🤩 lblcks.io/W1Ehpn6
lblcks.io
How CRDTs and sync engines keep realtime lists ordered with fractional indexing | Liveblocks blog
An interactive guide to fractional indexing, how it works, and how it’s used to power multiplayer lists in Figma and Liveblocks.
043
Vincent Driessen @nvie.com · 09/04/2026
If you use @xyflow.com with @liveblocks.io, you can now also update it from your Node.js backend super easily and with a beautiful API. This is _the_ way to let your React Flow be edited from custom agents. Read all about it here: liveblocks.io/docs/api-ref...
liveblocks.io
@liveblocks/react-flow | API Reference | Liveblocks
API Reference for the @liveblocks/react-flow package
031
Vincent Driessen @nvie.com · 09/04/2026
Liveblocks <3 🐍
030
Vincent Driessen @nvie.com · 08/04/2026
Beautiful implementation by the amazing @nimeshnayaju.bsky.social! 💯
000
Vincent Driessen @nvie.com · 07/04/2026
Only the minimal diff ever goes over the wire. We handle all the hard parts. And you don't need to learn anything new... it's all still just @xyflow.com. Give it a try! 👇 liveblocks.io/blog/multipl...
liveblocks.io
Multiplayer SDK for React Flow: Realtime collaboration between humans and agents | Liveblocks blog
We’ve released a new integration for React Flow, enabling realtime collaboration in workflows, flowcharts, and node-based apps in just a few lines of code.
040
Vincent Driessen @nvie.com · 07/04/2026
Generic sync solutions like our Zustand package can't know that moving a node shouldn't create 60 undo frames, or that node selection should be ephemeral. So we built a dedicated solution, and it's So. Much. Better. 😍
140
Vincent Driessen @nvie.com · 07/04/2026
The API looks like plain @xyflow.com, but underneath, it's synchronizing your graph in the smartest way possible. Selection state? Local only. Node position while dragging? Live. Conflicts? Auto-resolved. Undo/redo? Just works. ✨
272
Reposted by Vincent Driessen
Chris Nicholas @chrisnicholas.dev · 07/04/2026
Add multiplayer to React Flow in 5 mins! Our new @liveblocks.io package enables plug-and-play real-time collaboration. Powered by our open-source sync engine, edits are fully conflict-resolved, allowing multiple humans & agents to edit at once. And there's more ↓
243
Reposted by Vincent Driessen
Liveblocks @liveblocks.io · 31/03/2026
Liveblocks Unveil. AI agents are becoming native users of software, and apps need a new foundation. We've built it. 🗓️ April 6–10. Releases every day.
143
Reposted by Vincent Driessen
Liveblocks @liveblocks.io · 20/03/2026
Programatically manage Liveblocks projects. Our new Management API allows you to interact with your projects, API keys, and webhooks programatically. Create projects, update webhooks, roll secret keys, and more. Available now for Enterprise customers. liveblocks.io/docs/platfo...
liveblocks.io
Management API | Platform | Liveblocks
Learn how to use the Liveblocks Management API.
152
Vincent Driessen @nvie.com · 05/03/2026
CANNOT WAIT
010
Vincent Driessen @nvie.com · 02/03/2026
Very kind words, @chrisnicholas.dev! ❤️
020
Reposted by Vincent Driessen
Chris Nicholas @chrisnicholas.dev · 02/03/2026
Zod isn't the only option. Our team uses decoders, built by the wonderful @nvie.com. We find it's: • Easier to read, as it looks like TypeScript. • Quicker to debug, with its human-readable error messages. • Lighter to ship, with tree-shaking and smaller bundles. Learn more ↓
import { array, iso8601, … } from "decoders";

const userDecoder = object({
  id: number,
  name: string,
  createdAt: optional(iso8601),
  tags: array(string),
});
194
Vincent Driessen @nvie.com · 01/03/2026
TIL Plausible.io has a fantastic import-from-CSV feature! Just imported all my historical Gaug.es stats. It auto-imports only up to the moment Plausible was first used, so no double-counting of when I was still using both. Really well-done! 👏
000
Reposted by Vincent Driessen
Jacqueline @notjack.space · 27/02/2026
blogged about building big and beautiful things
unfoldingdiagrams.leaflet.pub
Mothlamp Problems
just a little bit closer to the light and I'll have it solved
1195
Vincent Driessen @nvie.com · 26/02/2026
That’s great to hear, Sam! Also makes me feel old haha 😆
030
Vincent Driessen @nvie.com · 26/02/2026
Gonna need to check it out, thanks for the pointer!
010
Vincent Driessen @nvie.com · 26/02/2026
What am I missing out on here?
100
Vincent Driessen @nvie.com · 26/02/2026
@stacyliveblocks.bsky.social OMG Frank! 🌭
010
Vincent Driessen @nvie.com · 26/02/2026
Zen Router is not like most routing libraries. It makes deliberate trade-offs to stay maintainable as codebases and teams grow. zenrouter.liveblocks.io/docs/princip...
zenrouter.liveblocks.io
Principles | Zen Router
The design principles behind Zen Router.
140
Vincent Driessen @nvie.com · 26/02/2026
Today it powers billions of requests every month, and we're happy to open source it for everyone to use! 🎉 liveblocks.io/blog/introdu...
liveblocks.io
Introducing Zen Router: our open-source type-safe router compatible with Cloudflare Workers | Liveblocks blog
We’ve open sourced Zen Router: an opinionated HTTP router with typed path params, built-in body validation, and a clean model for auth. Here’s why we built it and what makes it different.
020
Vincent Driessen @nvie.com · 26/02/2026
Two years ago I built a new router in my spare time to replace itty-router. We started adopting it gradually until it powered our entire backend.
Screenshot of an internal GitHub pull request titled 'Switch internal API over to new router', I opened 2 years ago.
340
Reposted by Vincent Driessen
Chris Nicholas @chrisnicholas.dev · 26/02/2026
I've built a full docs site in a day with @nvie.com! We've just open-sourced the HTTP router that's handles billions of requests per month at Liveblocks. Our team built it with Cloudflare Workers in mind, but it supports other runtimes too. Opinionated, type-safe, Zen. Get it ↓
132
Reposted by Vincent Driessen
Liveblocks @liveblocks.io · 26/02/2026
Introducing Zen Router: our open-source HTTP router. Zen Router handles billions of requests per month at Liveblocks, and today we're open sourcing it. Initially designed for Cloudflare Workers, but also compatible with Node.js, Bun, and more. lblcks.io/Vvvviny
lblcks.io
Introducing Zen Router: our open-source type-safe router compatible with Cloudflare Workers | Liveblocks blog
We’ve open sourced Zen Router: an opinionated HTTP router with typed path params, built-in body validation, and a clean model for auth. Here’s why we built it and what makes it different.
133
Reposted by Vincent Driessen
Chris Nicholas @chrisnicholas.dev · 24/02/2026
I've set up a whole collaborative app template for Next.js! Along with multiplayer apps, it's got live permissions: • The document immediately appears when shared. • When edit access is given, the page auto-reloads. • The user can then make real-time changes. Learn more ↓
161
Vincent Driessen @nvie.com · 23/02/2026
Lovely post, @matthiasott.com, very well put! 👏
020
Reposted by Vincent Driessen
Matthias Ott @matthiasott.com · 23/02/2026
✍️ New post: Con­tin­voucly Morged Value Couldn't get out of my head what happened to @nvie.com’s diagram – and so I wrote down a few premature thoughts about what happens when we mistake the (AI) artifact for the work … matthiasott.com/notes/contin...
matthiasott.com
Continvoucly Morged Value · Matthias Ott
Web design engineer, UX designer, teacher, and speaker – helping teams build websites and digital products with a focus on CSS, accessibility, and performance.
2188
Reposted by Vincent Driessen
Vincent Driessen @nvie.com · 22/02/2026
One more thing however: I’m seeing an X community and some kind of coin/token claiming to collect money on my behalf. I have absolutely nothing to do with this. It’s a scam. Please DO NOT send anyone money.​​​​​​​​​​​​​​​​
211
Vincent Driessen @nvie.com · 22/02/2026
One more thing however: I’m seeing an X community and some kind of coin/token claiming to collect money on my behalf. I have absolutely nothing to do with this. It’s a scam. Please DO NOT send anyone money.​​​​​​​​​​​​​​​​
211
Vincent Driessen @nvie.com · 22/02/2026
From my side, this has resolved the matter in a satisfactory way, and I’m totally fine with the outcome.
120
Vincent Driessen @nvie.com · 22/02/2026
2. At the same time, I’ve made the CC BY-SA license on the image more explicit on my end (it always was, but it was buried at the bottom of the article). 3. Microsoft mentioned they’ll be putting out a public statement on what happened, which I’m curious to read (as you all are I suspect).
100
Vincent Driessen @nvie.com · 22/02/2026
Some updates on the morged saga: 1. Microsoft has reached out last week, apologized, and corrected the Learn page — it now features my original diagram with proper attribution.
150
Vincent Driessen @nvie.com · 22/02/2026
Finally sat down and added dark mode to nvie.com. Sorry to everyone whose eyes have been blinded by it before 🙈
340
Reposted by Vincent Driessen
Liveblocks @liveblocks.io · 19/02/2026
Set up E2E testing in your Liveblocks app. We've written a step-by-step guide on how to test your multiplayer app using Playwright and our new open-source dev server. lblcks.io/2nnRkJs
lblcks.io
How to set up End-to-End (E2E) testing with Playwright | Liveblocks guide
Learn how to write End-to-End (E2E) tests for your Liveblocks application using Playwright and the local dev server.
052
Vincent Driessen @nvie.com · 19/02/2026
Hello to all new followers! 👋 How are you all doing today?
670
Vincent Driessen @nvie.com · 18/02/2026
I’m very sorry to hear that. It’s a sad story 😕
000
Vincent Driessen @nvie.com · 18/02/2026
Looks like it! You were surely ahead of the pack.
100
Reposted by Vincent Driessen
Artem Zakharchenko @kettanaito.com · 18/02/2026
The sad part isn't even the AI here. It's the person who generated this and uploaded it without even looking at the thing. The quality people demand of themselves is steadily diminishing. So does our appreciation of art.
2121
Vincent Driessen @nvie.com · 18/02/2026
Kindness is underrated in professional settings.
0140
Reposted by Vincent Driessen
Chris Nicholas @chrisnicholas.dev · 18/02/2026
Liveblocks is going open-source! Today we've opened up the sync engine server that powers Liveblocks Storage and Yjs on our platform. We've also built a local dev server for testing your @liveblocks.io app locally, try it in your app now: $ npx liveblocks dev
162
Vincent Driessen @nvie.com · 18/02/2026
My plan for today: announce that we're open sourcing the Liveblocks server! 🎉 The internet's plan for today: continvoucly morging my mentions 😂 Anyway, here's what I actually wanted to share today:
lblcks.io
Open sourcing the Liveblocks sync engine and dev server | Liveblocks blog
We’ve open sourced our server stack. Starting today, you can run and test your multiplayer applications with a Liveblocks server locally.
2134
Vincent Driessen @nvie.com · 18/02/2026
Ah, gotcha, I read your tweet the other way.
010
Vincent Driessen @nvie.com · 18/02/2026
This one actually isn't too bad! Atlassian put this guide out years ago, clearly linking back to my site to cite the source, and put care into comparing different branching strategies, styling it in a unified and on-brand style for them. That's perfectly okay, and not at all the same.
1142
Vincent Driessen @nvie.com · 18/02/2026
@joshwcomeau.com @patak.dev @scott.hanselman.com I wrote a few words on the topic last night: nvie.com/posts/15-yea...
nvie.com
15+ years later, Microsoft morged my diagram
How Microsoft continvoucly morged my Git branching diagram.
2120