[{"data":1,"prerenderedAt":181},["ShallowReactive",2],{"talk-\u002Ftalks\u002F2026-06-27-1\u002Fasynconf":3,"talks-explore-en-3a6cc04a-9744-4594-9083-ec545eaaeaaa":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-27-1\u002Fasynconf.json","Reactivity and signals: demystifying frontend magic",{"summary":8},"summary.en.md","2026-06-27","Unpack frontend reactivity: change propagation, dependency tracking, signals, computed values, and effects in modern frameworks.",{"name":12,"url":13,"location":14},"Asynconf","https:\u002F\u002Fapp.itsasync.fr\u002Fconference",{"city":15,"country":16,"latitude":17,"longitude":18},"Paris","France",48.89269193190247,2.2396244361872975,"json",{"slides":21,"thumbnail":22,"thumbnailDark":23,"source":24,"pdf":25},"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","en",{},"2026-06-27-1\u002Fasynconf","fr","talks\u002F2026-06-27-1\u002Fasynconf","3a6cc04a-9744-4594-9083-ec545eaaeaaa",[33,34,35,36,37,38],"computed-values","dependency-tracking","effects","frontend-reactivity","signals","vue","aCtN3bWLcdN9qGQL5BvV09bkDgH4B2Nexmx4loZ9np4",{"id":41,"body":42,"extension":69,"meta":70,"rawbody":71,"stem":30,"__hash__":72},"talksSummary\u002Ftalks\u002F2026-06-27-1\u002Fasynconf.md",{"type":43,"value":44,"toc":65},"minimark",[45,58],[46,47,48,49,53,54,57],"p",{},"This talk explains frontend reactivity with a small signal-based system. It starts from ",[50,51,52],"code",{},"ui = fn(state)",", then uses ",[50,55,56],{},"alien-signals"," to connect signals, computed values, and effects through a dependency graph.",[46,59,60,61,64],{},"The examples introduce directed graphs, doubly linked lists, push and pull propagation, and the implementation of reactive updates. The presentation ends by relating the model to Vue's ",[50,62,63],{},"ReactiveEffect"," and component scopes.",{"title":66,"searchDepth":67,"depth":67,"links":68},"",2,[],"md",{},"This talk explains frontend reactivity with a small signal-based system. It starts from `ui = fn(state)`, then uses `alien-signals` to connect signals, computed values, and effects through a dependency graph.\n\nThe examples introduce directed graphs, doubly linked lists, push and pull propagation, and the implementation of reactive updates. The presentation ends by relating the model to Vue's `ReactiveEffect` and component scopes.\n","FfVuh8b44_kEzLVGSv6uISULBZqoVON6Ect_ShjDsfc",null,[75,112,145],{"id":76,"title":77,"artifacts":78,"date":80,"description":81,"event":82,"extension":19,"links":89,"locale":26,"meta":100,"slug":101,"sourceLanguage":29,"stem":102,"talkId":103,"topics":104,"__hash__":111},"talks\u002Ftalks\u002F2024-04-12\u002Fstrasbourgjs.json","Discover the UnJS ecosystem",{"summary":8,"transcript":79},"transcript.en.md","2024-04-12","Explore UnJS, its ecosystem of universal TypeScript libraries, and the tools that simplify building npm packages for every runtime.",{"name":83,"url":84,"location":85},"StrasbourgJS","https:\u002F\u002Fstrasbourgjs.org\u002F",{"city":86,"country":16,"latitude":87,"longitude":88},"Strasbourg",48.60359333922045,7.756997318155868,{"slides":90,"thumbnail":91,"thumbnailDark":92,"source":93,"pdf":94,"recording":95,"youtubeEmbed":96,"audio":97,"transcript":98,"article":99},"https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs\u002Fpdf","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs\u002Frecording","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FmPcJXqaBLFM","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs\u002Faudio","https:\u002F\u002Fsoubiran.dev\u002Ftalks\u002F2024-04-12\u002Fstrasbourgjs","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-04-12\u002Fstrasbourgjs\u002Farticle",{},"2024-04-12\u002Fstrasbourgjs","talks\u002F2024-04-12\u002Fstrasbourgjs","23e29cef-bfce-48fa-b742-991e4f272a41",[105,106,107,108,109,110],"cross-runtime","developer-tooling","edge-computing","npm-packages","typescript","unjs","l8w6f7Z2LtGDgayzaVK-1-7cbc-cyJSPqPcgnAgkmWE",{"id":113,"title":114,"artifacts":115,"date":116,"description":117,"event":118,"extension":19,"links":124,"locale":26,"meta":134,"slug":135,"sourceLanguage":26,"stem":136,"talkId":137,"topics":138,"__hash__":144},"talks\u002Ftalks\u002F2024-11-13\u002Fnuxtnation.json","Ship Nuxt apps that scale",{"summary":8,"transcript":79},"2024-11-13","Learn how NuxtHub brings Nuxt applications to production with Cloudflare's edge platform, managed data services, deployment tooling, and a scalable full-stack architecture.",{"name":119,"url":120,"location":121},"Nuxt Nation","https:\u002F\u002Fnuxtnation.com\u002F",{"city":122,"country":122,"latitude":123,"longitude":123},"Online",0,{"slides":125,"thumbnail":126,"thumbnailDark":127,"source":128,"pdf":129,"recording":130,"youtubeEmbed":131,"audio":132,"transcript":133},"https:\u002F\u002Ftalks.soubiran.dev\u002F2024-11-13\u002Fnuxtnation","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-11-13\u002Fnuxtnation\u002Fthumbnail.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-11-13\u002Fnuxtnation\u002Fthumbnail-dark.png","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-11-13\u002Fnuxtnation\u002Fsrc","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-11-13\u002Fnuxtnation\u002Fpdf","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-11-13\u002Fnuxtnation\u002Frecording","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FI4-YfEn8K0w","https:\u002F\u002Ftalks.soubiran.dev\u002F2024-11-13\u002Fnuxtnation\u002Faudio","https:\u002F\u002Fsoubiran.dev\u002Ftalks\u002F2024-11-13\u002Fnuxtnation",{},"2024-11-13\u002Fnuxtnation","talks\u002F2024-11-13\u002Fnuxtnation","ac5aed5a-f07a-4394-81e9-9d25ad026e7e",[139,107,140,141,142,143],"cloudflare","full-stack","nitro","nuxt","nuxthub","QdCLBpLzulywbO8vKHySyFeESnUy7iS-hs0wv7k1xSo",{"id":146,"title":147,"artifacts":148,"date":149,"description":150,"event":151,"extension":19,"links":158,"locale":26,"meta":169,"slug":170,"sourceLanguage":29,"stem":171,"talkId":172,"topics":173,"__hash__":180},"talks\u002Ftalks\u002F2025-04-29\u002Fmixit.json","In JavaScript, there's a package for everything... and often for nothing.",{"summary":8,"transcript":79},"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":152,"url":153,"location":154},"MiXiT","https:\u002F\u002Fmixitconf.org\u002F",{"city":155,"country":16,"latitude":156,"longitude":157},"Lyon",45.78405605635917,4.869033628453851,{"slides":159,"thumbnail":160,"thumbnailDark":161,"source":162,"pdf":163,"recording":164,"youtubeEmbed":165,"audio":166,"transcript":167,"article":168},"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",[174,175,176,177,178,179],"bundle-size","dependencies","e18e","javascript","package-management","performance","kIYdAlzdDnO_VuIGeHImRKbrwoLmLk6e0NWgZ59ERj0",1790086904943]