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
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
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
@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
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
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
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
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
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
I wrote a few words last night. nvie.com/posts/15-yea...
nvie.com
15+ years later, Microsoft morged my diagram
How Microsoft continvoucly morged my Git branching diagram.
515150
Reposted by Vincent Driessen
Josh W. Comeau @joshwcomeau.com · 17/02/2026
RIP "continvoucly morged". Looks like they replaced it with a new diagram. Honestly I’m still a bit suspicious of this one. There are some inconsistent design choices that make me think this could’ve been generated as well. Though maybe it was a human in a hurry. 😅
A new graph without all of the embarrassing AI gibberish. A main git branch splits into "Hotfix" and "Develop", which can be split into "Feature" and "Release".
11601
Reposted by Vincent Driessen
absolute horses @jcoglan.com · 17/02/2026
git config --global alias.morge merge
416322
Reposted by Vincent Driessen
Vincent Driessen @nvie.com · 16/02/2026
Oh god yes, Microsoft continvoucly morged my diagram there for sure 😬
425535
Reposted by Vincent Driessen
Chad Fowler @chadfowler.com · 24/12/2025
aicoding.leaflet.pub
Code Was Never the Asset
Why AI makes the hidden economics of software unavoidable
1268
Reposted by Vincent Driessen
James Turner @james.loadingreadyrun.com · 22/12/2025
God YouTube can be cool and good sometimes. What a brilliant video that not only has a great fucking message, but is also beautifully shot/edited. youtu.be/tWYxrowovts
youtu.be
How Did The World Get So Ugly?
YouTube video by Sheehan Quirke
311511
Vincent Driessen @nvie.com · 19/12/2025
Wow! This video by @mitchellh.com on feature design is such a gem. A perfect illustration of what it means to excel as a software engineer! 😍 x.com/mitchellh/st...
000
Reposted by Vincent Driessen
Liveblocks @liveblocks.io · 10/12/2025
The Liveblocks team met in Punta Cana for this year's retreat 🇩🇴
153
Reposted by Vincent Driessen
Jake Bailey @jakebailey.dev · 21/11/2025
Cannot think of even one single time I've ever wanted to "paste with formatting"
7797
Vincent Driessen @nvie.com · 27/10/2025
Amen! 🙏 tanstack.com/blog/directi...
100
Reposted by Vincent Driessen
Tower @git-tower.com · 22/10/2025
Our new open-source tool, git-flow-next, has just received a powerful seal of approval from @nvie.com , the creator of git-flow 🤩 We are honored by Vincent's kind words and are committed to carrying the torch forward! 🙏
041
Reposted by Vincent Driessen
han4wluc @han4wluc.bsky.social · 30/09/2025
Didn't know Claude had specific keyword for how much let the model think: "think" < "think hard" < "think harder" < "ultrathink." anthropic.com/engineering/... ultrathink is specifically rainbowed in Claude Code.
0101
Reposted by Vincent Driessen
Julia's Reruns Bot @b0rk-reruns.jvns.ca · 03/10/2025
how I got better at debugging permalink: wizardzines.com/comics/bette... from our free zine "So you want to be a wizard": wizardzines.com/zines/wizard/
A comic about computing. A transcript may be available at the link in the post.
03710
Reposted by Vincent Driessen
sam henri gold @samhenri.gold · 06/09/2025
Did you know your MacBook has a sensor that knows the exact angle of the screen hinge? It’s not exposed as a public API, but I figured out a way to read it and make it sound like an old wooden door.
11675691936