Vincent Driessen

Vincent Driessen

@nvie.com

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

623 followers367 following198 posts

Pele is both faster and more beautiful than all other Mermaid renderers I’ve tried and is now also powering Viewdown.app! Thanks, @stephango.com! 🙏

viewdown.appViewdown — Markdown viewer for Mac, with live previewViewdown is a fast, beautiful Markdown viewer for Mac. Open any .md file and see it rendered, updating live as you edit it in the editor you already use.
kepano@stephango.com

One week later, Pele is already in dozens of apps including Obsidian 1.15! Many improvements this week: - Even faster rendering! - Math resolver support: KaTeX, MathJax, Temml, etc - Gradients in sankey diagrams - Fewer edge crossings in diagrams with subgraphs - Sub, sup and inline code in labels

I've been working on a fun little Mac app: Viewdown, a Markdown viewer. It's now ready to ship 📖 It live-reloads on every save and jumps straight to what changed. Optimized for the best and fastest reading experience. Give it a try and let me know if you like it! 🙏 viewdown.app

viewdown.appViewdown — Markdown viewer for Mac, with live previewViewdown is a fast, beautiful Markdown viewer for Mac. Open any .md file and see it rendered, updating live as you edit it in the editor you already use.
View full thread

Mermaid diagrams, maths, code in 80+ languages, MDX. Easily navigate (with your keyboard!) through the table of contents. Fast text search. Every document remembers its last window and reading position.

Oh, and I spent way too long making it print beautifully, for those who occasionally like reading things on actual paper 😇

I've been working on a fun little Mac app: Viewdown, a Markdown viewer. It's now ready to ship 📖 It live-reloads on every save and jumps straight to what changed. Optimized for the best and fastest reading experience. Give it a try and let me know if you like it! 🙏 viewdown.app

viewdown.appViewdown — Markdown viewer for Mac, with live previewViewdown is a fast, beautiful Markdown viewer for Mac. Open any .md file and see it rendered, updating live as you edit it in the editor you already use.

Why I built this? Well, I've used Marked for years, but Mermaid diagrams, MDX parsing, and frontmatter often felt broken in it, and made for a degraded reading experience. So I built a more opinionated tool that gets them right.

Vincent Driessen reposted

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]

A long-standing desire of ours, finally there! 😍

Chris Nicholas@chrisnicholas.dev

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 ↓

Vincent Driessen reposted

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 ↓

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 😞

Liveblocks <3 🐍

Liveblocks@liveblocks.io

Python SDK for Liveblocks. Power your collaborative back end with our new SDK for Python. Featuring 85+ methods for managing rooms, updating realtime storage, building agent workflows, and more. lblcks.io/TJF1J4n

Beautiful implementation by the amazing @nimeshnayaju.bsky.social! 💯

Liveblocks@liveblocks.io

Chat SDK adapter for Liveblocks. We’re releasing a new adapter for Chat SDK by @vercel.com, enabling you to create cross-platform bots that can respond in Liveblocks comment threads. For example, here's a bot that works in both Slack and Liveblocks. lblcks.io/hFCOxVR

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

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 ↓

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

Vincent Driessen reposted

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 ↓

Vincent Driessen reposted

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.

CANNOT WAIT

Elle Cordova@ellecordova.bsky.social

Got to see an early screening of Project Hail Mary with the @planetarysociety.bsky.social folks last night. A fantastic adaptation. Highly encourage sci-fi fans to check it out when it hits theaters later this month.

Vincent Driessen reposted

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 ↓

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.

Vincent Driessen reposted

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 ↓

Vincent Driessen reposted

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.ioIntroducing Zen Router: our open-source type-safe router compatible with Cloudflare Workers | Liveblocks blogWe’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.

Vincent Driessen reposted

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 ↓

Vincent Driessen reposted

✍️ 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.comContinvoucly Morged Value · Matthias OttWeb design engineer, UX designer, teacher, and speaker – helping teams build websites and digital products with a focus on CSS, accessibility, and performance.

Vincent Driessen reposted

Replying to @nvie.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.

View full thread

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.

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

Vincent Driessen reposted

Replying to @danabra.mov

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.

Kindness is underrated in professional settings.

Sam Rose@samwho.dev

I’m still routinely intimated by some people in tech. Everything I publish gets negative comments to some degree. People telling me I’m dumbing stuff down too much, or I’m wrong about stuff and shouldn’t be writing about it. Putting yourself out there eventually guarantees this will happen to you.

Vincent Driessen reposted

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

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.

Peter Magenheimer@peterjmags.com

Oh fun this time it's Atlassian: www.atlassian.com/git/tutorial...

Vincent Driessen reposted

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

David Bushell 🪿@dbushell.com

have a chuckle at this "Git flow" slop might explain GitHub's recent outages learn.microsoft.com/en-us/traini...