Artwork

A tartalmat a Kevin Åberg Kultalahti biztosítja. Az összes podcast-tartalmat, beleértve az epizódokat, grafikákat és podcast-leírásokat, közvetlenül a Kevin Åberg Kultalahti vagy a podcast platform partnere tölti fel és biztosítja. Ha úgy gondolja, hogy valaki az Ön engedélye nélkül használja fel a szerzői joggal védett művét, kövesse az itt leírt folyamatot https://hu.player.fm/legal.
Player FM - Podcast alkalmazás
Lépjen offline állapotba az Player FM alkalmazással!

Custom Renderers for Svelte with Paolo Ricciuti

1:00:59
 
Megosztás
 

Manage episode 523761540 series 2701962
A tartalmat a Kevin Åberg Kultalahti biztosítja. Az összes podcast-tartalmat, beleértve az epizódokat, grafikákat és podcast-leírásokat, közvetlenül a Kevin Åberg Kultalahti vagy a podcast platform partnere tölti fel és biztosítja. Ha úgy gondolja, hogy valaki az Ön engedélye nélkül használja fel a szerzői joggal védett művét, kövesse az itt leírt folyamatot https://hu.player.fm/legal.

In this episode of Svelte Radio, we welcome Jeppe as a new permanent host and sit down with Paolo Ricciuti, Svelte maintainer and Senior Software Developer at Main Matter, to dive deep into Svelte custom renderers. Paolo walks us through how custom renderers work (using React's approach with React DOM, Ink, and React Native as context), explains the technical challenges of bringing this capability to Svelte 5—including the template element trick, CSP issues, and runtime modifications—and shares his proof-of-concept work enabling Svelte to render to non-DOM targets like terminals and native mobile apps via Lynx.js. The discussion touches on potential use cases like Threlte for 3D graphics, the importance of this feature for Svelte adoption, and wraps up with picks including Screen Studio, TMCP, and Advent of Svelte.


Guest

  • Paolo Ricciuti — Svelte maintainer and ambassador, Senior Software Developer at Main Matter


New Host

  • Jeppe joins as a permanent co-host!


Topics Discussed


Custom Renderers Overview

  • What custom renderers are and why they matter
  • How React separates React (the diffing library) from React DOM (the renderer)
  • Examples of React custom renderers:
    • Ink — React for terminal/CLI applications
    • React Native — React for iOS/Android native apps
    • Remotion — React for programmatic video creation
    • React PDF renderer for generating documents


Svelte's Technical Approach

  • How Svelte 5 uses the element and innerHTML for fast rendering
  • The CSP (Content Security Policy) challenges with innerHTML
  • Paolo's compiler option contribution to enable programmatic element creation
  • The custom renderer API: defining operations like createElement, setText, setAttribute, appendChild, etc.
  • Separating the Svelte runtime from DOM-specific code

  • Lynx.js Integration

    • Lynx.js — ByteDance's cross-platform framework (powers parts of TikTok)
    • Why Lynx was the catalyst for custom renderer work
    • CSS support in Lynx including Flexbox, Grid, and even Tailwind
    • The difference between Lynx's element approach vs React Native's component imports


    Related Projects & Discussions

    • Threlte — Three.js for Svelte (created by Grisha)
    • React Three Fiber — Three.js React renderer
    • Svelte Native — Existing (but limited) Svelte native solution
    • LiveView Native (Elixir/Phoenix) as a comparison for multi-target templating
    • Discussion with Grisha about mixing renderers in the same component


    Funding & Open Source

    • Main Matter's sponsorship of Paolo's custom renderer work
    • First external sponsor for this initiative
    • Discussion about using Svelte Open Collective funds for this feature
    • Why custom renderers matter for Svelte adoption in enterprise


    Paolo's Recent Contributions to Svelte

    • onChange callback for $state (PR in progress)
    • from action utility
    • CSP-friendly compiler option (foundational for custom renderers)


    Picks

    • Screen Studioscreen.studio — Mac screen recording app with automatic zoom animations (Kevin's pick, used for Advent of Svelte recordings)
    • TMCPgithub.com/paoloricciuti/tmcp — Paolo's TypeScript MCP (Model Context Protocol) framework, praised for being much better than the official SDK (Jeppe's pick)
    • Advent of Sveltesvelte.dev/blog/advent-of-svelte — 24 days of Svelte features and improvements (Brittany's pick)


    Links


    Follow

  continue reading

88 epizódok

Artwork
iconMegosztás
 
Manage episode 523761540 series 2701962
A tartalmat a Kevin Åberg Kultalahti biztosítja. Az összes podcast-tartalmat, beleértve az epizódokat, grafikákat és podcast-leírásokat, közvetlenül a Kevin Åberg Kultalahti vagy a podcast platform partnere tölti fel és biztosítja. Ha úgy gondolja, hogy valaki az Ön engedélye nélkül használja fel a szerzői joggal védett művét, kövesse az itt leírt folyamatot https://hu.player.fm/legal.

In this episode of Svelte Radio, we welcome Jeppe as a new permanent host and sit down with Paolo Ricciuti, Svelte maintainer and Senior Software Developer at Main Matter, to dive deep into Svelte custom renderers. Paolo walks us through how custom renderers work (using React's approach with React DOM, Ink, and React Native as context), explains the technical challenges of bringing this capability to Svelte 5—including the template element trick, CSP issues, and runtime modifications—and shares his proof-of-concept work enabling Svelte to render to non-DOM targets like terminals and native mobile apps via Lynx.js. The discussion touches on potential use cases like Threlte for 3D graphics, the importance of this feature for Svelte adoption, and wraps up with picks including Screen Studio, TMCP, and Advent of Svelte.


Guest

  • Paolo Ricciuti — Svelte maintainer and ambassador, Senior Software Developer at Main Matter


New Host

  • Jeppe joins as a permanent co-host!


Topics Discussed


Custom Renderers Overview

  • What custom renderers are and why they matter
  • How React separates React (the diffing library) from React DOM (the renderer)
  • Examples of React custom renderers:
    • Ink — React for terminal/CLI applications
    • React Native — React for iOS/Android native apps
    • Remotion — React for programmatic video creation
    • React PDF renderer for generating documents


Svelte's Technical Approach

  • How Svelte 5 uses the element and innerHTML for fast rendering
  • The CSP (Content Security Policy) challenges with innerHTML
  • Paolo's compiler option contribution to enable programmatic element creation
  • The custom renderer API: defining operations like createElement, setText, setAttribute, appendChild, etc.
  • Separating the Svelte runtime from DOM-specific code

  • Lynx.js Integration

    • Lynx.js — ByteDance's cross-platform framework (powers parts of TikTok)
    • Why Lynx was the catalyst for custom renderer work
    • CSS support in Lynx including Flexbox, Grid, and even Tailwind
    • The difference between Lynx's element approach vs React Native's component imports


    Related Projects & Discussions

    • Threlte — Three.js for Svelte (created by Grisha)
    • React Three Fiber — Three.js React renderer
    • Svelte Native — Existing (but limited) Svelte native solution
    • LiveView Native (Elixir/Phoenix) as a comparison for multi-target templating
    • Discussion with Grisha about mixing renderers in the same component


    Funding & Open Source

    • Main Matter's sponsorship of Paolo's custom renderer work
    • First external sponsor for this initiative
    • Discussion about using Svelte Open Collective funds for this feature
    • Why custom renderers matter for Svelte adoption in enterprise


    Paolo's Recent Contributions to Svelte

    • onChange callback for $state (PR in progress)
    • from action utility
    • CSP-friendly compiler option (foundational for custom renderers)


    Picks

    • Screen Studioscreen.studio — Mac screen recording app with automatic zoom animations (Kevin's pick, used for Advent of Svelte recordings)
    • TMCPgithub.com/paoloricciuti/tmcp — Paolo's TypeScript MCP (Model Context Protocol) framework, praised for being much better than the official SDK (Jeppe's pick)
    • Advent of Sveltesvelte.dev/blog/advent-of-svelte — 24 days of Svelte features and improvements (Brittany's pick)


    Links


    Follow

  continue reading

88 epizódok

Minden epizód

×
 
Loading …

Üdvözlünk a Player FM-nél!

A Player FM lejátszó az internetet böngészi a kiváló minőségű podcastok után, hogy ön élvezhesse azokat. Ez a legjobb podcast-alkalmazás, Androidon, iPhone-on és a weben is működik. Jelentkezzen be az feliratkozások szinkronizálásához az eszközök között.

 

Gyors referencia kézikönyv

Hallgassa ezt a műsort, miközben felfedezi
Lejátszás