[{"data":1,"prerenderedAt":164},["ShallowReactive",2],{"talk-\u002Ftalks\u002F2026-06-09\u002Fparis-typescript":3,"talks-explore-en-8756d756-4430-4084-b867-d02319db5418":74},{"metadata":4,"summary":40,"transcript":73},{"id":5,"title":6,"artifacts":7,"date":9,"description":10,"event":11,"extension":19,"links":20,"locale":26,"meta":27,"slug":28,"sourceLanguage":29,"stem":30,"talkId":31,"topics":32,"__hash__":39},"talks\u002Ftalks\u002F2026-06-09\u002Fparis-typescript.json","Inside a pipeline: demystifying Vite and its plugins",{"summary":8},"summary.en.md","2026-06-09","Learn the essentials of Vite: its ESM development server, on-demand transformations, plugin system, and virtual modules.",{"name":12,"url":13,"location":14},"Paris TypeScript","https:\u002F\u002Ftypescript.paris\u002F",{"city":15,"country":16,"latitude":17,"longitude":18},"Paris","France",48.80486167446941,2.324595137047259,"json",{"slides":21,"thumbnail":22,"thumbnailDark":23,"source":24,"pdf":25},"https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-09\u002Fparis-typescript","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-09\u002Fparis-typescript\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-09\u002Fparis-typescript\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-09\u002Fparis-typescript\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-09\u002Fparis-typescript\u002Fpdf","en",{},"2026-06-09\u002Fparis-typescript","fr","talks\u002F2026-06-09\u002Fparis-typescript","8756d756-4430-4084-b867-d02319db5418",[33,34,35,36,37,38],"bundlers","esm","module-transforms","plugin-development","virtual-modules","vite","9flG7RH1O1i9ta6H4dpACc19JeeAxuE84kfRyhGIuqI",{"id":41,"body":42,"extension":69,"meta":70,"rawbody":71,"stem":30,"__hash__":72},"talksSummary\u002Ftalks\u002F2026-06-09\u002Fparis-typescript.md",{"type":43,"value":44,"toc":65},"minimark",[45,49],[46,47,48],"p",{},"Vite processes requests between a project's files and the browser, transforming modules as they are requested and bundling the application for production. This talk uses images and other non-JavaScript imports to show why the browser receives JavaScript instead of the original source format.",[46,50,51,52,56,57,60,61,64],{},"It then introduces the three main plugin hooks, ",[53,54,55],"code",{},"resolveId",", ",[53,58,59],{},"load",", and ",[53,62,63],{},"transform",", and shows how multiple plugins pass module data through the pipeline. The final section explains virtual modules and how a plugin can generate code that does not exist on disk.",{"title":66,"searchDepth":67,"depth":67,"links":68},"",2,[],"md",{},"Vite processes requests between a project's files and the browser, transforming modules as they are requested and bundling the application for production. This talk uses images and other non-JavaScript imports to show why the browser receives JavaScript instead of the original source format.\n\nIt then introduces the three main plugin hooks, `resolveId`, `load`, and `transform`, and shows how multiple plugins pass module data through the pipeline. The final section explains virtual modules and how a plugin can generate code that does not exist on disk.\n","I2obFxMlzXYc3wmQZNA0ZPB7_f9T90XG81Hc7qIu82Q",null,[75,106,135],{"id":76,"title":77,"artifacts":78,"date":79,"description":80,"event":81,"extension":19,"links":87,"locale":26,"meta":93,"slug":94,"sourceLanguage":29,"stem":95,"talkId":96,"topics":97,"__hash__":105},"talks\u002Ftalks\u002F2026-01-22\u002Fvuejs-paris.json","Inertia: One Ring to rule them all",{"summary":8},"2026-01-22","Learn how Inertia.js modernizes the web monolith by pairing Laravel with Vue, React, or Svelte for reactive interfaces without a separate REST API.",{"name":82,"url":83,"location":84},"Vue.js Paris","https:\u002F\u002Fwww.meetup.com\u002Ffr-FR\u002Fvuejs-paris\u002F",{"city":15,"country":16,"latitude":85,"longitude":86},48.86017471886511,2.343880178313211,{"slides":88,"thumbnail":89,"thumbnailDark":90,"source":91,"pdf":92},"https:\u002F\u002Ftalks.soubiran.dev\u002F2026-01-22\u002Fvuejs-paris","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-01-22\u002Fvuejs-paris\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-01-22\u002Fvuejs-paris\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-01-22\u002Fvuejs-paris\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-01-22\u002Fvuejs-paris\u002Fpdf",{},"2026-01-22\u002Fvuejs-paris","talks\u002F2026-01-22\u002Fvuejs-paris","3fb1bd14-9b2d-4ef2-bf11-beededb68db4",[98,99,100,101,102,103,104],"full-stack","inertiajs","laravel","monolith","react","svelte","vue","-nU_XQw4aTe3ovmKfqkDBfxoHJM-JcrLly72A9qApPM",{"id":107,"title":6,"artifacts":108,"date":110,"description":111,"event":112,"extension":19,"links":119,"locale":26,"meta":129,"slug":130,"sourceLanguage":29,"stem":131,"talkId":132,"topics":133,"__hash__":134},"talks\u002Ftalks\u002F2026-04-16\u002Fmixit.json",{"summary":8,"transcript":109},"transcript.en.md","2026-04-16","Follow a Vite request through resolution, loading, and transformation to understand and build plugins, virtual modules, and custom integrations.",{"name":113,"url":114,"location":115},"MiXiT","https:\u002F\u002Fmixitconf.org\u002F",{"city":116,"country":16,"latitude":117,"longitude":118},"Lyon",45.78405605635917,4.869033628453851,{"slides":120,"thumbnail":121,"thumbnailDark":122,"source":123,"pdf":124,"recording":125,"youtubeEmbed":126,"audio":127,"transcript":128},"https:\u002F\u002Ftalks.soubiran.dev\u002F2026-04-16\u002Fmixit","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-04-16\u002Fmixit\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-04-16\u002Fmixit\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-04-16\u002Fmixit\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-04-16\u002Fmixit\u002Fpdf","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-04-16\u002Fmixit\u002Frecording","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FLiA9zksePho","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-04-16\u002Fmixit\u002Faudio","https:\u002F\u002Fsoubiran.dev\u002Ftalks\u002F2026-04-16\u002Fmixit",{},"2026-04-16\u002Fmixit","talks\u002F2026-04-16\u002Fmixit","5880a44d-a253-470f-8c25-aed834dcd69e",[33,34,35,36,37,38],"BVA5CtceLbELI7EGl5io4mQ5XlOqTL_nQL7gYjLCjjQ",{"id":136,"title":137,"artifacts":138,"date":139,"description":140,"event":141,"extension":19,"links":147,"locale":26,"meta":153,"slug":154,"sourceLanguage":29,"stem":155,"talkId":156,"topics":157,"__hash__":163},"talks\u002Ftalks\u002F2026-06-27-1\u002Fasynconf.json","Reactivity and signals: demystifying frontend magic",{"summary":8},"2026-06-27","Unpack frontend reactivity: change propagation, dependency tracking, signals, computed values, and effects in modern frameworks.",{"name":142,"url":143,"location":144},"Asynconf","https:\u002F\u002Fapp.itsasync.fr\u002Fconference",{"city":15,"country":16,"latitude":145,"longitude":146},48.89269193190247,2.2396244361872975,{"slides":148,"thumbnail":149,"thumbnailDark":150,"source":151,"pdf":152},"https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-27-1\u002Fasynconf","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-27-1\u002Fasynconf\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-27-1\u002Fasynconf\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-27-1\u002Fasynconf\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-27-1\u002Fasynconf\u002Fpdf",{},"2026-06-27-1\u002Fasynconf","talks\u002F2026-06-27-1\u002Fasynconf","3a6cc04a-9744-4594-9083-ec545eaaeaaa",[158,159,160,161,162,104],"computed-values","dependency-tracking","effects","frontend-reactivity","signals","aCtN3bWLcdN9qGQL5BvV09bkDgH4B2Nexmx4loZ9np4",1790086905060]