[{"data":1,"prerenderedAt":180},["ShallowReactive",2],{"talk-\u002Ftalks\u002F2025-12-05\u002Fdevfest-dijon":3,"talks-explore-en-f0bd50a5-2abd-4d76-b6de-4705590e0744":82},{"metadata":4,"summary":40,"transcript":81},{"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\u002F2025-12-05\u002Fdevfest-dijon.json","Reactivity and signals: demystifying frontend magic",{"summary":8},"summary.en.md","2025-12-05","Unpack frontend reactivity: change propagation, dependency tracking, signals, computed values, and effects in modern frameworks.",{"name":12,"url":13,"location":14},"DevFest Dijon","https:\u002F\u002Fdevfest.developers-group-dijon.fr\u002F",{"city":15,"country":16,"latitude":17,"longitude":18},"Dijon","France",47.31307384050383,5.072856389593075,"json",{"slides":21,"thumbnail":22,"thumbnailDark":23,"source":24,"pdf":25},"https:\u002F\u002Ftalks.soubiran.dev\u002F2025-12-05\u002Fdevfest-dijon","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-12-05\u002Fdevfest-dijon\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-12-05\u002Fdevfest-dijon\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-12-05\u002Fdevfest-dijon\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-12-05\u002Fdevfest-dijon\u002Fpdf","en",{},"2025-12-05\u002Fdevfest-dijon","fr","talks\u002F2025-12-05\u002Fdevfest-dijon","f0bd50a5-2abd-4d76-b6de-4705590e0744",[33,34,35,36,37,38],"computed-values","dependency-tracking","effects","frontend-reactivity","signals","vue","diRMq7OsbWVvxObTf4ybx4Tt40yvATa5OiNrGDSp5As",{"id":41,"body":42,"extension":77,"meta":78,"rawbody":79,"stem":30,"__hash__":80},"talksSummary\u002Ftalks\u002F2025-12-05\u002Fdevfest-dijon.md",{"type":43,"value":44,"toc":73},"minimark",[45,66],[46,47,48,49,53,54,57,58,61,62,65],"p",{},"Reactive rendering depends on knowing which computations use which pieces of state. This talk explores that relationship with ",[50,51,52],"code",{},"alien-signals",", from the basic ",[50,55,56],{},"signal",", ",[50,59,60],{},"computed",", and ",[50,63,64],{},"effect"," APIs to the data structures used to track dependencies.",[46,67,68,69,72],{},"It explains how updates propagate, why reactive systems need to deal with cycles and mutable state, and how a small signal-based framework can update the DOM. The final example connects the same ideas to Vue's ",[50,70,71],{},"ReactiveEffect",".",{"title":74,"searchDepth":75,"depth":75,"links":76},"",2,[],"md",{},"Reactive rendering depends on knowing which computations use which pieces of state. This talk explores that relationship with `alien-signals`, from the basic `signal`, `computed`, and `effect` APIs to the data structures used to track dependencies.\n\nIt explains how updates propagate, why reactive systems need to deal with cycles and mutable state, and how a small signal-based framework can update the DOM. The final example connects the same ideas to Vue's `ReactiveEffect`.\n","kVbEl-9v5yUTVdUBlsM375BkWkcFI83q-4mzgLiVrzY",null,[83,111,147],{"id":84,"title":6,"artifacts":85,"date":87,"description":10,"event":88,"extension":19,"links":95,"locale":26,"meta":105,"slug":106,"sourceLanguage":29,"stem":107,"talkId":108,"topics":109,"__hash__":110},"talks\u002Ftalks\u002F2026-02-12\u002Ftouraine-tech.json",{"summary":8,"transcript":86},"transcript.en.md","2026-02-12",{"name":89,"url":90,"location":91},"Touraine Tech","https:\u002F\u002Ftouraine.tech\u002F",{"city":92,"country":16,"latitude":93,"longitude":94},"Tours",47.358059501856914,0.7028678082506143,{"slides":96,"thumbnail":97,"thumbnailDark":98,"source":99,"pdf":100,"recording":101,"youtubeEmbed":102,"audio":103,"transcript":104},"https:\u002F\u002Ftalks.soubiran.dev\u002F2026-02-12\u002Ftouraine-tech","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-02-12\u002Ftouraine-tech\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-02-12\u002Ftouraine-tech\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-02-12\u002Ftouraine-tech\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-02-12\u002Ftouraine-tech\u002Fpdf","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-02-12\u002Ftouraine-tech\u002Frecording","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FLBc7S0yv9xY","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-02-12\u002Ftouraine-tech\u002Faudio","https:\u002F\u002Fsoubiran.dev\u002Ftalks\u002F2026-02-12\u002Ftouraine-tech",{},"2026-02-12\u002Ftouraine-tech","talks\u002F2026-02-12\u002Ftouraine-tech","d022fe9a-779c-4ee8-a7aa-e9f6cc358cbe",[33,34,35,36,37,38],"gbVXWoss2a7ijOv7LSMGQRi1mnWSRmkyLvEThfqgxGE",{"id":112,"title":113,"artifacts":114,"date":115,"description":116,"event":117,"extension":19,"links":124,"locale":26,"meta":135,"slug":136,"sourceLanguage":29,"stem":137,"talkId":138,"topics":139,"__hash__":146},"talks\u002Ftalks\u002F2025-04-29\u002Fmixit.json","In JavaScript, there's a package for everything... and often for nothing.",{"summary":8,"transcript":86},"2025-04-29","Examine the cost of unnecessary JavaScript dependencies and learn how to reduce the footprint of packages, bundles, and the delivery pipeline.",{"name":118,"url":119,"location":120},"MiXiT","https:\u002F\u002Fmixitconf.org\u002F",{"city":121,"country":16,"latitude":122,"longitude":123},"Lyon",45.78405605635917,4.869033628453851,{"slides":125,"thumbnail":126,"thumbnailDark":127,"source":128,"pdf":129,"recording":130,"youtubeEmbed":131,"audio":132,"transcript":133,"article":134},"https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit\u002Fpdf","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit\u002Frecording","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FVlyS6bJZYYU","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit\u002Faudio","https:\u002F\u002Fsoubiran.dev\u002Ftalks\u002F2025-04-29\u002Fmixit","https:\u002F\u002Ftalks.soubiran.dev\u002F2025-04-29\u002Fmixit\u002Farticle",{},"2025-04-29\u002Fmixit","talks\u002F2025-04-29\u002Fmixit","736afbb7-2bbb-43d9-bc01-8ffb3f97a239",[140,141,142,143,144,145],"bundle-size","dependencies","e18e","javascript","package-management","performance","kIYdAlzdDnO_VuIGeHImRKbrwoLmLk6e0NWgZ59ERj0",{"id":148,"title":149,"artifacts":150,"date":151,"description":152,"event":153,"extension":19,"links":160,"locale":26,"meta":166,"slug":167,"sourceLanguage":29,"stem":168,"talkId":169,"topics":170,"__hash__":179},"talks\u002Ftalks\u002F2026-06-18\u002Fvoxxeddays-luxembourg.json","Inside a pipeline: demystifying Vite and its plugins",{"summary":8},"2026-06-18","See how Vite processes each request with transformations, plugins, virtual modules, middleware, and HMR to extend modern web development.",{"name":154,"url":155,"location":156},"Voxxed Days Luxembourg","https:\u002F\u002Fluxembourg.voxxeddays.com\u002Fen\u002F",{"city":157,"country":157,"latitude":158,"longitude":159},"Luxembourg",49.50869734204942,6.278993417195408,{"slides":161,"thumbnail":162,"thumbnailDark":163,"source":164,"pdf":165},"https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-18\u002Fvoxxeddays-luxembourg","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-18\u002Fvoxxeddays-luxembourg\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-18\u002Fvoxxeddays-luxembourg\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-18\u002Fvoxxeddays-luxembourg\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2026-06-18\u002Fvoxxeddays-luxembourg\u002Fpdf",{},"2026-06-18\u002Fvoxxeddays-luxembourg","talks\u002F2026-06-18\u002Fvoxxeddays-luxembourg","a6e200c1-6442-4c97-906f-cb58cf102995",[171,172,173,174,175,176,177,178],"bundlers","esm","hot-module-replacement","middleware","module-transforms","plugin-development","virtual-modules","vite","EM70NPHUcCVtycNgr8CMvfaqpxq7b165tiNu56--yp8",1790086905654]