
Syntax - Tasty Web Development Treats 984: How to Make a DOM Library Render Anything w/ Paolo Ricciuti
24 snips
Mar 4, 2026 Paolo Ricciuti, Svelte maintainer who builds compiler internals and custom renderers at Mainmatter. He talks about making Svelte target non-browser platforms, the challenges of Svelte talking to the DOM, and building custom runtimes like Lynx. Short, technical, and full of engineering tradeoffs.
AI Snips
Chapters
Transcript
Episode notes
From Ambassador To Svelte Maintainer
- Paolo started as a Svelte ambassador, then contributed to Svelte 5 internals and reactivity, which led to becoming a maintainer.
- He learned the compiler/AST by fixing small issues, then progressively took on harder tasks until maintainers invited him in.
Svelte Compiles To Direct DOM Operations
- Svelte compiles components to JS that manipulates the DOM directly instead of using a virtual DOM diffing layer.
- Paolo shows compiled output like $.firstChild and $.setText to illustrate Svelte emits imperative DOM operations at build time.
Compiler Now Emits Structured Element Trees
- Svelte's compiled output originally embedded static HTML as strings and used template.innerHTML to create elements.
- Paolo changed the compiler to emit a structured array of element descriptors so renderers can avoid innerHTML and support CSP and non-HTML targets.

