Vincent Driessen

@nvie.com

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

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. ✨

Chris Nicholas@chrisnicholas.dev · 4mo ago

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 ↓

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 ↓

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.

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),
});

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! 👏

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.

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 ↓

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

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.

lblcks.io

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 ↓

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

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.

matthiasott.com

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.​​​​​​​​​​​​​​​​

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.

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.

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