[{"data":1,"prerenderedAt":6814},["ShallowReactive",2],{"i-ic:outline-arrow-upward":3,"Footer_afPiwGMwNiEyV4syWzw87ovzxHAgs4iwKtCn4zqBf8E":8,"podcasts-count-3":16,"podcasts-3":17,"i-material-symbols:home":6680,"i-ic:baseline-play-circle-filled-white":6682,"Brand_bAcjTzQpW6OVpFK319jfMki97vH1GrZiqHmeI7Xg4o":6684,"Duration_EtqZa7zxzD7cdLJVdLUIl60efef3rlmttMSsW8uaA":6689,"Duration_b7PWehlh4mBAc3bm0MvQhCQfYrd7TArUKciZf1D5SW4":6694,"Duration_SilCdnwhctat2GeWxY2mpcbaodaFiRyFvQdQoSnw":6699,"Duration_5fnUb5dO3GPoCY54EbonujRUgEtKMSQF5XTULMzMKHI":6704,"Duration_sq0EsX1jftpaiPIQsnbrMfftD62MBZOGkk2GhFhso":6709,"Duration_pLpUh4xDPUMdINNNuv2e89fp4BDH8Mvf0uVYgbXlw":6714,"Duration_k7Xn9leHr04uJ8PN73tg7gq7DgAoEeHuYTnaZgOIQ":6719,"Duration_4QdJIIAuIgPFLgt2MUONXw69kWv4KFvusji2DaaPI":6724,"Duration_Y1XZGafY38ty4wLkCeIiFvWgQ1L476v40mTxFEocas":6729,"Duration_GXLrIvafBe2GIQNM0pM0TxsRmYzAGO1XvjUZ4374":6734,"Duration_sXLbGkeqYGrhI2rVVdFVWANWRYteIPMoDghZmOXVY":6739,"Duration_wkvnNR3cgGkQ6b6hmjkuoLk6QudTq07lRP62qjrbM":6744,"Duration_lSVsNog4tiJG2YHibybDbPYdWXmusXnepYwXIKMeuI8":6749,"Duration_YLKRw5J1VvNB8eDGICl8j72IwbKvf6KIRsGrFbmKfA":6754,"Duration_FqlLWzcFkD9Xgj7MHcj3IlBAJTM6kGfxrFPssvox1k":6759,"Duration_TSqAwgiBJZ75a6rSuA02efjBfK0bnMBoUFOUBSOZCE":6764,"Duration_gJ9dK85LbWjHG2X9nUTyttthvHxX8YZKBS86z9b5sk":6769,"Duration_K4V5LLOlAVkcLKMukbbhQqhpGoIPLZH5nHspRpJRIeU":6774,"Duration_93bUf0JOvoRN5dZJPmngIwNajTojiLpxZ6pgvnFwaQ0":6779,"Duration_x1gTxW6aXyBHtS1X5V0BS7t0xXE9GWrCsxAIzoURgfg":6784,"Duration_KIcBkXt1UBTkwVQ1xpgV6y5heIRnV35avKD0QbphWs":6789,"Duration_6RrJYoSASKbeVQjtAIJAc5wUdbTQDXmWQEe42wWWuIk":6794,"Duration_2wl6B3bzOlb2BGTQPpMitUbXY100S9N9w1O3GU4ThTQ":6799,"Duration_2LqIYZdRB053utpsqLzArYICwu014JJOX5kMKYIHYE":6804,"Duration_t01a5PpdI8z23DqRp1RdjqMGuv1PeDGe8HmtZzW89w":6809},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"currentColor\" d=\"m4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z\"\u002F>",["Island",9],{"key":10,"result":11},"Footer_afPiwGMwNiEyV4syWzw87ovzxHAgs4iwKtCn4zqBf8E",{"head":12},{"style":13},[14],{"innerHTML":15},":where(.i-mdi\\:github){display:inline-block;width:1em;height:1em;background-color:currentColor;-webkit-mask-image:var(--svg);mask-image:var(--svg);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;--svg:url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2'\u002F%3E%3C\u002Fsvg%3E\")}",136,[18,218,443,729,945,1120,1801,1975,2094,2231,2345,2635,2977,3404,3525,3871,4101,4566,4875,5120,5557,5700,6003,6136,6343],{"id":19,"title":20,"author":21,"body":22,"categories":192,"description":194,"dsSlug":195,"duration":196,"episodeArtwork":197,"episodeNumber":198,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":202,"meta":203,"navigation":204,"path":205,"publicationDate":206,"season":207,"seo":208,"status":209,"stem":210,"subtitle":201,"tags":211,"videoLink":216,"__hash__":217},"podcasts\u002Fpodcasts\u002F086.news05-2-24\u002Findex.md","Les news web dev pour Mai 2024 - partie 2","Double Slash",{"type":23,"value":24,"toc":178},"minimark",[25,30,34,87,91,97,101,108,115,119,125,129,135,139,145,149,152,158,162,168,172],[26,27,29],"h3",{"id":28},"conférence-devoxx-france-17-au-19-avril-2024","Conférence Devoxx France 17 au 19 avril 2024",[31,32,33],"p",{},"Sélection de vidéos des conférences",[35,36,37,47,54,60,67,74,77,84],"ul",{},[38,39,40,41],"li",{},"Huber Sablonniere et Antoine Caron parle de compression Web. Comment ça marche la compression,..  ",[42,43,44],"a",{"href":44,"rel":45},"https:\u002F\u002Fyoutu.be\u002FAF99cb1SCqM",[46],"nofollow",[38,48,49,50],{},"Julien Deniau qui nous parle des fuseaux horaires ",[42,51,52],{"href":52,"rel":53},"https:\u002F\u002Fyoutu.be\u002FQ25M9VR-gaw",[46],[38,55,56,57],{},"Thomas Simonnet qui nous fait un retour d’expérience sur les React Server Component ",[42,58,52],{"href":52,"rel":59},[46],[38,61,62,63],{},"Amadou Sall qui fait une longue présentation des changements dans Angular ",[42,64,65],{"href":65,"rel":66},"https:\u002F\u002Fyoutu.be\u002FhgaOiJPA6sg",[46],[38,68,69,70],{},"Arnaud PICHERY et Aurélien Coquard pour nous expliquer comment fonctionne un IA Générative. ",[42,71,72],{"href":72,"rel":73},"https:\u002F\u002Fyoutu.be\u002F47BlShlc4E8",[46],[38,75,76],{},"Estéban SOUBIRAN qui nous parle de l’écosysteme UnJS",[38,78,79,80],{},"Jean-Emmanuel Bibault qui parle de IA et de la médecine ",[42,81,82],{"href":82,"rel":83},"https:\u002F\u002Fyoutu.be\u002FNzcVlEfBjlI",[46],[38,85,86],{},"Rafik FERROUKH qui nous parle de Tabby, un copilot libre",[26,88,90],{"id":89},"tabby-une-ai-open-source-en-local","Tabby, une AI open-source en local",[31,92,93],{},[42,94,95],{"href":95,"rel":96},"https:\u002F\u002Ftabby.tabbyml.com\u002F",[46],[26,98,100],{"id":99},"super-8-lausanne-retour-sur-gutenberg-wordpress-nextjs","Super 8 Lausanne, retour sur Gutenberg WordPress + NextJS",[31,102,103,104],{},"Vidéo ",[42,105,106],{"href":106,"rel":107},"https:\u002F\u002Fwww.youtube.com\u002Flive\u002FItuOC-SBwt4",[46],[31,109,110,111],{},"Le repo ",[42,112,113],{"href":113,"rel":114},"https:\u002F\u002Fgithub.com\u002Fsuperhuit-agency\u002Fsuperstack",[46],[26,116,118],{"id":117},"doom-en-css","Doom en CSS",[31,120,121],{},[42,122,123],{"href":123,"rel":124},"https:\u002F\u002Fcodepen.io\u002Fcobra_winfrey\u002Fpen\u002FoNOMRav",[46],[26,126,128],{"id":127},"doom-dans-wordpress","Doom dans WordPress",[31,130,131],{},[42,132,133],{"href":133,"rel":134},"https:\u002F\u002Fdwinrhys.com\u002F2024\u002F05\u002F08\u002Fcan-wordpress-run-doom-of-course-it-can-heres-how\u002F",[46],[26,136,138],{"id":137},"css-query-detect-support","CSS query detect support",[31,140,141],{},[42,142,143],{"href":143,"rel":144},"https:\u002F\u002Fryanmulligan.dev\u002Fblog\u002Fdetect-js-support-in-css\u002F",[46],[26,146,148],{"id":147},"php-tools","PHP Tools",[31,150,151],{},"Refactoring automatique du code PHP",[31,153,154],{},[42,155,156],{"href":156,"rel":157},"https:\u002F\u002Fgetrector.com\u002Fblog\u002Frector-1-0-is-here\u002F",[46],[26,159,161],{"id":160},"comment-documenter-son-package","Comment documenter son package",[31,163,164],{},[42,165,166],{"href":166,"rel":167},"https:\u002F\u002Fdeno.com\u002Fblog\u002Fdocument-javascript-package",[46],[26,169,171],{"id":170},"générateur-de-documentation-encore-un","Générateur de documentation (encore un !)",[31,173,174],{},[42,175,176],{"href":176,"rel":177},"https:\u002F\u002Fvocs.dev\u002F",[46],{"title":179,"searchDepth":180,"depth":180,"links":181},"",2,[182,184,185,186,187,188,189,190,191],{"id":28,"depth":183,"text":29},3,{"id":89,"depth":183,"text":90},{"id":99,"depth":183,"text":100},{"id":117,"depth":183,"text":118},{"id":127,"depth":183,"text":128},{"id":137,"depth":183,"text":138},{"id":147,"depth":183,"text":148},{"id":160,"depth":183,"text":161},{"id":170,"depth":183,"text":171},[193],"Technology","Dans cet épisode, nous revenons sur une sélection de conférences en vidéo de l'évènement Devoxx France. Nous parlons également de Tabby, une IA open-source pour coder. Nous discuterons d’un retour sur WordPress headless couplé à NextJS. Nous allons aussi jouer à Doom dans le navigateur. Et nous finirons par quelques outils de développement.","DS_086_news05-2",2385,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1715962149\u002Fepisode\u002FART_86_sscbe2.png",86,"full","md",null,[],{},true,"\u002Fpodcasts\u002Fnews05-2-24","2024-05-18",1,{"title":20,"description":194},"published","podcasts\u002F086.news05-2-24\u002Findex",[212,213,214,215],"copilot","css","php","deno","sNBeqwJ8hPE","S_LagmFzZCdWL0qRvmqvW43PoslnQZdNp-vzL6G-GJ0",{"id":219,"title":220,"author":21,"body":221,"categories":423,"description":424,"dsSlug":425,"duration":426,"episodeArtwork":427,"episodeNumber":428,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":429,"meta":430,"navigation":204,"path":431,"publicationDate":432,"season":207,"seo":433,"status":209,"stem":434,"subtitle":435,"tags":436,"videoLink":441,"__hash__":442},"podcasts\u002Fpodcasts\u002F085.news-05-24\u002Findex.md","Les news web dev pour Mai 2024",{"type":23,"value":222,"toc":412},[223,227,233,237,248,252,258,261,264,267,270,276,281,287,291,294,300,306,310,316,355,359,365,376,380,386,390,396,400,403,409],[26,224,226],{"id":225},"comparer-le-code-des-frameworks","Comparer le code des frameworks",[31,228,229],{},[42,230,231],{"href":231,"rel":232},"https:\u002F\u002Fcomponent-party.dev\u002F",[46],[26,234,236],{"id":235},"retour-sur-web-awesome","Retour sur Web Awesome",[31,238,239,240,244],{},"Ils ont récoltés ",[241,242,243],"strong",{},"$722,637 sur les 30 000 demandés",[42,245,246],{"href":246,"rel":247},"https:\u002F\u002Fwww.kickstarter.com\u002Fprojects\u002Ffontawesome\u002Fweb-awesome",[46],[26,249,251],{"id":250},"react-19-bêta","React 19 bêta",[31,253,254],{},[42,255,256],{"href":256,"rel":257},"https:\u002F\u002Freact.dev\u002Fblog\u002F2024\u002F04\u002F25\u002Freact-19",[46],[31,259,260],{},"Hook use API pour les promesses.",[31,262,263],{},"Simplification de Context. Plus de provider. Accès au context avec use()",[31,265,266],{},"Gestion du Head. Script, Style meta, …",[31,268,269],{},"Plusieurs hook pour gérer les mutations useActionState, useFormStatus, useOptimistic…",[31,271,272],{},[42,273,274],{"href":274,"rel":275},"https:\u002F\u002Ftwitter.com\u002Fwesbos\u002Fstatus\u002F1783864009030070515?s=61&t=wu_jgRbOXZsweiMTeu2V9w",[46],[31,277,278],{},[241,279,280],{},"Ryan Florence tweet sur les changements sur Remix avec React 19",[31,282,283],{},[42,284,285],{"href":285,"rel":286},"https:\u002F\u002Ftwitter.com\u002Fryanflorence\u002Fstatus\u002F1785032813152207281?s=61&t=bpxIC-wqfOzLI9KUYS7k9Q",[46],[26,288,290],{"id":289},"redis-change-de-licence-création-de-valkey","Redis change de licence, création de ValKey",[31,292,293],{},"Redis Inc. passe redis sous licence propriétaire permissive duale (SSPLv1 et RSALv2) que du non-respect de l’engagement pris par Redis de conserver Redis Core sous BSD-3",[31,295,296,299],{},[241,297,298],{},"AWS, Oracle et Google Cloud, Oracle, Ericsson et Snap Inc, etc.. pousse Valkey.","\nValkey s’appuie sur la version de Redis Core 7.2.4 et conserva la licence BSD-3 du projet originel.",[31,301,302],{},[42,303,304],{"href":304,"rel":305},"https:\u002F\u002Fwww.linuxfoundation.org\u002Fpress\u002Flinux-foundation-launches-open-source-valkey-community",[46],[26,307,309],{"id":308},"node-22","Node 22",[31,311,312],{},[42,313,314],{"href":314,"rel":315},"https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Fannouncements\u002Fv22-release-announce",[46],[35,317,318,321,349,352],{},[38,319,320],{},"WebSocket client activé par défaut",[38,322,323,324,327,328,334,335,340,341],{},"require et import pour la vie !",[325,326],"br",{},"If ",[241,329,330],{},[331,332,333],"code",{},"--experimental-require-module"," is enabled, and the ECMAScript module being loaded by ",[241,336,337],{},[331,338,339],{},"require()"," meets the following requirements:",[35,342,343,346],{},[38,344,345],{},"Explicitly marked as an ES module with a \"type\": \"module\" field in the closest package.json or a .mjs extension.",[38,347,348],{},"Fully synchronous (contains no top-level await).",[38,350,351],{},"watch mode stable",[38,353,354],{},"Moteur V8 upgradé",[26,356,358],{"id":357},"jsr-un-package-registry-de-plus","JSR, un package registry de plus ?",[31,360,361],{},[42,362,363],{"href":363,"rel":364},"https:\u002F\u002Fjsr.io\u002F",[46],[35,366,367,370,373],{},[38,368,369],{},"TypeScript natif",[38,371,372],{},"ECMAScript only",[38,374,375],{},"Un superset de npm",[26,377,379],{"id":378},"learn-javascript","Learn JavaScript",[31,381,382],{},[42,383,384],{"href":384,"rel":385},"https:\u002F\u002Fweb.dev\u002Flearn\u002Fjavascript",[46],[26,387,389],{"id":388},"librarie-de-component-react-ui-wedge","Librarie de component React UI Wedge",[31,391,392],{},[42,393,394],{"href":394,"rel":395},"https:\u002F\u002Fwww.lemonsqueezy.com\u002Fwedges",[46],[26,397,399],{"id":398},"passer-un-vieux-site-wordpress-en-mode-static-simplement","Passer un vieux site WordPress en mode static simplement",[31,401,402],{},"Vous avez un vieux site qui tourne sur WordPress, vous souhaitez conserver le site en ligne mais plus trop vous occuper de la maintenance. Ce tuto est fait pour vous.",[31,404,405],{},[42,406,407],{"href":407,"rel":408},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F7MfPpIKc8I0",[46],[31,410,411],{},"Bonne écoute !",{"title":179,"searchDepth":180,"depth":180,"links":413},[414,415,416,417,418,419,420,421,422],{"id":225,"depth":183,"text":226},{"id":235,"depth":183,"text":236},{"id":250,"depth":183,"text":251},{"id":289,"depth":183,"text":290},{"id":308,"depth":183,"text":309},{"id":357,"depth":183,"text":358},{"id":378,"depth":183,"text":379},{"id":388,"depth":183,"text":389},{"id":398,"depth":183,"text":399},[193],"Dans cette épisode, nous allons évoquer un site qui vous permet de comparer le code des principaux frameworks front, de la sortie de ReactJS 19 en bêta, du changement de licence de Redis, de la sortie de node.js 22, d'un nouveau registre de package nommé JSR, d'une librairie de component React et Tailwind et de comment transformer un vieux site WordPress en simple site statique.","DS_085_news05",2951,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1714581775\u002Fepisode\u002FART_85_xvcybj.png",85,[],{},"\u002Fpodcasts\u002Fnews-05-24","2024-05-02",{"title":220,"description":424},"podcasts\u002F085.news-05-24\u002Findex","Actualité du dev web",[437,438,439,440],"react","redis","remix","jsr","E_5a_-KqxyY","xiDBSXnl3RbO5LTUR0UvpOetdpSkVrFQnUOCMFVCYbI",{"id":444,"title":445,"author":21,"body":446,"categories":707,"description":708,"dsSlug":709,"duration":710,"episodeArtwork":711,"episodeNumber":712,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":713,"meta":714,"navigation":204,"path":715,"publicationDate":716,"season":207,"seo":717,"status":209,"stem":718,"subtitle":719,"tags":720,"videoLink":727,"__hash__":728},"podcasts\u002Fpodcasts\u002F084.news-04-24\u002Findex.md","Les News Web Dev Avril 2024",{"type":23,"value":447,"toc":687},[448,452,458,462,469,475,479,502,506,509,515,519,526,530,536,540,543,550,554,560,564,570,574,577,582,586,592,596,602,606,609,615,619,625,629,635,642,647,650,657,664,671,675,678,685],[26,449,451],{"id":450},"documentaire-vidéo-sur-lhistoire-de-nodejs","Documentaire vidéo sur l’histoire de Node.JS",[31,453,454],{},[42,455,456],{"href":456,"rel":457},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LB8KwiiUGy0",[46],[26,459,461],{"id":460},"un-nouveau-site-pour-nodejs","Un nouveau site pour Node.JS",[31,463,464],{},[42,465,468],{"href":466,"rel":467},"https:\u002F\u002Fx.com\u002Fnodejs\u002Fstatus\u002F1770134114915823684?s=20",[46],"https:\u002F\u002Fx.com\u002Fnodejs\u002Fstatus\u002F1770134114915823684",[31,470,471],{},[42,472,473],{"href":473,"rel":474},"https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Fannouncements\u002Fdiving-into-the-nodejs-website-redesign",[46],[26,476,478],{"id":477},"bun-passe-en-version-11-et-fonctionne-avec-windows","Bun passe en version 1.1 et fonctionne avec Windows",[35,480,481,488,495],{},[38,482,483,484],{},"V1.1 avec support pour Windows ",[42,485,486],{"href":486,"rel":487},"https:\u002F\u002Fbun.sh\u002Fblog\u002Fbun-v1.1",[46],[38,489,490,491],{},"prerender jsx ",[42,492,493],{"href":493,"rel":494},"https:\u002F\u002Fgithub.com\u002Faralroca\u002Fprerender-macro",[46],[38,496,497,498],{},"render Svelte ",[42,499,500],{"href":500,"rel":501},"https:\u002F\u002Ftwitter.com\u002Feinbuhrmi\u002Fstatus\u002F1773468933963551094?s=61&t=6NwlCeTH984yYtqoYBLWVg",[46],[26,503,505],{"id":504},"angular-et-wiz-merge-pour-le-meilleur-et-pour-le-pire","Angular et Wiz merge pour le meilleur et pour le pire",[31,507,508],{},"Wiz, un framework interne chez Google, et Angular fusionnent",[31,510,511],{},[42,512,513],{"href":513,"rel":514},"https:\u002F\u002Ftwitter.com\u002Fsarah_edo\u002Fstatus\u002F1770478763253379488?s=61&t=0_RmF-bdEw8QB9RB6Ti5Sw",[46],[26,516,518],{"id":517},"analogjs-10","AnalogJS 1.0",[31,520,521],{},[42,522,525],{"href":523,"rel":524},"https:\u002F\u002Fdev.to\u002Fanalogjs\u002Fannouncing-analogjs-10-19an?context=digest",[46],"https:\u002F\u002Fdev.to\u002Fanalogjs\u002Fannouncing-analogjs-10-19an",[26,527,529],{"id":528},"debugger-dans-le-navigateur-avec-copilot-ia","Debugger dans le navigateur avec Copilot IA",[31,531,532],{},[42,533,534],{"href":534,"rel":535},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vfVsAmNFLik",[46],[26,537,539],{"id":538},"solito-mélange-react-native-et-nextjs","Solito, mélange React Native et Next.JS",[31,541,542],{},"Next.Js et React Native mélangé",[31,544,545],{},[42,546,549],{"href":547,"rel":548},"https:\u002F\u002Fsolito.dev\u002Fmethodology",[46],"https:\u002F\u002Fsolito.dev",[26,551,553],{"id":552},"remix-défini-vitejs-par-défaut","Remix défini ViteJS par défaut",[31,555,556],{},[42,557,558],{"href":558,"rel":559},"https:\u002F\u002Ftwitter.com\u002Fmarkdalgleish\u002Fstatus\u002F1770224011831890036?s=61&t=0_RmF-bdEw8QB9RB6Ti5Sw",[46],[26,561,563],{"id":562},"strapi-5-beta-disponible","Strapi 5 beta disponible",[31,565,566],{},[42,567,568],{"href":568,"rel":569},"https:\u002F\u002Fstrapi.io\u002Ffive",[46],[26,571,573],{"id":572},"webawesome-librairie-web-component","WebAwesome, librairie Web Component",[31,575,576],{},"Librairie de Web Component par les créateurs de Font Awasome",[31,578,579],{},[42,580,246],{"href":246,"rel":581},[46],[26,583,585],{"id":584},"drag-and-drop-pragmatic","Drag and Drop pragmatic",[31,587,588],{},[42,589,590],{"href":590,"rel":591},"https:\u002F\u002Fgithub.com\u002Fatlassian\u002Fpragmatic-drag-and-drop",[46],[26,593,595],{"id":594},"laravel-herd-disponible-sur-windows","Laravel Herd disponible sur Windows",[31,597,598],{},[42,599,600],{"href":600,"rel":601},"https:\u002F\u002Fherd.laravel.com\u002Fwindows",[46],[26,603,605],{"id":604},"wordpress-65-avec-interactivity-api","WordPress 6.5 avec Interactivity API",[31,607,608],{},"Une sorte d’AlpineJS à la WordPress",[31,610,611],{},[42,612,613],{"href":613,"rel":614},"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2024\u002F03\u002F04\u002Finteractivity-api-dev-note\u002F",[46],[26,616,618],{"id":617},"vito-linterface-de-déploiement-pour-gérer-ses-serveurs","Vito, l’interface de déploiement pour gérer ses serveurs",[31,620,621],{},[42,622,623],{"href":623,"rel":624},"https:\u002F\u002Fgithub.com\u002Fvitodeploy\u002Fvito",[46],[26,626,628],{"id":627},"vjeux-lance-un-défi-pour-créer-un-jeux-de-mini-golf","Vjeux lance un défi pour créer un jeux de mini-golf",[31,630,631],{},[42,632,633],{"href":633,"rel":634},"https:\u002F\u002Ftwitter.com\u002Fvjeux\u002Fstatus\u002F1776264104665375123?s=61&t=GwYbeUQRYh3F4I5Y8zo8qg",[46],[31,636,637,638],{},"Le vainqueur ⇒ ",[42,639,640],{"href":640,"rel":641},"https:\u002F\u002Fgithub.com\u002FAlgorithm-Arena\u002Fweekly-challenge-11-mini-code-golf\u002Fissues\u002F5",[46],[643,644,646],"h2",{"id":645},"tendance-web-back","Tendance Web Back",[31,648,649],{},"Ces derniers temps, une tendance émerge coté développeurs(euses) backend. Les librairies qui transforment les MPA en SPA. LE tout sans écrire la moindre ligne de JavaScript.\nExemples de services\u002Flibrairies :",[31,651,652,653],{},"AlpineJS : ",[42,654,655],{"href":655,"rel":656},"https:\u002F\u002Falpinejs.dev\u002F",[46],[31,658,659,660],{},"Laravel LiveWire : ",[42,661,662],{"href":662,"rel":663},"https:\u002F\u002Flaravel.com\u002Fdocs\u002F11.x\u002Ffrontend#livewire",[46],[31,665,666,667],{},"HotWired (ROR et Symfony) ",[42,668,669],{"href":669,"rel":670},"https:\u002F\u002Fturbo.hotwired.dev\u002F",[46],[26,672,674],{"id":673},"explications-par-guillaume-briday-sur-le-meetup-lyonrb","Explications par Guillaume Briday sur le meetup Lyon.rb",[31,676,677],{},"“Why you really don’t need SPA”",[31,679,680],{},[42,681,684],{"href":682,"rel":683},"https:\u002F\u002Fyoutu.be\u002FJzxZSs161oU?feature=shared",[46],"https:\u002F\u002Fyoutu.be\u002FJzxZSs161oU",[31,686,411],{},{"title":179,"searchDepth":180,"depth":180,"links":688},[689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704],{"id":450,"depth":183,"text":451},{"id":460,"depth":183,"text":461},{"id":477,"depth":183,"text":478},{"id":504,"depth":183,"text":505},{"id":517,"depth":183,"text":518},{"id":528,"depth":183,"text":529},{"id":538,"depth":183,"text":539},{"id":552,"depth":183,"text":553},{"id":562,"depth":183,"text":563},{"id":572,"depth":183,"text":573},{"id":584,"depth":183,"text":585},{"id":594,"depth":183,"text":595},{"id":604,"depth":183,"text":605},{"id":617,"depth":183,"text":618},{"id":627,"depth":183,"text":628},{"id":645,"depth":180,"text":646,"children":705},[706],{"id":673,"depth":183,"text":674},[193],"Heureux de vous retrouver pour ce nouvel épisode. Nous allons parler d'un documentaire sur Node.JS, de Bun qui passe en version 1.1 et qui fonctionne avec désormais sur Windows, d'Angular et Wiz qui mergent pour le meilleur et pour le pire, de comment debugger dans le navigateur avec Copilot. Mais aussi de Solito, un mélange entre React Native et Next.JS, de Strapi 5 avec sa beta déjà disponible; De WebAwesome, une librairie de Web Components, d'une librairie Drag and Drop, de Laravel Herd enfin disponible sur Windows, de l'Interactivity API dans WordPress 6.5. Puis de Vito, une interface de déploiement pour gérer ses serveurs facilement, d'un défi pour créer un jeux de mini-golf lancé par Vjeux et enfin, une tendance web back pour éviter d'écrire du JS. Bonne écoute !","DS_084_news04",3696,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1713027183\u002Fepisode\u002FART_84_vskr3u.png",84,[],{},"\u002Fpodcasts\u002Fnews-04-24","2024-04-15",{"title":445,"description":708},"podcasts\u002F084.news-04-24\u002Findex","L&#x27;actualité du Dev",[721,722,723,724,725,726],"node","bun","angularJS","analogjs","React","Laravel","cjT4or8Jwds","kYgT3BmVb4F6zeP7yak9FsHiDy1CjCiu236YbxIwmoY",{"id":730,"title":731,"author":21,"body":732,"categories":923,"description":924,"dsSlug":925,"duration":926,"episodeArtwork":927,"episodeNumber":928,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":929,"meta":930,"navigation":204,"path":931,"publicationDate":932,"season":207,"seo":933,"status":209,"stem":934,"subtitle":935,"tags":936,"videoLink":943,"__hash__":944},"podcasts\u002Fpodcasts\u002F083.news-03-24\u002Findex.md","Les News Web Dev mars 2024",{"type":23,"value":733,"toc":908},[734,738,744,748,751,757,761,767,770,773,782,785,791,794,800,804,810,814,820,824,830,834,840,844,847,853,857,863,867,870,876,880,886,890,896,900,906],[26,735,737],{"id":736},"pwa-et-apple","PWA et Apple",[31,739,740],{},[42,741,742],{"href":742,"rel":743},"https:\u002F\u002Ftwitter.com\u002Fi\u002Fweb\u002Fstatus\u002F1763598540389929313",[46],[26,745,747],{"id":746},"rollup-version-rust","Rollup version Rust",[31,749,750],{},"Le futur bundler de Vite",[31,752,753],{},[42,754,755],{"href":755,"rel":756},"https:\u002F\u002Fgithub.com\u002Frolldown\u002Frolldown",[46],[26,758,760],{"id":759},"tailwind-v4-alpha","Tailwind v4 Alpha",[31,762,763],{},[42,764,765],{"href":765,"rel":766},"https:\u002F\u002Ftailwindcss.com\u002Fblog\u002Ftailwindcss-v4-alpha",[46],[31,768,769],{},"🚫 No postcss.config.js file\n🚫 No tailwind.config.js file.\n🚫 No configuring content globs.\n🚫 No @tailwind` directives in your CSS.",[31,771,772],{},"Exemple de Simon (Pro Tailwind)",[774,775,780],"pre",{"className":776,"code":778,"language":779},[777],"language-text","\u002F* app\u002Fstyles.css *\u002F\n\n@import 'tailwindcss'\n\n@theme {\n  --color-primary: #aab9ff;\n}\n","text",[331,781,778],{"__ignoreMap":179},[31,783,784],{},"This is the equivalent of doing the following in Tailwind CSS v3:",[774,786,789],{"className":787,"code":788,"language":779},[777],"\u002F\u002F tailwind.config.ts\n\nexport default {\n  theme: {\n    colors: {\n      primary: '#aab9ff'\n    }\n  }\n}\n",[331,790,788],{"__ignoreMap":179},[31,792,793],{},"In v4, the CSS variables are also exposed in your CSS output, which means you can “consume” those variables anywhere you need it:",[774,795,798],{"className":796,"code":797,"language":779},[777],"\u003Cdiv class=\"bg-(--color-primary)\">\n",[331,799,797],{"__ignoreMap":179},[26,801,803],{"id":802},"laravel-11","Laravel 11",[31,805,806],{},[42,807,808],{"href":808,"rel":809},"https:\u002F\u002Fblog.laravel.com\u002Flaravel-11-now-available",[46],[26,811,813],{"id":812},"react-compilé-mais-pas-pour-le-v19","React compilé mais pas pour le v19",[31,815,816],{},[42,817,818],{"href":818,"rel":819},"https:\u002F\u002Freacttraining.com\u002Fblog\u002Freact-19-will-be-compiled",[46],[26,821,823],{"id":822},"million-lint-pour-identifier-le-code-lent-et-suggérer-des-améliorations","Million Lint, pour identifier le code lent et suggérer des améliorations",[31,825,826],{},[42,827,828],{"href":828,"rel":829},"https:\u002F\u002Fmillion.dev\u002Fblog\u002Flint",[46],[26,831,833],{"id":832},"nuxt-hub-alpha","Nuxt Hub Alpha",[31,835,836],{},[42,837,838],{"href":838,"rel":839},"https:\u002F\u002Fhub.nuxt.com\u002F",[46],[26,841,843],{"id":842},"astro-studio-et-astro-db","Astro Studio et Astro DB ??",[31,845,846],{},"Espace avec une DB disponible et des helpers dans Astro pour interroger la DB.\nVidéo prochainement.",[31,848,849],{},[42,850,851],{"href":851,"rel":852},"https:\u002F\u002Fstudio.astro.build\u002F",[46],[26,854,856],{"id":855},"rspress-rspack-static-site-generator","RSPress, rspack static site generator",[31,858,859],{},[42,860,861],{"href":861,"rel":862},"https:\u002F\u002Fgithub.com\u002Fweb-infra-dev\u002Frspress",[46],[26,864,866],{"id":865},"shiki-syntaxe-highlighter-twoslash","Shiki Syntaxe highlighter + Twoslash",[31,868,869],{},"Retourne le code déjà formaté contrairement a Prism ou highlight.js.",[31,871,872],{},[42,873,874],{"href":874,"rel":875},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fshiki-v1",[46],[26,877,879],{"id":878},"livre-pour-implémenter-auth-sur-une-web-app","Livre pour implémenter auth sur une web app",[31,881,882],{},[42,883,884],{"href":884,"rel":885},"https:\u002F\u002Fthecopenhagenbook.com\u002F",[46],[26,887,889],{"id":888},"inp-article","INP Article",[31,891,892],{},[42,893,894],{"href":894,"rel":895},"https:\u002F\u002Fagencewebperformance.fr\u002Fmetrique-inp-amelioration\u002F",[46],[26,897,899],{"id":898},"streaming-without-js","Streaming without JS",[31,901,902],{},[42,903,904],{"href":904,"rel":905},"https:\u002F\u002Flamplightdev.com\u002Fblog\u002F2024\u002F01\u002F10\u002Fstreaming-html-out-of-order-without-javascript\u002F",[46],[31,907,411],{},{"title":179,"searchDepth":180,"depth":180,"links":909},[910,911,912,913,914,915,916,917,918,919,920,921,922],{"id":736,"depth":183,"text":737},{"id":746,"depth":183,"text":747},{"id":759,"depth":183,"text":760},{"id":802,"depth":183,"text":803},{"id":812,"depth":183,"text":813},{"id":822,"depth":183,"text":823},{"id":832,"depth":183,"text":833},{"id":842,"depth":183,"text":843},{"id":855,"depth":183,"text":856},{"id":865,"depth":183,"text":866},{"id":878,"depth":183,"text":879},{"id":888,"depth":183,"text":889},{"id":898,"depth":183,"text":899},[193],"Un épisode pour parler d’Apple qui fait marche arrière devant la commission européenne, de Rust de plus en plus présent dans nos outils, de la version de Tailwind 4 qui arrive en version alpha, de Laravel 11, d’Astro qui n’arrête plus de nous surprendre et pleins d’autres choses.","DS_083_news-03-24",3375,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1710311967\u002Fepisode\u002FART_83_srvzdf.png",83,[],{},"\u002Fpodcasts\u002Fnews-03-24","2024-03-13",{"title":731,"description":924},"podcasts\u002F083.news-03-24\u002Findex","L'actualité du développement Web",[937,938,939,940,941,942],"pwa","tailwindcss","astro","nuxt","shiki","web core vitals","khiumNmZf4o","I5hP2wq8_n7uW77_nfY3W3uixrbf15iSsr-Bckwh6Yo",{"id":946,"title":947,"author":21,"body":948,"categories":1103,"description":1104,"dsSlug":1105,"duration":1106,"episodeArtwork":1107,"episodeNumber":1108,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":1109,"meta":1110,"navigation":204,"path":1111,"publicationDate":1112,"season":207,"seo":1113,"status":209,"stem":1114,"subtitle":1115,"tags":1116,"videoLink":1118,"__hash__":1119},"podcasts\u002Fpodcasts\u002F082.news-feb24\u002Findex.md","Les News Web Dev février 2024",{"type":23,"value":949,"toc":1093},[950,954,957,965,969,977,985,989,992,1000,1004,1007,1016,1020,1023,1037,1040,1044,1047,1055,1059,1062,1065,1091],[643,951,953],{"id":952},"jquery-4","jQuery 4",[31,955,956],{},"Non c’est pas une blague, le développement de jQuery continue !",[35,958,959],{},[38,960,961],{},[42,962,963],{"href":963,"rel":964},"https:\u002F\u002Fblog.jquery.com\u002F2024\u002F02\u002F06\u002Fjquery-4-0-0-beta\u002F",[46],[643,966,968],{"id":967},"le-framework-remix-en-mode-spa","Le Framework Remix en mode SPA",[31,970,971,972,976],{},"Le premier article : ",[42,973,974],{"href":974,"rel":975},"https:\u002F\u002Fremix.run\u002Fdocs\u002Fen\u002Fmain\u002Ffuture\u002Fspa-mode",[46],"\nEn même temps que l'enregistrement, l'équipe Remix annonce avec la v2.7.0, la stabilisation du mode SPA et Vite.",[35,978,979],{},[38,980,981],{},[42,982,983],{"href":983,"rel":984},"https:\u002F\u002Fremix.run\u002Fblog\u002Fremix-vite-stable",[46],[643,986,988],{"id":987},"millionjs-30","Million.js 3.0",[31,990,991],{},"La librairie qui rend React 70% plus rapide sort une version 3.0 plus stable.",[35,993,994],{},[38,995,996],{},[42,997,998],{"href":998,"rel":999},"https:\u002F\u002Fmillion.dev\u002Fblog\u002Fmillion-3",[46],[643,1001,1003],{"id":1002},"tempo","Tempo",[31,1005,1006],{},"Une nouvelle lib pour les dates par l’équipe FormKit :",[35,1008,1009],{},[38,1010,1011],{},[42,1012,1015],{"href":1013,"rel":1014},"https:\u002F\u002Ftempo.formkit.com\u002F",[46],"https:\u002F\u002Ftempo.formkit.com",[26,1017,1019],{"id":1018},"nextjs-retour-dexpérience-en-cours","Next.js retour d'expérience (en cours...)",[31,1021,1022],{},"Petit retour d'expérience d'un dev avec Next.js. La stack :",[35,1024,1025,1028,1031,1034],{},[38,1026,1027],{},"Next.JS",[38,1029,1030],{},"TailwindCSS",[38,1032,1033],{},"Zustand",[38,1035,1036],{},"Content Layer (MDX)",[31,1038,1039],{},"Objectif : App Web en mode SPA (avec export statique) en multilingue et data via fichiers MDX.",[643,1041,1043],{"id":1042},"vite-pwa","Vite PWA",[31,1045,1046],{},"Le générateur PWA pour vite évolue :",[35,1048,1049],{},[38,1050,1051],{},[42,1052,1053],{"href":1053,"rel":1054},"https:\u002F\u002Fvite-pwa-org.netlify.app\u002Fassets-generator\u002Fintegrations.html",[46],[643,1056,1058],{"id":1057},"pwa-et-apple-wtf","PWA et Apple WTF !",[31,1060,1061],{},"Apple désactive une partie des fonctionnalités PWA dans la future version IOS.",[31,1063,1064],{},"Quelques articles :",[35,1066,1067,1073,1079,1085],{},[38,1068,1069],{},[42,1070,1071],{"href":1071,"rel":1072},"https:\u002F\u002Fwww.theregister.com\u002F2024\u002F02\u002F08\u002Fapple_web_apps_eu\u002F",[46],[38,1074,1075],{},[42,1076,1077],{"href":1077,"rel":1078},"https:\u002F\u002Fitnext.io\u002Fapple-wants-to-kill-pwas-0895be2e497b",[46],[38,1080,1081],{},[42,1082,1083],{"href":1083,"rel":1084},"https:\u002F\u002Fwww.igen.fr\u002Fios\u002F2024\u002F02\u002Fios-174-grosse-inquietude-sur-le-sort-des-web-apps-pwa-en-europe-141895",[46],[38,1086,1087],{},[42,1088,1089],{"href":1089,"rel":1090},"https:\u002F\u002Fwww.engadget.com\u002Fapple-confirms-home-screen-web-apps-will-no-longer-work-on-european-ios-devices-112527560.html",[46],[31,1092,411],{},{"title":179,"searchDepth":180,"depth":180,"links":1094},[1095,1096,1097,1098,1101,1102],{"id":952,"depth":180,"text":953},{"id":967,"depth":180,"text":968},{"id":987,"depth":180,"text":988},{"id":1002,"depth":180,"text":1003,"children":1099},[1100],{"id":1018,"depth":183,"text":1019},{"id":1042,"depth":180,"text":1043},{"id":1057,"depth":180,"text":1058},[193],"Épisode news pour février 2024, nous évoquons jQuery en version 4, si, si ! Remix JS sort un mode SPA, Million.js, une nouvelle lib pour gérer les dates, un retour d'expérience sur Next.js et Apple qui veut tuer les PWA.","DS_082_news-feb24",1989,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1708463465\u002Fepisode\u002FART_82_fdid7q.png",82,[],{},"\u002Fpodcasts\u002Fnews-feb24","2024-02-21",{"title":947,"description":1104},"podcasts\u002F082.news-feb24\u002Findex","Actualité du Web",[1117,439,437,937],"jquery","zbHSRWzczIE","OzSWghF9IJcoqGLPz0mL1n9zUiTD5EU8egNP48NbpYY",{"id":1121,"title":1122,"author":21,"body":1123,"categories":1783,"description":1784,"dsSlug":1785,"duration":1786,"episodeArtwork":1787,"episodeNumber":1788,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":1789,"meta":1790,"navigation":204,"path":1791,"publicationDate":1792,"season":207,"seo":1793,"status":209,"stem":1794,"subtitle":1795,"tags":1796,"videoLink":1799,"__hash__":1800},"podcasts\u002Fpodcasts\u002F081.cmsHeadless\u002Findex.md","Dans la jungle des CMS Headless",{"type":23,"value":1124,"toc":1746},[1125,1128,1131,1135,1176,1180,1184,1188,1191,1194,1197,1200,1203,1207,1210,1214,1217,1220,1224,1227,1230,1233,1236,1239,1243,1309,1313,1316,1319,1322,1325,1329,1332,1335,1338,1341,1344,1347,1353,1356,1386,1390,1393,1396,1399,1402,1405,1408,1411,1414,1417,1420,1423,1426,1429,1432,1435,1438,1441,1444,1447,1450,1453,1455,1477,1481,1561,1565,1568,1571,1594,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1627,1629,1632,1635,1638,1641,1644,1647,1650,1653,1719,1723,1730,1737,1744],[31,1126,1127],{},"Sans parler des fonctionnalités, multilingue, gestion des accès, preview…",[31,1129,1130],{},"Nous allons essayer de vous aider à faire un choix dans la jungle de CMS Headless. Vous expliquez les choses à vérifier. Nous allons tenter de vous faire comprendre qu’en fonction du client et du projet, il y a des CMS plus adaptés que d’autres.",[26,1132,1134],{"id":1133},"les-attentes-ou-fonctionnalités-à-ne-pas-négliger","Les attentes ou fonctionnalités à ne pas négliger",[35,1136,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173],{},[38,1138,1139],{},"Multilingue",[38,1141,1142],{},"Gestions accès\u002Frôles (très utile pour les entreprises avec différents services. Marketing, rédaction,…)",[38,1144,1145],{},"Éditeurs (WYSIWIG ou champs classiques)",[38,1147,1148],{},"Preview (vue des changements avant mise en ligne) Très important pour les sites statiques.",[38,1150,1151],{},"Gestion des médias (interne, externe, redimensionnement…) Souvent oublié mais primordial !",[38,1153,1154],{},"Process de validation (draft, review, validation etc… ) Certaines entreprises ont des relectures avant publication.",[38,1156,1157],{},"La simplicité d’utilisation et l’ergonomie. En tant que dev, on ne pense jamais à ça mais c’est aussi très important.",[38,1159,1160],{},"La vitesse (pour un éditeur qui passe du temps dans l’admin, c’est vite frustrant d’attendre)",[38,1162,1163],{},"Les librairies disponibles pour l’intégration. Fort couplage ou pas dans le code.",[38,1165,1166],{},"La customisation (le code est-il hookable pour exécuter des tâches spécifiques)",[38,1168,1169],{},"Webhook pour lancer les déploiements",[38,1171,1172],{},"Système d’import ou d’export. Le client ne va pas recréer tout le contenu.",[38,1174,1175],{},"Système de hub (import d’autres services pour intégration dans le contenu) e-commerce par exemple.",[643,1177,1179],{"id":1178},"les-types-de-cms","Les types de CMS",[643,1181,1183],{"id":1182},"git-based-cms","GIT based CMS",[26,1185,1187],{"id":1186},"fonctionnement","Fonctionnement",[31,1189,1190],{},"Le CMS ajoute une couche au-dessus de l’application et rend les éléments éditables ou le CMS propose un dashboard pour éditer les fichiers de contenu.",[31,1192,1193],{},"Dans tous les cas, ce sont les fichiers de contenu qui sont édités (MD, JSON, CSV).",[31,1195,1196],{},"On parle de Git parce que toutes les data sont stockées au même endroit que le code source du projet.",[31,1198,1199],{},"Quels types de projet :",[31,1201,1202],{},"Très adapté aux sites statiques de par le fonctionnement. Mais il est possible de faire aussi du dynamique SSR. Avec Nuxt content par exemple.",[26,1204,1206],{"id":1205},"quels-type-de-client","Quels type de client",[31,1208,1209],{},"En fonction du CMS utilisé ça peut être plus ou moins simple. Un CMS visuel peut être agréable pour les clients. A contrario, un système plus basique conviendrait plus à des personnes techniques.\nLe retour régulier des clients est la compréhension du déploiement par rapport à Git et l’automatisation qui va derrière. Généralement, les utilisateurs aiment voir les modifications rapidement et ne comprennent pas qu’il faille attendre.",[26,1211,1213],{"id":1212},"avantages","Avantages",[31,1215,1216],{},"Stockage simple",[31,1218,1219],{},"Certains frameworks gèrent bien les fichiers md.",[26,1221,1223],{"id":1222},"inconvénients","Inconvénients",[31,1225,1226],{},"Design limité sauf si on utilise du mdx\u002Fmdc mais ça complique les choses",[31,1228,1229],{},"A quels éléments prêter attention :",[31,1231,1232],{},"Mélange code CMS\u002Ffront (Tina CMS).",[31,1234,1235],{},"Gestion des images",[31,1237,1238],{},"Gestion des accès",[26,1240,1242],{"id":1241},"offres","Offres",[35,1244,1245,1253,1261,1269,1277,1285,1293,1301],{},[38,1246,1247,1248,1252],{},"Statamic (basé sur Laravel) Rest, GraphQL, Live Preview, Revisions, Multisite,…) ",[42,1249,1250],{"href":1250,"rel":1251},"https:\u002F\u002Fstatamic.com\u002Ffeatures",[46]," (propriétaire)",[38,1254,1255,1256,1260],{},"Nuxt Studio (seulement Nuxt) ",[42,1257,1258],{"href":1258,"rel":1259},"https:\u002F\u002Fnuxt.studio\u002F",[46]," (Preview) Non open-source",[38,1262,1263,1264,1268],{},"Decap CMS ",[42,1265,1266],{"href":1266,"rel":1267},"https:\u002F\u002Fdecapcms.org\u002F",[46]," (Workflow, preview)  (open-source)",[38,1270,1271,1272,1276],{},"Sveltia CMS ",[42,1273,1274],{"href":1274,"rel":1275},"https:\u002F\u002Fgithub.com\u002Fsveltia\u002Fsveltia-cms",[46]," (Comme Decap CMS en plus light)  (open-source)",[38,1278,1279,1280,1284],{},"KeyStatic ",[42,1281,1282],{"href":1282,"rel":1283},"https:\u002F\u002Fkeystatic.com\u002F",[46],"  (open-source)",[38,1286,1287,1288,1292],{},"Static CMS ",[42,1289,1290],{"href":1290,"rel":1291},"https:\u002F\u002Fwww.staticcms.org\u002F",[46]," (open-source)",[38,1294,1295,1296,1300],{},"Tina CMS ",[42,1297,1298],{"href":1298,"rel":1299},"https:\u002F\u002Ftina.io\u002F",[46]," (open-source et cloud) Media (S3, cloudinary,..)",[38,1302,1303,1304,1308],{},"Yama CMS ",[42,1305,1306],{"href":1306,"rel":1307},"https:\u002F\u002Fyama-cms.com\u002F",[46],"  (propriétaire)",[643,1310,1312],{"id":1311},"warning-baas-backend-as-a-service","Warning ! BAAS (Backend As A Service)",[26,1314,1187],{"id":1315},"fonctionnement-1",[31,1317,1318],{},"Les services Backend as a Service (BAAS) sont des solutions cloud qui simplifient le développement d'applications en fournissant une infrastructure backend prête à l'emploi.",[31,1320,1321],{},"Ces services gèrent les aspects tels que les serveurs, les bases de données, les APIs et la sécurité, permettant aux développeurs de se concentrer sur la création de fonctionnalités frontales.",[31,1323,1324],{},"Avec des fonctionnalités telles que la mise à l'échelle automatique, la gestion des utilisateurs, et des coûts basés sur l'utilisation, les BAAS offrent une approche efficace et rentable pour le développement d'applications, en éliminant la nécessité de gérer directement l'infrastructure backend.",[26,1326,1328],{"id":1327},"quels-types-de-projet","Quels types de projet",[31,1330,1331],{},"Tous les projets. Nécessite d’avoir un minimum de connaissances techniques pour exploiter correctement les fonctionnalités.",[26,1333,1206],{"id":1334},"quels-type-de-client-1",[31,1336,1337],{},"Clients plutôt startup avec des projets poussés et qui évoluent rapidement.",[26,1339,1213],{"id":1340},"avantages-1",[31,1342,1343],{},"Services faciles à utiliser avec des mises en place rapide d’authentification, etc..",[26,1345,1223],{"id":1346},"inconvénients-1",[31,1348,1349,1352],{},[241,1350,1351],{},"Ce n’est pas un CMS !"," Bien que l’on dispose d’une interface qui permet de gérer des data, on tape directement dans la base de données. C’est très dangereux et pas adapté pour les clients.",[26,1354,1242],{"id":1355},"offres-1",[35,1357,1358,1365,1372,1379],{},[38,1359,1360,1361,1284],{},"PocketBase ",[42,1362,1363],{"href":1363,"rel":1364},"https:\u002F\u002Fpocketbase.io\u002F",[46],[38,1366,1367,1368,1284],{},"Hasura ",[42,1369,1370],{"href":1370,"rel":1371},"https:\u002F\u002Fhasura.io\u002F",[46],[38,1373,1374,1375,1284],{},"Supabase ",[42,1376,1377],{"href":1377,"rel":1378},"https:\u002F\u002Fsupabase.com\u002F",[46],[38,1380,1381,1382],{},"Firebase ",[42,1383,1384],{"href":1384,"rel":1385},"https:\u002F\u002Ffirebase.google.com\u002F",[46],[643,1387,1389],{"id":1388},"saas-software-as-a-service","SAAS (Software As A Service)",[26,1391,1187],{"id":1392},"fonctionnement-2",[31,1394,1395],{},"Les systèmes de gestion de contenu en tant que service (CMS SAAS) sont des plateformes cloud qui simplifient la création, la gestion et la publication de contenus en ligne.",[31,1397,1398],{},"Ces CMS SAAS fournissent une interface conviviale pour la création de sites web, la gestion de contenu et l'organisation des données, éliminant la nécessité de gérer des serveurs ou des logiciels complexes localement.",[31,1400,1401],{},"Ils offrent généralement des fonctionnalités telles que la gestion des utilisateurs, et la mise à jour automatique du logiciel.",[31,1403,1404],{},"Les utilisateurs peuvent accéder à ces CMS via un navigateur web, ce qui facilite la collaboration à distance.",[31,1406,1407],{},"Avec des coûts basés sur un modèle d'abonnement, les CMS SAAS sont une option pratique pour les entreprises cherchant une solution tout-en-un sans se soucier de l'infrastructure sous-jacente.",[26,1409,1328],{"id":1410},"quels-types-de-projet-1",[31,1412,1413],{},"Tous les projets. Pour les entreprises qui n’ont pas envie de gérer une infrastructure ou qui n’ont pas de personnel technique (dev) en interne. Le coût du CMS est très faible par rapport à des coûts d’un salarié.",[26,1415,1206],{"id":1416},"quels-type-de-client-2",[31,1418,1419],{},"Entreprise, de la PME à la grande multinationale.",[31,1421,1422],{},"Startup.",[26,1424,1213],{"id":1425},"avantages-2",[31,1427,1428],{},"Services utilisables en quelques clics\u002Fheures (pour la partie back).",[31,1430,1431],{},"Pas de gestion de versions, pas de mise à jour à faire.",[31,1433,1434],{},"Pas de gestion de serveur.",[31,1436,1437],{},"Auto-scaling automatique souvent disponible.",[26,1439,1223],{"id":1440},"inconvénients-2",[31,1442,1443],{},"Le coût de certains CMS est très exclusif.",[31,1445,1446],{},"Parfois, le couplage très fort avec le CMS qui fait que c’est difficile de sortir du système et de migrer vers un autre CMS.",[31,1448,1449],{},"Les coûts qui peuvent changer sans que l’on puisse rien faire. Augmentation dans la plupart des cas.",[31,1451,1452],{},"Les data sont dans le CMS.",[31,1454,1229],{},[35,1456,1457,1459,1462,1465,1468,1471,1474],{},[38,1458,1139],{},[38,1460,1461],{},"Hook pour effectuer des actions au déclenchement d’un événement",[38,1463,1464],{},"Gestions des droits et des rôles",[38,1466,1467],{},"Import de data (exemple importer des data e-commerce)",[38,1469,1470],{},"Gestion des images (resize, optimisations, hosting)",[38,1472,1473],{},"Preview",[38,1475,1476],{},"….",[26,1478,1480],{"id":1479},"offres-saas","Offres SAAS",[35,1482,1483,1490,1497,1504,1511,1518,1525,1532,1539,1546,1554],{},[38,1484,1485,1486],{},"Prismic ",[42,1487,1488],{"href":1488,"rel":1489},"https:\u002F\u002Fprismic.io\u002F",[46],[38,1491,1492,1493],{},"ContentFull ",[42,1494,1495],{"href":1495,"rel":1496},"https:\u002F\u002Fwww.contentful.com\u002F",[46],[38,1498,1499,1500],{},"DatoCMS ",[42,1501,1502],{"href":1502,"rel":1503},"https:\u002F\u002Fwww.datocms.com\u002F",[46],[38,1505,1506,1507],{},"Builder IO ",[42,1508,1509],{"href":1509,"rel":1510},"https:\u002F\u002Fwww.builder.io\u002F",[46],[38,1512,1513,1514],{},"StoryBlock ",[42,1515,1516],{"href":1516,"rel":1517},"https:\u002F\u002Fwww.storyblok.com\u002F",[46],[38,1519,1520,1521],{},"Plasmic ",[42,1522,1523],{"href":1523,"rel":1524},"https:\u002F\u002Fwww.plasmic.app\u002Ffeatures",[46],[38,1526,1527,1528],{},"ButterCMS ",[42,1529,1530],{"href":1530,"rel":1531},"https:\u002F\u002Fbuttercms.com\u002F",[46],[38,1533,1534,1535],{},"Agility ",[42,1536,1537],{"href":1537,"rel":1538},"https:\u002F\u002Fagilitycms.com\u002F",[46],[38,1540,1541,1542],{},"Kontent.ai ",[42,1543,1544],{"href":1544,"rel":1545},"https:\u002F\u002Fkontent.ai\u002F",[46],[38,1547,1548,1549,1553],{},"Apito ",[42,1550,1551],{"href":1551,"rel":1552},"https:\u002F\u002Fapito.io\u002F",[46]," Existe en version community (beta)",[38,1555,1556,1557,1292],{},"Sanity Studio ",[42,1558,1559],{"href":1559,"rel":1560},"https:\u002F\u002Fwww.sanity.io\u002F",[46],[26,1562,1564],{"id":1563},"offre-hybride-offres-dhébergement-du-cms-open-source","Offre Hybride (Offres d’hébergement du CMS open-source)",[31,1566,1567],{},"Les créateurs des projets open-sources proposent des offres dites “Cloud”. C’est à dire, qu’il propose de s’occuper de l’hébergement pour vous. Un solution intéressante entre deux.",[31,1569,1570],{},"Les offres tournent entre 35$ et 199$ pour Payload,  99 dollars pour Strapi et Directus.",[35,1572,1573,1580,1587],{},[38,1574,1575,1576,1292],{},"Strapi Cloud ",[42,1577,1578],{"href":1578,"rel":1579},"https:\u002F\u002Fstrapi.io\u002Fcloud",[46],[38,1581,1582,1583,1292],{},"Directus Cloud ",[42,1584,1585],{"href":1585,"rel":1586},"https:\u002F\u002Fdirectus.io\u002F",[46],[38,1588,1589,1590,1292],{},"Payload Cloud ",[42,1591,1592],{"href":1592,"rel":1593},"https:\u002F\u002Fpayloadcms.com\u002F",[46],[643,1595,1597],{"id":1596},"cms-self-hosted","CMS Self-hosted",[26,1599,1187],{"id":1600},"fonctionnement-3",[31,1602,1603],{},"Les systèmes de gestion de contenu auto-hébergés (CMS Self-hosted) sont des solutions où l'utilisateur déploie et gère le CMS sur ses propres serveurs ou une infrastructure hébergée de manière indépendante.",[31,1605,1606],{},"Contrairement aux CMS en tant que service (CMS SAAS), ces CMS offrent un contrôle plus direct sur l'ensemble du système, permettant une personnalisation approfondie et une adaptation aux besoins spécifiques.",[31,1608,1609],{},"Les utilisateurs ont la responsabilité de la maintenance, des mises à jour, et de la sécurité du CMS, ainsi que de la gestion de l'infrastructure sous-jacente. Bien que cela offre une flexibilité accrue, cela nécessite également une expertise technique plus avancée et une responsabilité plus importante en matière de gestion.",[31,1611,1612],{},"Les CMS auto-hébergés sont souvent choisis par ceux qui recherchent un niveau élevé de personnalisation et de contrôle sur leur environnement en ligne.",[26,1614,1328],{"id":1615},"quels-types-de-projet-2",[31,1617,1618],{},"Tous les projets. Pour les entreprises qui ont du personnel technique (dev) en interne et des devs.",[31,1620,1621],{},"Ou qui passe par un prestataire externe (agence).",[26,1623,1206],{"id":1624},"quels-type-de-client-3",[31,1626,1419],{},[31,1628,1422],{},[26,1630,1213],{"id":1631},"avantages-3",[31,1633,1634],{},"Personnalisation du CMS sans limite",[31,1636,1637],{},"Pas de changement de prix.",[31,1639,1640],{},"On reste propriétaire des data, elles sont chez nous.",[26,1642,1223],{"id":1643},"inconvénients-3",[31,1645,1646],{},"On reste responsable de l’infrastructure",[31,1648,1649],{},"On doit gérer les mises à jour et la sécurité.",[26,1651,1242],{"id":1652},"offres-2",[35,1654,1655,1662,1668,1675,1682,1689,1696,1703,1711],{},[38,1656,1657,1658,1292],{},"Strapi ",[42,1659,1660],{"href":1660,"rel":1661},"https:\u002F\u002Fstrapi.io\u002F",[46],[38,1663,1664,1665,1292],{},"Directus self-hosted ",[42,1666,1585],{"href":1585,"rel":1667},[46],[38,1669,1670,1671,1292],{},"KeyStone ",[42,1672,1673],{"href":1673,"rel":1674},"https:\u002F\u002Fkeystonejs.com\u002F",[46],[38,1676,1677,1678,1252],{},"Craft CMS ",[42,1679,1680],{"href":1680,"rel":1681},"https:\u002F\u002Fcraftcms.com\u002F",[46],[38,1683,1684,1685,1292],{},"WordPress ",[42,1686,1687],{"href":1687,"rel":1688},"https:\u002F\u002Ffr.wordpress.org\u002F",[46],[38,1690,1691,1692,1284],{},"Ghost ",[42,1693,1694],{"href":1694,"rel":1695},"https:\u002F\u002Fghost.org\u002F",[46],[38,1697,1698,1699,1702],{},"Payload ",[42,1700,1592],{"href":1592,"rel":1701},[46]," (self hosted) (open-source)\nbasé sur la config pour générer l’admin",[38,1704,1705,1706,1710],{},"Webiny Self-hosted ",[42,1707,1708],{"href":1708,"rel":1709},"https:\u002F\u002Fwww.webiny.com\u002F",[46]," Free et payant ?!? (open-source)",[38,1712,1713,1714,1718],{},"Cockpit ",[42,1715,1716],{"href":1716,"rel":1717},"https:\u002F\u002Fgetcockpit.com\u002F",[46]," Free et version Pro Addons (open-source)",[643,1720,1722],{"id":1721},"quelques-précisions","Quelques Précisions",[31,1724,1725,1726],{},"Pour Strapi, les fondateurs sont français. Épisode du podcast a écouter : ",[42,1727,1728],{"href":1728,"rel":1729},"https:\u002F\u002Fdouble-slash.dev\u002Fpodcasts\u002Fstrapi\u002F",[46],[31,1731,1732,1733],{},"Vidéo : Installer Strapi sur Scalingo ",[42,1734,1735],{"href":1735,"rel":1736},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=XxU1nbOsIWM",[46],[31,1738,1739,1740],{},"A noter pour Directus, Alexandre Chopin est le Director of engineering\n",[42,1741,1742],{"href":1742,"rel":1743},"https:\u002F\u002Fdirectus.io\u002Fteam\u002Falex-chopin",[46],[31,1745,411],{},{"title":179,"searchDepth":180,"depth":180,"links":1747},[1748,1749,1750,1757,1765,1774,1782],{"id":1133,"depth":183,"text":1134},{"id":1178,"depth":180,"text":1179},{"id":1182,"depth":180,"text":1183,"children":1751},[1752,1753,1754,1755,1756],{"id":1186,"depth":183,"text":1187},{"id":1205,"depth":183,"text":1206},{"id":1212,"depth":183,"text":1213},{"id":1222,"depth":183,"text":1223},{"id":1241,"depth":183,"text":1242},{"id":1311,"depth":180,"text":1312,"children":1758},[1759,1760,1761,1762,1763,1764],{"id":1315,"depth":183,"text":1187},{"id":1327,"depth":183,"text":1328},{"id":1334,"depth":183,"text":1206},{"id":1340,"depth":183,"text":1213},{"id":1346,"depth":183,"text":1223},{"id":1355,"depth":183,"text":1242},{"id":1388,"depth":180,"text":1389,"children":1766},[1767,1768,1769,1770,1771,1772,1773],{"id":1392,"depth":183,"text":1187},{"id":1410,"depth":183,"text":1328},{"id":1416,"depth":183,"text":1206},{"id":1425,"depth":183,"text":1213},{"id":1440,"depth":183,"text":1223},{"id":1479,"depth":183,"text":1480},{"id":1563,"depth":183,"text":1564},{"id":1596,"depth":180,"text":1597,"children":1775},[1776,1777,1778,1779,1780,1781],{"id":1600,"depth":183,"text":1187},{"id":1615,"depth":183,"text":1328},{"id":1624,"depth":183,"text":1206},{"id":1631,"depth":183,"text":1213},{"id":1643,"depth":183,"text":1223},{"id":1652,"depth":183,"text":1242},{"id":1721,"depth":180,"text":1722},[193],"Le sujet des CMS Headless est très vaste. Les solutions disponibles sont impressionnantes. Il y a une quantité d’acteurs importants. Et surtout, les offres sont toutes différentes. En mode Saas, auto-hébergé, Git based ! Comment faire son choix.","DS_081_cmsHeadless",9999,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1707292580\u002Fepisode\u002FART_81_vtawjb.png",81,[],{},"\u002Fpodcasts\u002Fcmsheadless","2024-02-07",{"title":1122,"description":1784},"podcasts\u002F081.cmsHeadless\u002Findex","Comment bien choisir son CMS",[1797,1798],"cms","cms headless","OrpmNlsQvXo","B09_s09-pUGTOZfcKTY2n7Nt6nKEWwpvyLnC7gidGtw",{"id":1802,"title":1803,"author":21,"body":1804,"categories":1957,"description":1958,"dsSlug":1959,"duration":1960,"episodeArtwork":1961,"episodeNumber":1962,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":1963,"meta":1964,"navigation":204,"path":1965,"publicationDate":1966,"season":207,"seo":1967,"status":209,"stem":1968,"subtitle":1969,"tags":1970,"videoLink":1973,"__hash__":1974},"podcasts\u002Fpodcasts\u002F080.news24w3\u002Findex.md","Les News Web Dev janvier 2024 numéro 3",{"type":23,"value":1805,"toc":1942},[1806,1810,1818,1822,1825,1833,1836,1844,1847,1855,1859,1862,1870,1874,1882,1886,1889,1897,1900,1908,1911,1914,1917,1926,1930,1934,1940],[643,1807,1809],{"id":1808},"les-5-nouveautés-css-quun-dev-front-doit-maîtriser-en-2024","Les 5 nouveautés CSS qu'un dev front doit maîtriser en 2024",[35,1811,1812],{},[38,1813,1814],{},[42,1815,1816],{"href":1816,"rel":1817},"https:\u002F\u002Fweb.dev\u002Farticles\u002F5-css-snippets-every-front-end-developer-should-know-in-2024",[46],[643,1819,1821],{"id":1820},"version-6-du-framework-js-adonis-sort-le-24-janvier-2024","Version 6 du framework JS Adonis sort le 24 janvier 2024",[31,1823,1824],{},"Au moment où vous allez écouter ce podcast, la version 6 du framework JS Adonis sera sortie.",[35,1826,1827],{},[38,1828,1829],{},[42,1830,1831],{"href":1831,"rel":1832},"https:\u002F\u002Fadonisjs.com\u002Froad-to-v6",[46],[31,1834,1835],{},"Le tweet d'annonce:",[35,1837,1838],{},[38,1839,1840],{},[42,1841,1842],{"href":1842,"rel":1843},"https:\u002F\u002Ftwitter.com\u002Famanvirk1\u002Fstatus\u002F1748594799693746449?s=61&t=YYf8KAndGuh64i-gZKPISQ",[46],[31,1845,1846],{},"La discussion sur Github:",[35,1848,1849],{},[38,1850,1851],{},[42,1852,1853],{"href":1853,"rel":1854},"https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fcore\u002Fdiscussions\u002F4184",[46],[643,1856,1858],{"id":1857},"nextjs-en-version-141","NextJS en version 14.1",[31,1860,1861],{},"Pas de grosse révolution mais quelques améliorations intéressantes :",[35,1863,1864],{},[38,1865,1866],{},[42,1867,1868],{"href":1868,"rel":1869},"https:\u002F\u002Fnextjs.org\u002Fblog\u002Fnext-14-1",[46],[643,1871,1873],{"id":1872},"chrome-121-supporte-scrollbar-width-et-color","Chrome 121 supporte scrollbar width et color.",[35,1875,1876],{},[38,1877,1878],{},[42,1879,1880],{"href":1880,"rel":1881},"https:\u002F\u002Ftwitter.com\u002Fbramus\u002Fstatus\u002F1747685858059178490?s=61&t=pV7iYFkicRljwEIAouRpqA",[46],[643,1883,1885],{"id":1884},"la-communauté-react-inquiète-pour-lavenir-de-react","La communauté React inquiète pour l’avenir de React",[31,1887,1888],{},"Ça grogne dans la communauté React :",[26,1890,1892,1893],{"id":1891},"lettre-de-cassidy-williams-httpsblogcassidoocopostannoyed-at-react","Lettre de Cassidy Williams ",[42,1894,1895],{"href":1895,"rel":1896},"https:\u002F\u002Fblog.cassidoo.co\u002Fpost\u002Fannoyed-at-react\u002F",[46],[31,1898,1899],{},"Elle se plaint de la complexité croissante de React. Manque de communication avec la communauté. Longue période sans nouvelle version. Le fait de pousser à utiliser un framework et la migration d’une partie de l’équipe de React chez Vercel.",[26,1901,1903,1904],{"id":1902},"lettre-de-mateo-frana-httpsdevtomatfranareact-where-are-you-going-5284","Lettre de Mateo Frana ",[42,1905,1906],{"href":1906,"rel":1907},"https:\u002F\u002Fdev.to\u002Fmatfrana\u002Freact-where-are-you-going-5284",[46],[31,1909,1910],{},"Lui aussi ce plein de la complexité croissante avec l’introduction des server components, les server actions.",[31,1912,1913],{},"il s’inquiète de la collaboration accrue entre l’équipe React et Vercel.",[31,1915,1916],{},"Suggère la création d’un framework communautaire sans entreprise privée derrière.",[1918,1919,1920],"blockquote",{},[31,1921,1922,1925],{},[241,1923,1924],{},"I fell in love with React in 2016"," when Angular announced Angular 2 and we were worried about the breaking changes.",[643,1927,1929],{"id":1928},"tool","Tool",[26,1931,1933],{"id":1932},"lucide-une-librairie-dicônes","Lucide, une librairie d’icônes",[31,1935,1936],{},[42,1937,1938],{"href":1938,"rel":1939},"https:\u002F\u002Flucide.dev\u002F",[46],[31,1941,411],{},{"title":179,"searchDepth":180,"depth":180,"links":1943},[1944,1945,1946,1947,1948,1954],{"id":1808,"depth":180,"text":1809},{"id":1820,"depth":180,"text":1821},{"id":1857,"depth":180,"text":1858},{"id":1872,"depth":180,"text":1873},{"id":1884,"depth":180,"text":1885,"children":1949},[1950,1952],{"id":1891,"depth":183,"text":1951},"Lettre de Cassidy Williams https:\u002F\u002Fblog.cassidoo.co\u002Fpost\u002Fannoyed-at-react\u002F",{"id":1902,"depth":183,"text":1953},"Lettre de Mateo Frana https:\u002F\u002Fdev.to\u002Fmatfrana\u002Freact-where-are-you-going-5284",{"id":1928,"depth":180,"text":1929,"children":1955},[1956],{"id":1932,"depth":183,"text":1933},[193],"Troisième épisode de news pour janvier 2024 ! Nous évoquons les nouveautés CSS, la sortie de la version 6 du framework JS Adonis, la version 14.1 de NextJS, le support de scrollbar width et color dans Chrome 121 et les inquiétudes de la communauté React pour l’avenir de React.","DS_080_news24w3",1613,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1706043639\u002Fepisode\u002FART_80_yfrelp.png",80,[],{},"\u002Fpodcasts\u002Fnews24w3","2024-01-24",{"title":1803,"description":1958},"podcasts\u002F080.news24w3\u002Findex","Épisode news numéro 3 pour janvier 2024",[213,1971,1972],"adonis","nextjs","R3x-SSX3KBU","wesDIPYFBtWkrk_XMYCuFJueYvBgfUwn280DNa-IsAI",{"id":1976,"title":1977,"author":21,"body":1978,"categories":2074,"description":2075,"dsSlug":2076,"duration":2077,"episodeArtwork":2078,"episodeNumber":2079,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":2080,"meta":2081,"navigation":204,"path":2082,"publicationDate":2083,"season":207,"seo":2084,"status":209,"stem":2085,"subtitle":2086,"tags":2087,"videoLink":2092,"__hash__":2093},"podcasts\u002Fpodcasts\u002F079.news24w2\u002Findex.md","Les News Web Dev janvier 2024 numéro 2",{"type":23,"value":1979,"toc":2067},[1980,1987,1991,1999,2003,2011,2015,2023,2027,2035,2039,2045,2048,2065],[31,1981,1982,1983],{},"Articles sur les alternatives à Express js : ",[42,1984,1985],{"href":1985,"rel":1986},"https:\u002F\u002Fdouble-slash.dev\u002Farticles\u002Fexpress-js-alternative\u002F",[46],[643,1988,1990],{"id":1989},"outil-de-transformation-de-code-bien-pratique","Outil de transformation de code bien pratique :",[35,1992,1993],{},[38,1994,1995],{},[42,1996,1997],{"href":1997,"rel":1998},"https:\u002F\u002Ftransform.tools\u002F",[46],[643,2000,2002],{"id":2001},"générateur-ia-dinterfaces-pour-vue","Générateur IA d’interfaces pour Vue :",[35,2004,2005],{},[38,2006,2007],{},[42,2008,2009],{"href":2009,"rel":2010},"https:\u002F\u002Fwww.vue0.dev\u002F",[46],[643,2012,2014],{"id":2013},"outil-pour-tester-les-capacités-pwa-de-votre-navigateur","Outil pour tester les capacités PWA de votre navigateur :",[35,2016,2017],{},[38,2018,2019],{},[42,2020,2021],{"href":2021,"rel":2022},"https:\u002F\u002Fwhatpwacando.today\u002F",[46],[643,2024,2026],{"id":2025},"les-nouveautés-nhost","Les nouveautés NHOST :",[35,2028,2029],{},[38,2030,2031],{},[42,2032,2033],{"href":2033,"rel":2034},"https:\u002F\u002Fnhost.io\u002Fblog\u002Fai-week-release-day",[46],[643,2036,2038],{"id":2037},"classement-des-projets-github-2023","Classement des projets Github 2023",[31,2040,2041],{},[42,2042,2043],{"href":2043,"rel":2044},"https:\u002F\u002Frisingstars.js.org\u002F2023\u002Fen#section-all",[46],[31,2046,2047],{},"Les projets remarqués :",[35,2049,2050,2053,2056,2059,2062],{},[38,2051,2052],{},"Plusieurs outils de dessin\u002Fsketching",[38,2054,2055],{},"Drizzle ORM",[38,2057,2058],{},"Mermaid : diagramme",[38,2060,2061],{},"Tabby : terminal",[38,2063,2064],{},"Bruno : outil pour les appels API",[31,2066,411],{},{"title":179,"searchDepth":180,"depth":180,"links":2068},[2069,2070,2071,2072,2073],{"id":1989,"depth":180,"text":1990},{"id":2001,"depth":180,"text":2002},{"id":2013,"depth":180,"text":2014},{"id":2025,"depth":180,"text":2026},{"id":2037,"depth":180,"text":2038},[193],"Épisode 2 de l'année 2024. Nous évoquons un outil de transformation bien pratique, un générateur d'interfaces pour Vue en mode IA, une web app pour tester les capacités PWA de votre navigateur, les nouveautés NHOST et le classement des projets Github 2023.","DS_079_news24w2",2683,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1704833013\u002Fepisode\u002FART_79_bhk2bt.png",79,[],{},"\u002Fpodcasts\u002Fnews24w2","2024-01-10",{"title":1977,"description":2075},"podcasts\u002F079.news24w2\u002Findex","Épisode news numéro 2 pour janvier 2024",[2088,2089,212,2090,937,2091],"express","vue","nhost","devtools","EQd8lZQOUow","sEQuxm53usgqMr3Xxb_JQVMtuWcgsm4MsVRWN6-27EY",{"id":2095,"title":2096,"author":21,"body":2097,"categories":2212,"description":2213,"dsSlug":2214,"duration":2215,"episodeArtwork":2216,"episodeNumber":2217,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":2218,"meta":2219,"navigation":204,"path":2220,"publicationDate":2221,"season":207,"seo":2222,"status":209,"stem":2223,"subtitle":2224,"tags":2225,"videoLink":2229,"__hash__":2230},"podcasts\u002Fpodcasts\u002F078.news24w1\u002Findex.md","Les News Web Dev janvier 2024 numéro 1",{"type":23,"value":2098,"toc":2203},[2099,2103,2111,2115,2123,2127,2135,2139,2147,2151,2159,2163,2189,2193,2201],[26,2100,2102],{"id":2101},"une-nouvelle-version-de-vuejs-quelques-jours-avant-la-fin-de-lannée","Une nouvelle version de VueJS quelques jours avant la fin de l'année :",[35,2104,2105],{},[38,2106,2107],{},[42,2108,2109],{"href":2109,"rel":2110},"https:\u002F\u002Fblog.vuejs.org\u002Fposts\u002Fvue-3-4",[46],[26,2112,2114],{"id":2113},"léquipe-de-nuxtjs-vous-offres-une-nouvelle-version-pour-noël","L'équipe de NuxtJS, vous offres une nouvelle version pour Noël :",[35,2116,2117],{},[38,2118,2119],{},[42,2120,2121],{"href":2121,"rel":2122},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fv3-9",[46],[26,2124,2126],{"id":2125},"léquipe-de-nextjs-teste-lighting-css","L'équipe de NextJS teste lighting CSS :",[35,2128,2129],{},[38,2130,2131],{},[42,2132,2133],{"href":2133,"rel":2134},"https:\u002F\u002Ftwitter.com\u002Fleeerob\u002Fstatus\u002F1740124461683409042?s=61&t=GVGo-jHSwFEvnEa5wpW7cg",[46],[26,2136,2138],{"id":2137},"un-nextjs-devtools-avec-pour-exemple-celui-de-nuxtjs","Un NextJS devtools avec pour exemple celui de NuxtJS :",[35,2140,2141],{},[38,2142,2143],{},[42,2144,2145],{"href":2145,"rel":2146},"https:\u002F\u002Ftwitter.com\u002Fxinyao27\u002Fstatus\u002F1741447261132145133?s=61&t=GVGo-jHSwFEvnEa5wpW7cg",[46],[26,2148,2150],{"id":2149},"des-stats-sur-nuxtjs-dans-website-technologies","Des stats sur NuxtJS (dans Website Technologies) :",[35,2152,2153],{},[38,2154,2155],{},[42,2156,2157],{"href":2157,"rel":2158},"https:\u002F\u002Fradar.cloudflare.com\u002Fyear-in-review\u002F2023#website-technologies",[46],[26,2160,2162],{"id":2161},"quand-les-frameworks-monolithiques-se-remettent-au-front","Quand les frameworks monolithiques se (re)mettent au front :",[35,2164,2165,2172],{},[38,2166,2167,2168],{},"Symfony 7 ",[42,2169,2170],{"href":2170,"rel":2171},"https:\u002F\u002Fsymfony.com\u002F7",[46],[38,2173,2174,2175],{},"Rails 8 :",[35,2176,2177,2183],{},[38,2178,2179],{},[42,2180,2181],{"href":2181,"rel":2182},"https:\u002F\u002Ftwitter.com\u002Fdhh\u002Fstatus\u002F1736421111884288203?s=61&t=GVGo-jHSwFEvnEa5wpW7cg",[46],[38,2184,2185],{},[42,2186,2187],{"href":2187,"rel":2188},"https:\u002F\u002Ftwitter.com\u002Fdhh\u002Fstatus\u002F1741837909714411797?s=61&t=GVGo-jHSwFEvnEa5wpW7cg",[46],[26,2190,2192],{"id":2191},"quick-lint-le-linter-ultra-fast","Quick lint, le linter ultra fast !",[35,2194,2195],{},[38,2196,2197],{},[42,2198,2199],{"href":2199,"rel":2200},"https:\u002F\u002Ftwitter.com\u002Fstrager\u002Fstatus\u002F1741738925419335757?s=61&t=GVGo-jHSwFEvnEa5wpW7cg",[46],[31,2202,411],{},{"title":179,"searchDepth":180,"depth":180,"links":2204},[2205,2206,2207,2208,2209,2210,2211],{"id":2101,"depth":183,"text":2102},{"id":2113,"depth":183,"text":2114},{"id":2125,"depth":183,"text":2126},{"id":2137,"depth":183,"text":2138},{"id":2149,"depth":183,"text":2150},{"id":2161,"depth":183,"text":2162},{"id":2191,"depth":183,"text":2192},[193],"Le premier épisode de l'année 2024 ! La première série de nos épisodes codés en Rust. Des épisodes plus rapides mais beaucoup plus frais ! On évoque dans cet épisode, les mises à jour de Vue et de Nuxt entre les fêtes de fin d’année. Next qui teste LightningCSS. Et les framework monolithes qui se remettent au front.","DS_078_news24w1",1819,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1704349539\u002Fepisode\u002FART_78_mute8q.png",78,[],{},"\u002Fpodcasts\u002Fnews24w1","2024-01-04",{"title":2096,"description":2213},"podcasts\u002F078.news24w1\u002Findex","VueJS et NuxtJS, nous offres des nouvelles versions pour Noël !",[2089,940,1972,214,2226,2227,2228],"symphony","rails","linter","8GQ1Yg-jjW8","Avh-KhCHXaeJXyKEQg9FZemPw-k10j6_mBzXu6OYAK8",{"id":2232,"title":2233,"author":21,"body":2234,"categories":2329,"description":2330,"dsSlug":2331,"duration":2332,"episodeArtwork":2333,"episodeNumber":2334,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":2335,"meta":2336,"navigation":204,"path":2337,"publicationDate":2338,"season":207,"seo":2339,"status":209,"stem":2340,"subtitle":2341,"tags":2342,"videoLink":2343,"__hash__":2344},"podcasts\u002Fpodcasts\u002F077.newsNoel23\u002Findex.md","Les News Web Dev pour Noël 2023",{"type":23,"value":2235,"toc":2317},[2236,2240,2246,2250,2256,2260,2266,2270,2276,2280,2286,2290,2296,2300,2307,2310,2314],[643,2237,2239],{"id":2238},"tailwind-css","Tailwind CSS",[31,2241,2242],{},[42,2243,2244],{"href":2244,"rel":2245},"https:\u002F\u002Ftailwindcss.com\u002Fblog\u002Ftailwindcss-v3-4",[46],[643,2247,2249],{"id":2248},"storybook","Storybook",[31,2251,2252],{},[42,2253,2254],{"href":2254,"rel":2255},"https:\u002F\u002Fstorybook.js.org\u002Fblog\u002Fstorybook-react-server-components\u002F",[46],[26,2257,2259],{"id":2258},"humour","Humour !",[31,2261,2262],{},[42,2263,2264],{"href":2264,"rel":2265},"https:\u002F\u002Ftwitter.com\u002Fsebastienlorber\u002Fstatus\u002F1737380479383277636?s=61&t=lcsnT99yMIg8f2iLLtprMw",[46],[643,2267,2269],{"id":2268},"tastejs","Tastejs",[31,2271,2272],{},[42,2273,2274],{"href":2274,"rel":2275},"https:\u002F\u002Ftastejs.com\u002Fmovies\u002F",[46],[643,2277,2279],{"id":2278},"enhance","Enhance",[31,2281,2282],{},[42,2283,2284],{"href":2284,"rel":2285},"https:\u002F\u002Fenhance.dev\u002F",[46],[643,2287,2289],{"id":2288},"sshx","SSHX",[31,2291,2292],{},[42,2293,2294],{"href":2294,"rel":2295},"https:\u002F\u002Fsshx.io\u002F",[46],[643,2297,2299],{"id":2298},"json-hero","Json Hero",[31,2301,2302],{},[42,2303,2306],{"href":2304,"rel":2305},"https:\u002F\u002Fjsonhero.io\u002F",[46],"https:\u002F\u002Fjsonhero.io",[31,2308,2309],{},"Bonne écoute et bonnes fêtes !",[26,2311,2313],{"id":2312},"sommaire","Sommaire",[31,2315,2316],{},"00:00:00 Intro\n00:01:45 Tailwind CSS 3.4\n00:04:55 Catalyst UI\n00:07:50 Storybook 8.0 RSC\n00:10:17 Humour RSC\n00:11:13 Tastejs\n00:13:00 Enhance\n00:15:00 SSHX\n00:17:00 Json Hero\n00:20:38 Fin",{"title":179,"searchDepth":180,"depth":180,"links":2318},[2319,2320,2323,2324,2325,2326],{"id":2238,"depth":180,"text":2239},{"id":2248,"depth":180,"text":2249,"children":2321},[2322],{"id":2258,"depth":183,"text":2259},{"id":2268,"depth":180,"text":2269},{"id":2278,"depth":180,"text":2279},{"id":2288,"depth":180,"text":2289},{"id":2298,"depth":180,"text":2299,"children":2327},[2328],{"id":2312,"depth":183,"text":2313},[193],"Un épisode de news pour Noël 2023. Nous évoquons dans cet épisode plus court que d'habitude. La version 3.4 de Tailwind CSS. Storybook qui prend en charge les RSC dans sa version 8 alpha. Tastejs, une app développée sous différents frameworks. Enhance, un framework méconnu tout mignon ! Et json Hero, un outil pour visualiser les données JSON.","DS_077_newsNoel23",1294,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1703095706\u002Fepisode\u002FART_77_newsnoel23_dltycu.png",77,[],{},"\u002Fpodcasts\u002Fnewsnoel23","2023-12-21",{"title":2233,"description":2330},"podcasts\u002F077.newsNoel23\u002Findex","Épisode de Noël 2023 spécial news.",[2248,938,2288],"ezoC4vessZs","6O_7dDC7NVc3C4UUXHrlNTYgHkVUGGB4qHOWJ45Fi9M",{"id":2346,"title":2347,"author":21,"body":2348,"categories":2619,"description":2620,"dsSlug":2621,"duration":2622,"episodeArtwork":2623,"episodeNumber":2624,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":2625,"meta":2626,"navigation":204,"path":2627,"publicationDate":2628,"season":207,"seo":2629,"status":209,"stem":2630,"subtitle":2631,"tags":2632,"videoLink":2633,"__hash__":2634},"podcasts\u002Fpodcasts\u002F076.news12_23\u002Findex.md","Les News Web Dev pour Décembre 2023",{"type":23,"value":2349,"toc":2605},[2350,2354,2370,2373,2388,2392,2395,2403,2407,2422,2426,2452,2455,2488,2492,2518,2522,2536,2540,2548,2552,2560,2564,2572,2576,2596,2599,2602],[643,2351,2353],{"id":2352},"vite","Vite !!",[35,2355,2356,2363],{},[38,2357,2358,2359],{},"Vitejs 5 ",[42,2360,2361],{"href":2361,"rel":2362},"https:\u002F\u002Fvitejs.dev\u002Fblog\u002Fannouncing-vite5",[46],[38,2364,2365,2366],{},"Vitest 1.0 ",[42,2367,2368],{"href":2368,"rel":2369},"https:\u002F\u002Fgithub.com\u002Fvitest-dev\u002Fvitest\u002Freleases\u002Ftag\u002Fv1.0.0",[46],[643,2371,2372],{"id":939},"Astro",[35,2374,2375,2382],{},[38,2376,2377,2378],{},"Astro V4 ",[42,2379,2380],{"href":2380,"rel":2381},"https:\u002F\u002Fastro.build\u002Fblog\u002Fastro-4\u002F",[46],[38,2383,2384],{},[42,2385,2386],{"href":2386,"rel":2387},"https:\u002F\u002Fastro.build\u002Fblog\u002Fsentry-official-monitoring-partner\u002F",[46],[643,2389,2391],{"id":2390},"débat-bundler-ou-module","Débat Bundler ou module",[31,2393,2394],{},"ViteJS toujours attaqué par les détracteurs !",[35,2396,2397],{},[38,2398,2399],{},[42,2400,2401],{"href":2401,"rel":2402},"https:\u002F\u002Fgithub.com\u002FyArna\u002Fvite-vs-x",[46],[643,2404,2406],{"id":2405},"revenant","Revenant",[35,2408,2409,2415],{},[38,2410,2411],{},[42,2412,2413],{"href":2413,"rel":2414},"https:\u002F\u002Fwww.producthunt.com\u002Fproducts\u002Flottielab",[46],[38,2416,2417],{},[42,2418,2421],{"href":2419,"rel":2420},"https:\u002F\u002Fwww.figma.com\u002Fcommunity\u002Fplugin\u002F1307008445393559148\u002Flottielab-figma-to-lottie-animation?ref=producthunt",[46],"https:\u002F\u002Fwww.figma.com\u002Fcommunity\u002Fplugin\u002F1307008445393559148\u002Flottielab-figma-to-lottie-animation",[643,2423,2425],{"id":2424},"tweet","Tweet",[35,2427,2428,2434,2440,2446],{},[38,2429,2430],{},[42,2431,2432],{"href":2432,"rel":2433},"https:\u002F\u002Ftwitter.com\u002Fi\u002Fweb\u002Fstatus\u002F1730649847769035254",[46],[38,2435,2436],{},[42,2437,2438],{"href":2438,"rel":2439},"https:\u002F\u002Ftwitter.com\u002Fematipico\u002Fstatus\u002F1729544562115326177?s=61&t=NDcE7V8eoxKgvoXgMF8H2Q",[46],[38,2441,2442],{},[42,2443,2444],{"href":2444,"rel":2445},"https:\u002F\u002Ftwitter.com\u002Fcalebporzio\u002Fstatus\u002F1730663340702081335?s=61&t=NDcE7V8eoxKgvoXgMF8H2Q",[46],[38,2447,2448],{},[42,2449,2450],{"href":2450,"rel":2451},"https:\u002F\u002Fx.com\u002Faddyosmani\u002Fstatus\u002F1730649847769035254?s=20",[46],[643,2453,2454],{"id":214},"PHP",[35,2456,2457,2469,2475,2482],{},[38,2458,2459,2463,2464,2468],{},[42,2460,2461],{"href":2461,"rel":2462},"https:\u002F\u002Fwww.laraveljutsu.net\u002Fblog\u002Fphp-83-est-sorti",[46]," ⇒ Typed Class Constants, #",[2465,2466,2467],"span",{},"Override"," Attribute, json_validate Function, etc..",[38,2470,2471],{},[42,2472,2473],{"href":2473,"rel":2474},"https:\u002F\u002Ftwitter.com\u002Flaravelmagazine\u002Fstatus\u002F1725514174728388793?s=61&t=NDcE7V8eoxKgvoXgMF8H2Q",[46],[38,2476,2477],{},[42,2478,2481],{"href":2479,"rel":2480},"https:\u002F\u002Fgithub.com\u002Fopenai-php\u002Fclient?sponsor=1",[46],"https:\u002F\u002Fgithub.com\u002Fopenai-php\u002F",[38,2483,2484],{},[42,2485,2486],{"href":2486,"rel":2487},"https:\u002F\u002Flaravel-news.com\u002Flaravel-pulse",[46],[643,2489,2491],{"id":2490},"lib","Lib",[35,2493,2494,2500,2506,2512],{},[38,2495,2496],{},[42,2497,2498],{"href":2498,"rel":2499},"https:\u002F\u002Fvestjs.dev\u002F",[46],[38,2501,2502],{},[42,2503,2504],{"href":2504,"rel":2505},"https:\u002F\u002Fstellate.co\u002Fblog\u002Fannouncing-fuse-js",[46],[38,2507,2508],{},[42,2509,2510],{"href":2510,"rel":2511},"https:\u002F\u002Fgithub.com\u002Fcharmbracelet\u002Fgum",[46],[38,2513,2514],{},[42,2515,2516],{"href":2516,"rel":2517},"https:\u002F\u002Fwindstatic.com\u002Fstyled-heros",[46],[643,2519,2521],{"id":2520},"rust","Rust",[35,2523,2524,2530],{},[38,2525,2526],{},[42,2527,2528],{"href":2528,"rel":2529},"https:\u002F\u002Foxc-project.github.io\u002F",[46],[38,2531,2532],{},[42,2533,2534],{"href":2534,"rel":2535},"https:\u002F\u002Ftwitter.com\u002Fyouyuxi\u002Fstatus\u002F1734439543280128030?s=61&t=Ctm-5VnWISLYOyuMBQGGmw",[46],[643,2537,2539],{"id":2538},"heu","Heu..",[35,2541,2542],{},[38,2543,2544],{},[42,2545,2546],{"href":2546,"rel":2547},"https:\u002F\u002Fformkit.com\u002Fpro",[46],[643,2549,2551],{"id":2550},"os","OS",[35,2553,2554],{},[38,2555,2556],{},[42,2557,2558],{"href":2558,"rel":2559},"https:\u002F\u002Ftwitter.com\u002Ftinacms\u002Fstatus\u002F1726654188392988719?s=61&t=NDcE7V8eoxKgvoXgMF8H2Q",[46],[643,2561,2563],{"id":2562},"article","Article",[35,2565,2566],{},[38,2567,2568],{},[42,2569,2570],{"href":2570,"rel":2571},"https:\u002F\u002Fthenewstack.io\u002Fhow-quiks-astro-integration-beats-both-react-and-vanilla-js\u002F",[46],[643,2573,2575],{"id":2574},"tools","Tools",[35,2577,2578,2584,2590],{},[38,2579,2580],{},[42,2581,2582],{"href":2582,"rel":2583},"https:\u002F\u002Fadresse.data.gouv.fr\u002Fapi-doc\u002Fadresse",[46],[38,2585,2586],{},[42,2587,2588],{"href":2588,"rel":2589},"https:\u002F\u002Felectric-sql.com\u002F",[46],[38,2591,2592],{},[42,2593,2594],{"href":2594,"rel":2595},"https:\u002F\u002Fshowcode.app\u002F",[46],[31,2597,2598],{},"Bonne écoute et bonnes fêtes de fin d'année !",[31,2600,2601],{},"Sommaire :",[31,2603,2604],{},"00:00:00 Intro\n00:02:31 ViteJS\n00:03:36 Vitest\n00:04:28 Astro\n00:11:34 Sentry Astro\n00:13:27 Bundle ou module\n00:17:03 Lottilab\n00:19:58 Image sizes auto\n00:22:43 Sentry vers Biome\n25:23 Signal dans AlpineJS\n27:20 PHP 8.3\n30:25 Pest Stressless\n31:48 Open AI PHP\n32:47 Laravel Pulse\n34:32 Vest JS\n36:31 FuseJS\n42:51 Gum\n45:26 Wind Static\n48:34 OXC Project\n50:58 Formkit\n54:52 TinaCMS\n57:13 Article Astro Qwik\n01:00:03 Adresse Data Gouv\n01:03:54 Electric SQL\n01:08:45 ShowCode",{"title":179,"searchDepth":180,"depth":180,"links":2606},[2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618],{"id":2352,"depth":180,"text":2353},{"id":939,"depth":180,"text":2372},{"id":2390,"depth":180,"text":2391},{"id":2405,"depth":180,"text":2406},{"id":2424,"depth":180,"text":2425},{"id":214,"depth":180,"text":2454},{"id":2490,"depth":180,"text":2491},{"id":2520,"depth":180,"text":2521},{"id":2538,"depth":180,"text":2539},{"id":2550,"depth":180,"text":2551},{"id":2562,"depth":180,"text":2563},{"id":2574,"depth":180,"text":2575},[193],"Un épisode de news pour décembre 2023, le dernier de l’année 2023. Nous évoquons dans cet épisode les dernières sorties, Vite JS, Astro, PHP. Nous parlons des écosystèmes JS et PHP. Vous retrouverez également des articles et outils à utiliser au quotidien pour vos développements.","DS_076_news12_23",4316,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1702466435\u002Fepisode\u002FART_76_news12_23_elckdx.png",76,[],{},"\u002Fpodcasts\u002Fnews12_23","2023-12-13",{"title":2347,"description":2620},"podcasts\u002F076.news12_23\u002Findex","Actu",[2352,939,214,2520],"EJB4Po5s7ak","ucQh54sKN1rY6HYRTWKht5vmaldnljtg71fvNFLPkp0",{"id":2636,"title":2637,"author":21,"body":2638,"categories":2959,"description":2960,"dsSlug":2961,"duration":2962,"episodeArtwork":2963,"episodeNumber":2964,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":2965,"meta":2966,"navigation":204,"path":2967,"publicationDate":2968,"season":207,"seo":2969,"status":209,"stem":2970,"subtitle":2971,"tags":2972,"videoLink":2975,"__hash__":2976},"podcasts\u002Fpodcasts\u002F075.dev_email\u002Findex.md","Coder des emails",{"type":23,"value":2639,"toc":2944},[2640,2644,2655,2659,2683,2687,2690,2701,2704,2707,2710,2714,2718,2734,2738,2782,2786,2795,2799,2802,2821,2826,2848,2853,2877,2881,2902,2910,2914,2922,2926,2932,2936,2942],[643,2641,2643],{"id":2642},"la-problématique-concernant-le-templating-des-emails","La problématique concernant le templating des emails",[35,2645,2646,2649,2652],{},[38,2647,2648],{},"Problème avec la multitude des clients mail (web et app)",[38,2650,2651],{},"Code spécifique (merci outlook, Gmail)",[38,2653,2654],{},"Contrainte d’utiliser du HTML des années 2000 à base de table pour avoir un rendu homogène.",[643,2656,2658],{"id":2657},"_2-types-demails","2 types d’emails",[35,2660,2661,2675],{},[38,2662,2663,2664],{},"emails transactionnels :\n",[35,2665,2666,2669,2672],{},[38,2667,2668],{},"confirmation de commande",[38,2670,2671],{},"creation de compte",[38,2673,2674],{},"…",[38,2676,2677,2678],{},"emails promotions et communication\n",[35,2679,2680],{},[38,2681,2682],{},"newsletters",[643,2684,2686],{"id":2685},"une-multitude-doutils-très-complets","Une multitude d’outils très complets.",[31,2688,2689],{},"Quelques exemples :",[35,2691,2692,2695,2698],{},[38,2693,2694],{},"BREVO (ex:sendinblue)",[38,2696,2697],{},"MailJet",[38,2699,2700],{},"MailCHIMP",[31,2702,2703],{},"Avantages : Prise en main facile pour des non-techs. Éditeurs d’emails à base de WYSIWYG",[31,2705,2706],{},"Inconvénients : Difficile à piloter depuis le CMS ou le service développé.",[31,2708,2709],{},"Solution bien adaptée pour la gestion des newsletters, mais pas forcément pour du transactionnel.\nParfois compliqué d’automatiser ou de variabiliser.",[643,2711,2713],{"id":2712},"allez-plus-loin-que-les-plateformes-demailing","Allez plus loin que les plateformes d’emailing",[26,2715,2717],{"id":2716},"_1-créer-des-templates-en-mode-no-code","1 - Créer des templates en mode no-code",[35,2719,2720,2727],{},[38,2721,2722,2723],{},"Achat de templates ",[42,2724,2725],{"href":2725,"rel":2726},"https:\u002F\u002Funlayer.com\u002Ftemplates",[46],[38,2728,2729,2730],{},"Service de création de template en ligne : ",[42,2731,2732],{"href":2732,"rel":2733},"https:\u002F\u002Fstripo.email\u002F",[46],[26,2735,2737],{"id":2736},"_2-créer-des-templates-en-mode-dev","2 - Créer des templates en mode dev",[35,2739,2740,2747,2754,2761,2768,2775],{},[38,2741,2742,2743],{},"En mode React style : MJML ",[42,2744,2745],{"href":2745,"rel":2746},"https:\u002F\u002Fmjml.io\u002F",[46],[38,2748,2749,2750],{},"Bojler ",[42,2751,2752],{"href":2752,"rel":2753},"https:\u002F\u002Fbojler.slicejack.com\u002F",[46],[38,2755,2756,2757],{},"Foundation Email ",[42,2758,2759],{"href":2759,"rel":2760},"https:\u002F\u002Fget.foundation\u002Femails.html",[46],[38,2762,2763,2764],{},"En mode tailwind CSS ",[42,2765,2766],{"href":2766,"rel":2767},"https:\u002F\u002Fmaizzle.com\u002F",[46],[38,2769,2770,2771],{},"En react : ",[42,2772,2773],{"href":2773,"rel":2774},"https:\u002F\u002Freact.email\u002F",[46],[38,2776,2777,2778],{},"En Vue : ",[42,2779,2780],{"href":2780,"rel":2781},"https:\u002F\u002Fwww.vuemail.net\u002F",[46],[26,2783,2785],{"id":2784},"_3-tester-les-emails-en-terme-marketing","3 - Tester les emails en terme marketing",[35,2787,2788],{},[38,2789,2790,2791],{},"Tester le design avec ",[42,2792,2793],{"href":2793,"rel":2794},"https:\u002F\u002Fwww.litmus.com\u002Femail-personalization\u002Fai-powered-email-marketing",[46],[26,2796,2798],{"id":2797},"_4-envoyer-les-emails","4 - Envoyer les emails",[31,2800,2801],{},"Via son propre serveur :",[35,2803,2804,2811,2818],{},[38,2805,2806,2807],{},"NodeJS ",[42,2808,2809],{"href":2809,"rel":2810},"https:\u002F\u002Fnodemailer.com\u002F",[46],[38,2812,2813,2814],{},"PHP ",[42,2815,2816],{"href":2816,"rel":2817},"https:\u002F\u002Fgithub.com\u002FPHPMailer\u002FPHPMailer",[46],[38,2819,2820],{},"Symfony Mailer, Laravel Mail, etc…",[31,2822,2823],{},[241,2824,2825],{},"Via des plateformes dédiées à l’envoi d’email :",[35,2827,2828,2835,2841],{},[38,2829,2830],{},[42,2831,2834],{"href":2832,"rel":2833},"https:\u002F\u002Fresend.com\u002F",[46],"RESEND",[38,2836,2837],{},[42,2838,2839],{"href":2839,"rel":2840},"https:\u002F\u002Fmailpace.com\u002F",[46],[38,2842,2843,2847],{},[42,2844,2845],{"href":2845,"rel":2846},"https:\u002F\u002Faws.amazon.com\u002Fses\u002F",[46]," (Le moins cher, mais attention US \u002F EU réglementations)",[31,2849,2850],{},[241,2851,2852],{},"Envoyer par paquet :",[35,2854,2855,2866],{},[38,2856,2857,2858],{},"Pourquoi :",[35,2859,2860,2863],{},[38,2861,2862],{},"pas passer pour un spammer",[38,2864,2865],{},"Charge serveur",[38,2867,2868,2869],{},"Solutions :",[35,2870,2871,2874],{},[38,2872,2873],{},"queue (Laravel Mail, nodemailer + kue,…)",[38,2875,2876],{},"Les services d’envois proposent toujours cette option",[26,2878,2880],{"id":2879},"_5-faire-en-sorte-que-les-emails-arrivent","5- Faire en sorte que les emails arrivent",[35,2882,2883,2886,2896],{},[38,2884,2885],{},"Attacher son nom de domaine",[38,2887,2888,2889,2892,2893],{},"Réglages DNS : ",[241,2890,2891],{},"MX","  - ",[241,2894,2895],{},"SPF  ( éviter les spams )",[38,2897,2898,2899],{},"Réglages Sécurité : ",[241,2900,2901],{},"DKIM et DMARC",[31,2903,2904,2905],{},"Outil pratique : ",[42,2906,2909],{"href":2907,"rel":2908},"https:\u002F\u002Fwww.mail-tester.com\u002F?lang=fr",[46],"https:\u002F\u002Fwww.mail-tester.com",[643,2911,2913],{"id":2912},"vidéo","Vidéo :",[35,2915,2916],{},[38,2917,2918],{},[42,2919,2920],{"href":2920,"rel":2921},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=MHnTpN0g7ko",[46],[643,2923,2925],{"id":2924},"personne-à-suivre","Personne à suivre :",[31,2927,2928],{},[42,2929,2930],{"href":2930,"rel":2931},"https:\u002F\u002Ftwitter.com\u002FHTeuMeuLeu",[46],[643,2933,2935],{"id":2934},"site-référence","Site référence",[31,2937,2938],{},[42,2939,2940],{"href":2940,"rel":2941},"https:\u002F\u002Fwww.caniemail.com\u002F",[46],[31,2943,411],{},{"title":179,"searchDepth":180,"depth":180,"links":2945},[2946,2947,2948,2949,2956,2957,2958],{"id":2642,"depth":180,"text":2643},{"id":2657,"depth":180,"text":2658},{"id":2685,"depth":180,"text":2686},{"id":2712,"depth":180,"text":2713,"children":2950},[2951,2952,2953,2954,2955],{"id":2716,"depth":183,"text":2717},{"id":2736,"depth":183,"text":2737},{"id":2784,"depth":183,"text":2785},{"id":2797,"depth":183,"text":2798},{"id":2879,"depth":183,"text":2880},{"id":2912,"depth":180,"text":2913},{"id":2924,"depth":180,"text":2925},{"id":2934,"depth":180,"text":2935},[193],"Dans cet épisode, nous allons évoquer le côté obscur de notre métier. Faire du développement à destination des emails ! Nous allons commencer par la partie templating, puis nous évoquerons les plateformes en lignes, les frameworks, les pièges à éviter et nous finirons par un retour d’expérience dans le secteur du e-commerce.","DS_075_dev_email",3822,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1701157471\u002FART_75_email_mytqlw.png",75,[],{},"\u002Fpodcasts\u002Fdev_email","2023-11-29",{"title":2637,"description":2960},"podcasts\u002F075.dev_email\u002Findex","Méthodes et outils pour la création et l'envoi d'emails",[2973,2974],"email","design","uc6vJ7ujlLE","L5F8OcEKaG6Hv_y_SnhrtdqtnS2zG4JKfWeBXAp5FWg",{"id":2978,"title":2979,"author":21,"body":2980,"categories":3385,"description":3386,"dsSlug":3387,"duration":3388,"episodeArtwork":3389,"episodeNumber":3390,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":3391,"meta":3392,"navigation":204,"path":3393,"publicationDate":3394,"season":207,"seo":3395,"status":209,"stem":3396,"subtitle":3397,"tags":3398,"videoLink":3402,"__hash__":3403},"podcasts\u002Fpodcasts\u002F074.newsNov23\u002Findex.md","Les News Web Dev pour Novembre 2023",{"type":23,"value":2981,"toc":3369},[2982,2986,3027,3034,3071,3075,3084,3094,3097,3122,3126,3132,3161,3165,3172,3179,3182,3195,3198,3201,3204,3207,3211,3214,3220,3224,3227,3233,3237,3244,3248,3251,3257,3261,3264,3270,3274,3277,3283,3289,3293,3296,3302,3304,3311,3318,3322,3328,3334,3340,3346,3350,3357,3363],[26,2983,2985],{"id":2984},"next-js-conf","Next JS Conf",[35,2987,2988],{},[38,2989,2990,2991,2995],{},"NextJS 14 ",[42,2992,2993],{"href":2993,"rel":2994},"https:\u002F\u002Fnextjs.org\u002Fblog\u002Fnext-14",[46],[35,2996,2997,3000,3003,3006,3013,3020],{},[38,2998,2999],{},"Pas de nouvelle API",[38,3001,3002],{},"Passage sans souci de la version 13 à 14",[38,3004,3005],{},"Turbopack amélioré et stabilisé mais toujours uniquement pour le mode dev",[38,3007,3008,3009],{},"Server Action stable ",[42,3010,3011],{"href":3011,"rel":3012},"https:\u002F\u002Fnextjs.org\u002Fdocs\u002Fapp\u002Fapi-reference\u002Ffunctions\u002Fserver-actions",[46],[38,3014,3015,3016],{},"Partial prerendering (Page statique avec quelques éléments dynamiques chargé en parallèle) ",[42,3017,3018],{"href":3018,"rel":3019},"https:\u002F\u002Fnextjs.org\u002Flearn\u002Fdashboard-app\u002Fpartial-prerendering",[46],[38,3021,3022,3023],{},"NextJS Lean ",[42,3024,3025],{"href":3025,"rel":3026},"https:\u002F\u002Fnextjs.org\u002Flearn",[46],[31,3028,3029],{},[42,3030,3033],{"href":3031,"rel":3032},"https:\u002F\u002Fsamgen.vercel.app\u002FGYVwdgxgLglg9mABAITnA1gWwIYCd0AUA3ogM4A2IA5ogL4CUiRAUIorgKZQi5IGttEAHgBGIKFAQDBiYHFyYAgtHhgAvEWykAnpEQFGagHxNpMxACIQpDmQ64AbvYsBuMzOwB3bDChkAjuQABgCSAHIAygCiAEoAKojhcQDyKGhYeOik%2BhTUjABqigAyAKpREfoAJES5VAwuQW7mdLRmRu7CqBg4%2BCEQCIgA9O0yQoNiEggjiPTMtEA",[46],"Meme generator pour les serveurs actions",[35,3035,3036,3064],{},[38,3037,3038,3039,3043],{},"Kent C. Dodds ",[42,3040,3041],{"href":3041,"rel":3042},"https:\u002F\u002Fwww.epicweb.dev\u002Fwhy-i-wont-use-nextjs",[46],[35,3044,3045],{},[38,3046,3047,3048],{},"Plusieurs critiques :\n",[35,3049,3050,3053,3056,3059,3062],{},[38,3051,3052],{},"Pas possible de le self hosted en mode serverless",[38,3054,3055],{},"Trop d’influence sur React",[38,3057,3058],{},"Trop magic (override du fetch natif pour le systeme de cache)",[38,3060,3061],{},"Devient trop complexe",[38,3063,2674],{},[38,3065,3066,3067],{},"Réponse de Lee Robinson ",[42,3068,3069],{"href":3069,"rel":3070},"https:\u002F\u002Fleerob.io\u002Fblog\u002Fusing-nextjs",[46],[643,3072,3074],{"id":3073},"angular","Angular",[31,3076,3077,3078,3083],{},"Sortie d’un nouveau site pour Angular ",[42,3079,3082],{"href":3080,"rel":3081},"http:\u002F\u002Fangular.dev\u002F",[46],"http:\u002F\u002Fangular.dev"," nouvelle documentation.",[1918,3085,3086],{},[31,3087,3088,3089,3093],{},"“Say hello ",[3090,3091],"binding",{"value":3092},"again"," to angular !”",[31,3095,3096],{},"Angular 17 :",[35,3098,3099,3106,3113,3116,3119],{},[38,3100,3101,3102],{},"nouvelle syntax dans les templates @if @for ",[42,3103,3104],{"href":3104,"rel":3105},"https:\u002F\u002Fangular.dev\u002Fguide\u002Ftemplates\u002Fcontrol-flow",[46],[38,3107,3108,3109],{},"@defer pour les gros composants ",[42,3110,3111],{"href":3111,"rel":3112},"https:\u002F\u002Fangular.dev\u002Fguide\u002Fdefer",[46],[38,3114,3115],{},"View Transitions",[38,3117,3118],{},"Signal est stable",[38,3120,3121],{},"Performance améliorée",[643,3123,3125],{"id":3124},"open-ai-dev-days","OPEN AI Dev Days",[31,3127,3128],{},[42,3129,3130],{"href":3130,"rel":3131},"https:\u002F\u002Fdevday.openai.com\u002F",[46],[35,3133,3134,3137,3140,3143,3146,3149,3152,3155,3158],{},[38,3135,3136],{},"GPT-4 Turbo 128K 🚀",[38,3138,3139],{},"JSON mode 🧩",[38,3141,3142],{},"GPT-4 Vision dans l'API 👀",[38,3144,3145],{},"DALL-E 3 dans l'API 🎨",[38,3147,3148],{},"Synthèse vocale 🗣️",[38,3150,3151],{},"Whisper 3 🎧",[38,3153,3154],{},"Limite de token par minute doublé ⏱️",[38,3156,3157],{},"GPT-4 fine tuning 🎚️",[38,3159,3160],{},"GPT-4 Turbo 2,75x moins cher",[643,3162,3164],{"id":3163},"symfony-asset-mapper","Symfony Asset Mapper",[31,3166,3167,3168],{},"La doc ",[42,3169,3170],{"href":3170,"rel":3171},"https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Ffrontend\u002Fasset_mapper.html",[46],[31,3173,3174,3175],{},"Vidéo de yoan dev ",[42,3176,3177],{"href":3177,"rel":3178},"https:\u002F\u002Fyoutu.be\u002FIbX-7GwEYwo",[46],[31,3180,3181],{},"Deux fonctions :",[35,3183,3184,3187],{},[38,3185,3186],{},"versioning des assets",[38,3188,3189,3190],{},"utilisation d’importmap pour importer les assets dans le navigateur ",[42,3191,3194],{"href":3192,"rel":3193},"https:\u002F\u002Fdeveloper.mozilla.org\u002Ffr\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Fscript\u002Ftype\u002Fimportmap#compatibilit%C3%A9_des_navigateurs",[46],"https:\u002F\u002Fdeveloper.mozilla.org\u002Ffr\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Fscript\u002Ftype\u002Fimportmap#compatibilité_des_navigateurs",[31,3196,3197],{},"Pas de merge des assets",[31,3199,3200],{},"Pas de minification",[31,3202,3203],{},"2 exemples pour utiliser sass et tailwind",[31,3205,3206],{},"Pas compatible avec les technos typescript, Vue, jsx, etc.. qui nécessite un build.",[643,3208,3210],{"id":3209},"ruby-on-rails-documentaire","Ruby on Rails, documentaire.",[31,3212,3213],{},"Documentaire sur l’origine de Ruby on Rail, pourquoi il a été créé et l’évolution.",[31,3215,3216],{},[42,3217,3218],{"href":3218,"rel":3219},"https:\u002F\u002Fyoutu.be\u002FHDKUEXBF3B4?si=_ZJ23JGyEojlo6Bu",[46],[643,3221,3223],{"id":3222},"laravel-livewire","Laravel Livewire",[31,3225,3226],{},"Vidéo pour apprendre l’utilisation de Livewire",[31,3228,3229],{},[42,3230,3231],{"href":3231,"rel":3232},"https:\u002F\u002Flaravel-news.com\u002Flivewire-learning-screencasts",[46],[643,3234,3236],{"id":3235},"ia","IA",[31,3238,3239,3240],{},"Une explication visuelle du fonctionnement des LLM\n",[42,3241,3242],{"href":3242,"rel":3243},"https:\u002F\u002Fig.ft.com\u002Fgenerative-ai\u002F",[46],[643,3245,3247],{"id":3246},"gsap-awwward","GSAP AWWWARD",[31,3249,3250],{},"Le nouveau site GSAP gagne un awwward",[31,3252,3253],{},[42,3254,3255],{"href":3255,"rel":3256},"https:\u002F\u002Fwww.awwwards.com\u002Fwebsites\u002Fgsap-animation\u002F",[46],[643,3258,3260],{"id":3259},"rspack","RSPack",[31,3262,3263],{},"Juste pour ne pas oublier que RSPack est compatible WebPack API et peut donc le remplacer.",[31,3265,3266],{},[42,3267,3268],{"href":3268,"rel":3269},"https:\u002F\u002Fwww.rspack.dev\u002F",[46],[643,3271,3273],{"id":3272},"prettier-rust","Prettier Rust",[31,3275,3276],{},"@vjeux offre 10 000 $ pour faire une version rust de prettier + guillermo ajoute 10 000 $ et Wasmer 2500 $",[31,3278,3279],{},[42,3280,3281],{"href":3281,"rel":3282},"https:\u002F\u002Fconsole.algora.io\u002Fchallenges\u002Fprettier",[46],[31,3284,3285],{},[42,3286,3287],{"href":3287,"rel":3288},"https:\u002F\u002Ftwitter.com\u002Fvjeux\u002Fstatus\u002F1722733472522142022?s=61&t=mcL37eO_RGMR1hypsPKTfA",[46],[643,3290,3292],{"id":3291},"biome","Biome",[31,3294,3295],{},"Rome s’arrête et un fork (Biome) reprend le flambeau. Rome Tools Inc. a baissé le rideau.",[31,3297,3298],{},[42,3299,3300],{"href":3300,"rel":3301},"https:\u002F\u002Fbiomejs.dev\u002Fblog\u002Fannoucing-biome",[46],[643,3303,2575],{"id":2574},[31,3305,3306,3307],{},"Outil pour animer son code ",[42,3308,3309],{"href":3309,"rel":3310},"https:\u002F\u002Fwww.hackreels.com\u002F",[46],[31,3312,3313,3314],{},"Le json survitaminé ",[42,3315,3316],{"href":3316,"rel":3317},"https:\u002F\u002Fgithub.com\u002Fblitz-js\u002Fsuperjson",[46],[643,3319,3321],{"id":3320},"articles","Articles",[31,3323,3324],{},[42,3325,3326],{"href":3326,"rel":3327},"https:\u002F\u002Fwww.learnwithjason.dev\u002Fblog\u002Foklch-better-color-css-browser",[46],[31,3329,3330],{},[42,3331,3332],{"href":3332,"rel":3333},"https:\u002F\u002Fdeveloper.chrome.com\u002Fen\u002Fblog\u002Fcss-prefers-reduced-transparency\u002F",[46],[31,3335,3336],{},[42,3337,3338],{"href":3338,"rel":3339},"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fhr-in-select\u002F",[46],[31,3341,3342],{},[42,3343,3344],{"href":3344,"rel":3345},"https:\u002F\u002Fwww.bram.us\u002F2023\u002F10\u002F23\u002Fcss-scroll-detection\u002F",[46],[643,3347,3349],{"id":3348},"tips","Tips",[31,3351,3352,3353],{},"Font variante tabular : ",[42,3354,3355],{"href":3355,"rel":3356},"https:\u002F\u002Ftwitter.com\u002Fjh3yy\u002Fstatus\u002F1715409590320288041?s=61&t=UwPamSaFma8DyQED2m4MEg",[46],[31,3358,3359],{},[42,3360,3361],{"href":3361,"rel":3362},"https:\u002F\u002Ftwitter.com\u002Fstackblitz\u002Fstatus\u002F1717902407437373458?s=61&t=UwPamSaFma8DyQED2m4MEg",[46],[31,3364,3365],{},[42,3366,3367],{"href":3367,"rel":3368},"https:\u002F\u002Fcodepen.io\u002Fjh3y\u002Fpen\u002FJjxPKXz",[46],{"title":179,"searchDepth":180,"depth":180,"links":3370},[3371,3372,3373,3374,3375,3376,3377,3378,3379,3380,3381,3382,3383,3384],{"id":2984,"depth":183,"text":2985},{"id":3073,"depth":180,"text":3074},{"id":3124,"depth":180,"text":3125},{"id":3163,"depth":180,"text":3164},{"id":3209,"depth":180,"text":3210},{"id":3222,"depth":180,"text":3223},{"id":3235,"depth":180,"text":3236},{"id":3246,"depth":180,"text":3247},{"id":3259,"depth":180,"text":3260},{"id":3272,"depth":180,"text":3273},{"id":3291,"depth":180,"text":3292},{"id":2574,"depth":180,"text":2575},{"id":3320,"depth":180,"text":3321},{"id":3348,"depth":180,"text":3349},[193],"Un épisode news pour novembre 2023. On parle des dernières conférences en cette fin d'année, la Next JS Conf, Open AI. Mais aussi le retour en force d'Angular. Et aussi des tools et des tips CSS.","DS_074_new11_23",4617,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1700291224\u002Fec4f4ef3-ad08-4945-8aab-cae563411170_nabun7.jpg",74,[],{},"\u002Fpodcasts\u002Fnewsnov23","2023-11-16",{"title":2979,"description":3386},"podcasts\u002F074.newsNov23\u002Findex","Un épisode news pour novembre 2023 sur les dernières conférences et des tips CSS.",[3399,439,3073,3235,3400,3401,2520,2228],"next","laravel","animation css","Bx_358U49Xg","ZlihmIdLUKgi23xQbpSUeuoNjTKvTPT4kBuMMB2UgSQ",{"id":3405,"title":3406,"author":21,"body":3407,"categories":3508,"description":3509,"dsSlug":3510,"duration":3511,"episodeArtwork":3512,"episodeNumber":3513,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":3514,"meta":3515,"navigation":204,"path":3516,"publicationDate":3517,"season":207,"seo":3518,"status":209,"stem":3519,"subtitle":3520,"tags":3521,"videoLink":3523,"__hash__":3524},"podcasts\u002Fpodcasts\u002F073.seoia\u002Findex.md","Améliorer le SEO avec les IA, mythe ou réalité ?",{"type":23,"value":3408,"toc":3497},[3409,3413,3424,3428,3432,3435,3439,3447,3451,3454,3458,3461,3465,3468,3472,3475,3495],[643,3410,3412],{"id":3411},"les-algorithmes-lancés-par-google-en-2023","Les algorithmes lancés par Google en 2023",[35,3414,3415,3418,3421],{},[38,3416,3417],{},"En 2023, il y a eu les confirmations de HelpFull Content avec de nouvelles MAJ.",[38,3419,3420],{},"Des core update en mars, en août et en octobre.",[38,3422,3423],{},"Des spam update notamment en octobre.",[643,3425,3427],{"id":3426},"larrivée-de-lia-quest-ce-que-ça-change-pour-le-seo","L’arrivée de l’IA, qu’est-ce que ça change pour le SEO :",[26,3429,3431],{"id":3430},"_1-génération-du-contenu","1 - Génération du contenu :",[31,3433,3434],{},"Pour le moment, c'est toujours aussi mauvais et ça semble empirer avec le temps.\nIl y a clairement un essoufflement en ce moment. D'ailleurs, c'était l'un de mes questionnements : est-ce que l'IA est vraiment créative ?\nApparemment non.\nPlein de nouveaux outils se lancent chaque jour pour générer du contenu, mais je redis ce que j'ai déjà dit avant : à qui s'adresse-t-il ?\nÀ tout le monde ? Non, c'est pour celles et ceux qui ont besoin de rédiger rapidement et à moindre coût, les mêmes qui faisaient appel aux rédacteurs malgaches avant l'arrivée de la génération de contenu par IA.\nCeux qui produisent des contenus intéressants et utiles grâce à l'IA sont les rédacteurs augmentés, mais je pense qu'ils ne sont pas nombreux. Car ils n'étaient déjà pas nombreux avant dans le secteur de la rédaction.",[26,3436,3438],{"id":3437},"_2-les-prompts-deviennent-des-moteurs-de-recherches","2 - Les prompts deviennent des moteurs de recherches :",[31,3440,3441,3442,3446],{},"Pas vraiment. Experience de Google avec SGE (",[42,3443,3444],{"href":3444,"rel":3445},"https:\u002F\u002Fwww.abondance.com\u002F20231025-242693-sge-disparition-mysterieuse-serp.html",[46],") qui finalement fait machine arrière.\nLes prompts et les IA demandent un effort de la part de l'utilisateur pour formuler sa requête. Là où Google est capable de donner des résultats pertinents avec juste 2 mots.\nPour le moment, les IA ont besoin d'un context pour être efficace.",[26,3448,3450],{"id":3449},"_3-bloquer-ou-pas-les-robots-crawlers-ia-sur-son-site","3 - Bloquer ou pas les robots crawlers IA sur son site",[31,3452,3453],{},"Clairement, nous sommes d'avis de les bloquer. Même s'il est déjà trop tard pour le faire. OpenAI ayant déjà crawlé le web entier.\nLa plupart des sociétés derrieres les IA sont des sociétés privées qui ont pour but de faire du profit. Et surtout américaines !\nLe principal problème que pour le moment les IA ne citent pas leurs sources, puisque le contenu n'est pas vraiment rendu directement.\nDe plus, ils n'apportent pas de trafic sur les sites web. Donc, il n'y a pas réellement d'intérêt à les laisser crawler.",[26,3455,3457],{"id":3456},"_4-est-ce-que-google-détecte-les-contenus-générés-par-ia","4 - Est-ce que Google détecte les contenus générés par IA",[31,3459,3460],{},"Oui, et cela fait longtemps. Le débat n'est pas là. Le débat concerne la qualité du contenu ou le contenu remarquable.\nGoogle recherche du bon contenu, peu importe qu'il ait été rédigé par un humain, une machine ou un chien !",[26,3462,3464],{"id":3463},"_5-comment-peut-on-utiliser-lia-pour-améliorer-son-seo-est-ce-que-cest-possible","5 - Comment peut-on utiliser l’IA pour améliorer son SEO, est-ce que c’est possible ?",[31,3466,3467],{},"Oui, pour réaliser de nombreuses tâches, notamment le \"métier\" augmenté.\nLe rédacteur augmenté, le SEO augmenté, le développeur augmenté.\nL'IA sert à de nombreuses choses, mais il y a beaucoup de choses que nous aurions pu faire auparavant mais que nous ne faisions pas par flemme.\nMaintenant, c'est la machine qui travaille à notre place. Cependant, cela ne change rien au fait que la machine ne fait qu'appliquer ce qu'on lui demande. Donc, si nous ne sommes pas clairs dans notre demande, le résultat est mauvais.\nC'était déjà le cas avant lorsque vous demandiez à votre collègue de faire quelque chose sans lui expliquer le contexte, ce qui était attendu et pourquoi.",[643,3469,3471],{"id":3470},"notre-invité-dan-bernier","Notre invité : Dan Bernier",[31,3473,3474],{},"Consultant Senior pour l’agence Inéolab.\nSEO et Marketing comportemental",[35,3476,3477,3483,3489],{},[38,3478,3479],{},[42,3480,3481],{"href":3481,"rel":3482},"https:\u002F\u002Fwww.ineolab.fr",[46],[38,3484,3485],{},[42,3486,3487],{"href":3487,"rel":3488},"https:\u002F\u002Ftwitter.com\u002FdanYdan_fr",[46],[38,3490,3491],{},[42,3492,3493],{"href":3493,"rel":3494},"https:\u002F\u002Fwww.youtube.com\u002F@antipods\u002Fstreams",[46],[31,3496,411],{},{"title":179,"searchDepth":180,"depth":180,"links":3498},[3499,3500,3507],{"id":3411,"depth":180,"text":3412},{"id":3426,"depth":180,"text":3427,"children":3501},[3502,3503,3504,3505,3506],{"id":3430,"depth":183,"text":3431},{"id":3437,"depth":183,"text":3438},{"id":3449,"depth":183,"text":3450},{"id":3456,"depth":183,"text":3457},{"id":3463,"depth":183,"text":3464},{"id":3470,"depth":180,"text":3471},[193],"Un épisode dédié au SEO et plus particulièrement sur l’arrivée des IA dans le SEO. Qu’est-ce que cela change. Peut-on tirer parti des IA pour améliorer son SEO. Pouvons-nous générer du contenu de qualité avec les IA ?","DS_073_seoia",5026,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1698610790\u002Fepisode\u002FART_73_bxnjbq.png",73,[],{},"\u002Fpodcasts\u002Fseoia","2023-11-01",{"title":3406,"description":3509},"podcasts\u002F073.seoia\u002Findex","Avec Dan Bernier",[3522,3235],"seo","HF-707ZQlyU","SShiNT20c2n1nBXzgongHaXkgRxGmUMNa-KIm3MG1sY",{"id":3526,"title":3527,"author":21,"body":3528,"categories":3851,"description":3852,"dsSlug":3853,"duration":3854,"episodeArtwork":3855,"episodeNumber":3856,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":3857,"meta":3858,"navigation":204,"path":3859,"publicationDate":3860,"season":207,"seo":3861,"status":209,"stem":3862,"subtitle":3863,"tags":3864,"videoLink":3869,"__hash__":3870},"podcasts\u002Fpodcasts\u002F072.newsOct23\u002Findex.md","Les News Web Dev pour octobre 2023",{"type":23,"value":3529,"toc":3833},[3530,3534,3550,3554,3562,3566,3575,3578,3604,3608,3615,3622,3626,3629,3635,3639,3642,3648,3652,3655,3661,3665,3672,3679,3683,3686,3692,3698,3702,3711,3715,3718,3724,3728,3735,3738,3749,3753,3762,3764,3767,3776,3783,3790,3794,3797,3806,3810,3817,3824,3831],[643,3531,3533],{"id":3532},"browsers","Browsers",[35,3535,3536,3543],{},[38,3537,3538,3539],{},"Conférence sur les capacités des navigateurs ",[42,3540,3541],{"href":3541,"rel":3542},"https:\u002F\u002F2023.stateofthebrowser.com\u002F",[46],[38,3544,3545,3546],{},"Subgrid dans ton navigateur déjà disponible  ",[42,3547,3548],{"href":3548,"rel":3549},"https:\u002F\u002Fweb.dev\u002Farticles\u002Fcss-subgrid",[46],[643,3551,3553],{"id":3552},"survey-html","Survey HTML",[31,3555,3556,3557],{},"Une survey pour connaître le niveau des développeurs.trices sur le HTML et les nouvelles features :  ",[42,3558,3561],{"href":3559,"rel":3560},"https:\u002F\u002Fsurvey.devographics.com\u002Fen-US\u002Fsurvey\u002Fstate-of-html\u002F2023?source=state_of_js_email",[46],"https:\u002F\u002Fsurvey.devographics.com\u002Fen-US\u002Fsurvey\u002Fstate-of-html\u002F2023",[643,3563,3565],{"id":3564},"conf-web-flow","Conf Web Flow",[35,3567,3568],{},[38,3569,3570],{},[42,3571,3574],{"href":3572,"rel":3573},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Dfplt-jbp9o",[46],"Lien vers la conférence WebFlow",[31,3576,3577],{},"Les nouveautés :",[35,3579,3580,3583,3586,3589,3592,3595,3598,3601],{},[38,3581,3582],{},"Nouveau logo",[38,3584,3585],{},"le multilingue en natif !",[38,3587,3588],{},"CSS variables avec une gestion centrale",[38,3590,3591],{},"Custom properties CSS",[38,3593,3594],{},"Évolution des components avec notamment les slots. Component inside component.",[38,3596,3597],{},"Figma import to WebFlow amélioré !",[38,3599,3600],{},"L’import de component React via webflow cli",[38,3602,3603],{},"WebFlow University  pour faire des formations onlines",[643,3605,3607],{"id":3606},"signal","Signal",[31,3609,3610,3611],{},"Lit intègre Preact Signal ⇒ ",[42,3612,3613],{"href":3613,"rel":3614},"https:\u002F\u002Flit.dev\u002Fblog\u002F2023-10-10-lit-3.0\u002F#preact-signals-integration",[46],[31,3616,3617,3618],{},"Petite page intéressante  à lire sur les différents modèles de réactivité  : ",[42,3619,3620],{"href":3620,"rel":3621},"https:\u002F\u002Ffr.vuejs.org\u002Fguide\u002Fextras\u002Freactivity-in-depth.html",[46],[643,3623,3625],{"id":3624},"server-component","Server Component",[31,3627,3628],{},"Page interactive sur les servers components :",[31,3630,3631],{},[42,3632,3633],{"href":3633,"rel":3634},"https:\u002F\u002Fservercomponents.dev\u002F",[46],[643,3636,3638],{"id":3637},"remix-v2","Remix V2",[31,3640,3641],{},"Remix sort en V2",[31,3643,3644],{},[42,3645,3646],{"href":3646,"rel":3647},"https:\u002F\u002Fremix.run\u002Fblog\u002Fremix-v2",[46],[643,3649,3651],{"id":3650},"ecommerce","Ecommerce",[31,3653,3654],{},"Front commerce sort sa V3.",[31,3656,3657],{},[42,3658,3659],{"href":3659,"rel":3660},"https:\u002F\u002Fdevelopers.front-commerce.com\u002Fchangelog\u002Ffront-commerce-3.0",[46],[643,3662,3664],{"id":3663},"ruby-on-rail","Ruby on Rail",[31,3666,3667,3668],{},"Conférence Rails World 2023 ⇒ ",[42,3669,3670],{"href":3670,"rel":3671},"https:\u002F\u002Fblog.quadiontech.com\u002Fhighlights-from-rails-world-2023-91a6774c7498",[46],[31,3673,3674,3675],{},"Vidéo de l’ouverture : ",[42,3676,3677],{"href":3677,"rel":3678},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=iqXjGiQ_D-A",[46],[643,3680,3682],{"id":3681},"orbstack","Orbstack",[31,3684,3685],{},"Orbstack, l’outil pour faire tourner docker sur mac sort en V1",[31,3687,3688],{},[42,3689,3690],{"href":3690,"rel":3691},"https:\u002F\u002Forbstack.dev\u002F",[46],[31,3693,3694],{},[42,3695,3696],{"href":3696,"rel":3697},"https:\u002F\u002Forbstack.dev\u002Fblog\u002Forbstack-1.0",[46],[643,3699,3701],{"id":3700},"gsap","GSAP",[35,3703,3704],{},[38,3705,3706],{},[42,3707,3710],{"href":3708,"rel":3709},"https:\u002F\u002Fgsap.com\u002F",[46],"Nouveau site pour la librairie GSAP",[643,3712,3714],{"id":3713},"railway","Railway",[31,3716,3717],{},"Lancement et annonces des features et évolutions",[31,3719,3720],{},[42,3721,3722],{"href":3722,"rel":3723},"https:\u002F\u002Frailway.app\u002Flaunch-week-01",[46],[643,3725,3727],{"id":3726},"db","DB",[31,3729,3730,3731],{},"Surreal DB sort en V1 ",[42,3732,3733],{"href":3733,"rel":3734},"https:\u002F\u002Fsurrealdb.com\u002Fblog\u002Fannouncing-surrealdb-1-0",[46],[31,3736,3737],{},"LibSQL, le fork de sqlite a plus de stars de l’originale !",[31,3739,3740,3744,3745],{},[42,3741,3742],{"href":3742,"rel":3743},"https:\u002F\u002Fgithub.com\u002Ftursodatabase\u002Flibsql",[46]," ⇒ ",[42,3746,3747],{"href":3747,"rel":3748},"https:\u002F\u002Ftwitter.com\u002Fglcst\u002Fstatus\u002F1712204035300675847?s=61&t=DfztcoS9YmkYylxWamOL9w",[46],[643,3750,3752],{"id":3751},"ecosystem-anti-javascript-fatigue","Ecosystem anti JavaScript Fatigue",[35,3754,3755],{},[38,3756,3757],{},[42,3758,3761],{"href":3759,"rel":3760},"https:\u002F\u002Fnuejs.org\u002Ftools\u002F",[46],"Nue, la librairie qui en promet beaucoup !",[643,3763,3236],{"id":3235},[31,3765,3766],{},"Pezzo, la plateforme de dev AI.",[35,3768,3769],{},[38,3770,3771],{},[42,3772,3775],{"href":3773,"rel":3774},"https:\u002F\u002Fpezzo.ai\u002F",[46],"Lien vers pezzo ai",[31,3777,3778,3779],{},"Projet open-source de génération de code : ",[42,3780,3781],{"href":3781,"rel":3782},"https:\u002F\u002Fgithub.com\u002Fraidendotai\u002Fopenv0\u002F",[46],[31,3784,3785,3786],{},"Générateur d’emoji ",[42,3787,3788],{"href":3788,"rel":3789},"https:\u002F\u002Femojis.sh\u002F",[46],[643,3791,3793],{"id":3792},"vite-conf","Vite conf.",[31,3795,3796],{},"La conférence Vite JS 2023 était axée sur des sujets techniques avancés. Elle comprenait des présentations et des démonstrations sur divers sujets tels que les nouvelles fonctionnalités de Vite, la reconstruction, Rollup, le bundling avec RollDown, l'intégration de Figma et Storybook, ainsi que des discussions sur Nuxt, NitroJS, Astro et RedwoodJS. La conférence a également abordé des sujets liés aux outils de développement, aux monorepos avec NX, et a proposé des démonstrations du Transition API d'Astro. C'était une conférence très technique destinée aux développeurs de différents niveaux.",[35,3798,3799],{},[38,3800,3801],{},[42,3802,3805],{"href":3803,"rel":3804},"https:\u002F\u002Fviteconf.org\u002F23\u002Freplay",[46],"Replay de la conférence",[643,3807,3809],{"id":3808},"conf-à-venir","Conf à venir",[31,3811,3812,3813],{},"Netlify Compose conférence 18, 19 octobre 2023  ",[42,3814,3815],{"href":3815,"rel":3816},"https:\u002F\u002Fwww.netlify.com\u002Fconference\u002F",[46],[31,3818,3819,3820],{},"Nuxt Nation 18, 19 octobre 2023 ",[42,3821,3822],{"href":3822,"rel":3823},"https:\u002F\u002Fnuxtnation.com\u002F",[46],[31,3825,3826,3827],{},"Next Conf 26 octobre 2023 ",[42,3828,3829],{"href":3829,"rel":3830},"https:\u002F\u002Fnextjs.org\u002Fconf",[46],[31,3832,411],{},{"title":179,"searchDepth":180,"depth":180,"links":3834},[3835,3836,3837,3838,3839,3840,3841,3842,3843,3844,3845,3846,3847,3848,3849,3850],{"id":3532,"depth":180,"text":3533},{"id":3552,"depth":180,"text":3553},{"id":3564,"depth":180,"text":3565},{"id":3606,"depth":180,"text":3607},{"id":3624,"depth":180,"text":3625},{"id":3637,"depth":180,"text":3638},{"id":3650,"depth":180,"text":3651},{"id":3663,"depth":180,"text":3664},{"id":3681,"depth":180,"text":3682},{"id":3700,"depth":180,"text":3701},{"id":3713,"depth":180,"text":3714},{"id":3726,"depth":180,"text":3727},{"id":3751,"depth":180,"text":3752},{"id":3235,"depth":180,"text":3236},{"id":3792,"depth":180,"text":3793},{"id":3808,"depth":180,"text":3809},[193],"Un épisode news pour octobre 2023. On parle des dernières avancées en matière de navigateur. Mais aussi des conférences WebFlow, Vite JS et Ruby on Rails. On mentionne également les dernières versions de Remix, Front Commerce et Surreal DB. Bien entendu, on ne peut pas faire un épisode sans parler d'IA. Et nous terminerons par les prochaines conférences à suivre.","DS_072_newsOct23",4915,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1697869551\u002Fepisode\u002FART_72_newOct_mzzj8y.png",72,[],{},"\u002Fpodcasts\u002Fnewsoct23","2023-10-16",{"title":3527,"description":3852},"podcasts\u002F072.newsOct23\u002Findex","Épisode de news pour ce début d'automne où l'on revient sur les dernières conférences.",[3865,3651,3866,3867,3868,3235,2352],"js","ruby on rails","docker","database","B9K93MvlDRc","5MIauLvxCmqFL-dLLZEn_EaUEEQgi2gkONfPUr9xPnk",{"id":3872,"title":3873,"author":21,"body":3874,"categories":4085,"description":4086,"dsSlug":4087,"duration":4088,"episodeArtwork":4089,"episodeNumber":4090,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":4091,"meta":4092,"navigation":204,"path":4093,"publicationDate":4094,"season":207,"seo":4095,"status":209,"stem":4096,"subtitle":4097,"tags":4098,"videoLink":4099,"__hash__":4100},"podcasts\u002Fpodcasts\u002F071.tailwind23\u002Findex.md","Découvrir TailwindCSS en 2023",{"type":23,"value":3875,"toc":4077},[3876,3880,3883,3886,3907,3910,3914,3922,3966,3970,3973,3993,3997,4018,4022,4075],[643,3877,3879],{"id":3878},"description-de-tailwindcss","Description de TailwindCSS",[31,3881,3882],{},"Tailwind CSS est un framework de développement web populaire et open source qui simplifie la création et la gestion de l'interface utilisateur (UI) de sites web et d'applications. Contrairement à de nombreux autres frameworks CSS, Tailwind CSS adopte une approche basée sur les classes CSS utilitaires pour styliser et agencer les éléments HTML.",[31,3884,3885],{},"Voici quelques caractéristiques clés de Tailwind CSS :",[3887,3888,3889,3892,3895,3898,3901,3904],"ol",{},[38,3890,3891],{},"Classes CSS utilitaires : Tailwind CSS fournit un grand nombre de classes CSS pré-définies qui peuvent être appliquées directement aux éléments HTML pour définir des styles, des marges, des rembourrages, des couleurs, des polices, des tailles, etc. Ces classes sont nommées de manière intuitive, ce qui les rend faciles à comprendre et à utiliser.",[38,3893,3894],{},"Personnalisable : Bien que Tailwind CSS propose une grande variété de classes prédéfinies, il est également hautement personnalisable. Vous pouvez créer des classes personnalisées pour répondre aux besoins spécifiques de votre projet ou modifier les valeurs par défaut du framework pour adapter les styles à votre design.",[38,3896,3897],{},"Conception responsive : Tailwind CSS facilite la création de mises en page réactives en utilisant des classes dédiées pour gérer la visibilité des éléments sur différents appareils et résolutions d'écran.",[38,3899,3900],{},"Productivité accrue : En utilisant des classes utilitaires, les développeurs peuvent rapidement construire et itérer sur l'interface utilisateur sans avoir à écrire beaucoup de CSS personnalisé. Cela peut accélérer le développement web.",[38,3902,3903],{},"Performance optimisée : Tailwind CSS est conçu pour générer un CSS minimal et optimisé pour la production, ce qui contribue à des temps de chargement plus rapides.",[38,3905,3906],{},"Écosystème en expansion : Il existe de nombreuses extensions, plugins et outils créés par la communauté Tailwind pour étendre les fonctionnalités du framework et l'intégrer facilement dans divers environnements de développement.",[31,3908,3909],{},"En résumé, Tailwind CSS est un framework CSS qui mise sur des classes utilitaires pour simplifier le développement web en permettant aux développeurs de styliser et de structurer leur interface utilisateur de manière efficace et personnalisable. Son approche modulaire, sa flexibilité et sa popularité croissante en font un choix attrayant pour de nombreux projets web modernes.",[26,3911,3913],{"id":3912},"pluginsthemes","Plugins\u002Fthemes",[31,3915,3916,3917],{},"Article qui regroupe une liste de plugins : ",[42,3918,3921],{"href":3919,"rel":3920},"https:\u002F\u002Fmedevel.com\u002F50-os-tailwind-plugins\u002F",[46],"Medevel",[35,3923,3924,3931,3938,3945,3952,3959],{},[38,3925,3926],{},[42,3927,3930],{"href":3928,"rel":3929},"https:\u002F\u002Ftailwindcss.com\u002Fdocs\u002Ftypography-plugin",[46],"Typography",[38,3932,3933],{},[42,3934,3937],{"href":3935,"rel":3936},"https:\u002F\u002Fgithub.com\u002Ftailwindlabs\u002Ftailwindcss-forms",[46],"Forms",[38,3939,3940],{},[42,3941,3944],{"href":3942,"rel":3943},"https:\u002F\u002Fgithub.com\u002Ftailwindlabs\u002Ftailwindcss-aspect-ratio",[46],"Aspect Ratio",[38,3946,3947],{},[42,3948,3951],{"href":3949,"rel":3950},"https:\u002F\u002Fgithub.com\u002Ftailwindlabs\u002Ftailwindcss-container-queries",[46],"Container Queries",[38,3953,3954],{},[42,3955,3958],{"href":3956,"rel":3957},"https:\u002F\u002Fnightwindcss.com\u002F",[46],"NightWind",[38,3960,3961],{},[42,3962,3965],{"href":3963,"rel":3964},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ftailwind-scrollbar",[46],"scrollbar",[26,3967,3969],{"id":3968},"tips-and-tricks","Tips and tricks",[31,3971,3972],{},"Articles qui regroupent des bonnes pratiques :",[35,3974,3975,3981,3987],{},[38,3976,3977],{},[42,3978,3979],{"href":3979,"rel":3980},"https:\u002F\u002Fwww.builder.io\u002Fblog\u002Ftailwind-css-tips-and-tricks",[46],[38,3982,3983],{},[42,3984,3985],{"href":3985,"rel":3986},"https:\u002F\u002Fwww.hyperui.dev\u002Fblog\u002Fhow-to-write-better-tailwindcss",[46],[38,3988,3989],{},[42,3990,3991],{"href":3991,"rel":3992},"https:\u002F\u002Fmedium.com\u002F@sididev3\u002F6-simple-tricks-90-of-people-who-use-tailwind-css-dont-know-26c6a1318476",[46],[26,3994,3996],{"id":3995},"lib-dérivé-de-tailwind","Lib dérivé de Tailwind",[35,3998,3999,4005,4011],{},[38,4000,4001],{},[42,4002,4003],{"href":4003,"rel":4004},"http:\u002F\u002Ftachyons.io\u002F",[46],[38,4006,4007],{},[42,4008,4009],{"href":4009,"rel":4010},"https:\u002F\u002Fbasscss.com\u002F",[46],[38,4012,4013],{},[42,4014,4017],{"href":4015,"rel":4016},"https:\u002F\u002Funocss.dev\u002F",[46],"Uno CSS",[26,4019,4021],{"id":4020},"ui-library","UI library",[35,4023,4024,4031,4037,4043,4049,4056,4062,4068],{},[38,4025,4026],{},[42,4027,4030],{"href":4028,"rel":4029},"https:\u002F\u002Ftailwindui.com\u002F",[46],"Tailwind UI",[38,4032,4033],{},[42,4034,4035],{"href":4035,"rel":4036},"https:\u002F\u002Fdaisyui.com\u002F",[46],[38,4038,4039],{},[42,4040,4041],{"href":4041,"rel":4042},"https:\u002F\u002Ffloatui.com\u002F",[46],[38,4044,4045],{},[42,4046,4047],{"href":4047,"rel":4048},"https:\u002F\u002Fflowbite.com\u002F",[46],[38,4050,4051],{},[42,4052,4055],{"href":4053,"rel":4054},"https:\u002F\u002Fpreline.co\u002F",[46],"Preline UI",[38,4057,4058],{},[42,4059,4060],{"href":4060,"rel":4061},"https:\u002F\u002Ftailwind-elements.com\u002F",[46],[38,4063,4064],{},[42,4065,4066],{"href":4066,"rel":4067},"https:\u002F\u002Flunarui.dev\u002F",[46],[38,4069,4070],{},[42,4071,4074],{"href":4072,"rel":4073},"https:\u002F\u002Fui.shadcn.com\u002F",[46],"shadcn\u002Fui",[31,4076,411],{},{"title":179,"searchDepth":180,"depth":180,"links":4078},[4079],{"id":3878,"depth":180,"text":3879,"children":4080},[4081,4082,4083,4084],{"id":3912,"depth":183,"text":3913},{"id":3968,"depth":183,"text":3969},{"id":3995,"depth":183,"text":3996},{"id":4020,"depth":183,"text":4021},[193],"Un épisode [Remix] sur TailwindCSS. Nous avions déjà fait un épisode sur l'outil TailwindCSS, le numéro 7, sorti en 2020. Comme ce magnifique outil a évolué depuis, nous voulions refaire un épisode dédié pour réexpliquer le fonctionnement et l’écosystème autour de ce dernier.","DS_071_tailwind23",4441,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1696020556\u002Fepisode\u002FART_71_qltppk.png",71,[],{},"\u002Fpodcasts\u002Ftailwind23","2023-09-30",{"title":3873,"description":4086},"podcasts\u002F071.tailwind23\u002Findex","Pourquoi et comment",[213,938],"vAhiMb7YAoo","y_kCty3khpyyGJKfJh3HqlMkMp66SESYDvwk97bUBVE",{"id":4102,"title":4103,"author":21,"body":4104,"categories":4548,"description":4549,"dsSlug":4550,"duration":4551,"episodeArtwork":4552,"episodeNumber":4553,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":4554,"meta":4555,"navigation":204,"path":4556,"publicationDate":4557,"season":207,"seo":4558,"status":209,"stem":4559,"subtitle":4560,"tags":4561,"videoLink":4564,"__hash__":4565},"podcasts\u002Fpodcasts\u002F070.newsSept23\u002Findex.md","Les News Web Dev pour Septembre 2023",{"type":23,"value":4105,"toc":4525},[4106,4110,4113,4117,4120,4123,4126,4129,4132,4136,4142,4146,4149,4152,4155,4159,4162,4165,4168,4171,4201,4208,4211,4225,4229,4233,4236,4239,4242,4245,4248,4257,4261,4264,4272,4276,4279,4282,4285,4288,4301,4305,4308,4314,4318,4321,4324,4327,4330,4339,4341,4344,4360,4364,4371,4378,4382,4385,4392,4404,4408,4415,4431,4433,4463,4467,4470,4478,4483,4506,4508],[643,4107,4109],{"id":4108},"bun-le-toolkit-tout-en-un","Bun, le toolkit tout en un !",[31,4111,4112],{},"Remplace à lui seul : node, npx, nodemon, dotenv, tsc, babel, esbuild, webpack, parcel, rollup, npm, yarn, pnpm, jest, vitest.",[26,4114,4116],{"id":4115},"runtime","Runtime",[31,4118,4119],{},"Runtime entièrement compatible Node. Rien a changer dans le code.",[31,4121,4122],{},"Fonctionne avec les node_modules.",[31,4124,4125],{},"Intègre la Web API (Fetch, Request, Response, FormData..)",[31,4127,4128],{},"Bun sait lire TypeScript",[31,4130,4131],{},"Bun sait lire le JSX",[26,4133,4135],{"id":4134},"bundler","Bundler",[31,4137,4138,4139],{},"Bun fait aussi Bundler.\n",[331,4140,4141],{},"bun build .\u002Findex.tsx --outdir .\u002Fout",[26,4143,4145],{"id":4144},"packages","Packages",[31,4147,4148],{},"Bun est aussi un packages manager",[31,4150,4151],{},"Installation global avec du cache. Pas de duplicate.",[31,4153,4154],{},"API similaire aux autres packagers.",[26,4156,4158],{"id":4157},"test","Test",[31,4160,4161],{},"Bun est aussi un test runner !",[31,4163,4164],{},"API similaire à Jest",[31,4166,4167],{},"DOM API",[31,4169,4170],{},"Mock, etc..",[35,4172,4173,4180,4187,4194],{},[38,4174,4175,4176],{},"Article d’annonce ",[42,4177,4178],{"href":4178,"rel":4179},"https:\u002F\u002Fbun.sh\u002Fblog\u002Fbun-v1.0",[46],[38,4181,4182,4183],{},"Vidéo de l’annonce  ",[42,4184,4185],{"href":4185,"rel":4186},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=BsnCpESUEqM",[46],[38,4188,4189,4190],{},"Site ",[42,4191,4192],{"href":4192,"rel":4193},"https:\u002F\u002Fbun.sh\u002F",[46],[38,4195,4196,4197],{},"Framework basé sur Bun ",[42,4198,4199],{"href":4199,"rel":4200},"https:\u002F\u002Felysiajs.com\u002F",[46],[31,4202,4203,4204],{},"Réaction de Mateo Collina : ",[42,4205,4206],{"href":4206,"rel":4207},"https:\u002F\u002Fx.com\u002Fjessfraz\u002Fstatus\u002F1700570689257013463?s=12&t=0y1qH6fwr7PTScWalFpUZg",[46],[31,4209,4210],{},"Quelques raisons :",[3887,4212,4213,4216,4219,4222],{},[38,4214,4215],{},"Node.js n'a pas de budget propre et npm est géré par une petite équipe. La plupart des investissements réalisés visent à ajouter des capacités ou des éléments plus sécurisés, et non à accélérer les choses. (Rendre les choses plus rapides ne rapporte pas plus d'argent à personne, c'est un peu une tragédie des biens communs).",[38,4217,4218],{},"Bun ne se soucie pas de la compatibilité ascendante avec une partie importante de l'écosystème et des spécifications npm (malgré leurs affirmations). Les processus Node.js sont plutôt construits pour ne pas briser l'écosystème.",[38,4220,4221],{},"Bun choisit également différents compromis dans quelques domaines, ce qui le rend inadapté à mon propre flux de travail. Mes 2 cents sont que si ces compromis avaient été faits par nœud et npm, ils n'auraient pas atteint le succès qu'ils ont. A titre d'exemple, il ne copie pas les fichiers lors de l'installation des dépendances.",[38,4223,4224],{},"Je crois aux normes ouvertes et à la gouvernance ouverte. Les temps d'exécution et l'infrastructure sont meilleurs (voir le fiasco de Terraform). Avoir une gouvernance ouverte signifie un processus de prise de décision plus large, qui permet à tout le monde d'être entendu, mais qui est également plus lent.",[643,4226,4228],{"id":4227},"astro-en-v3","Astro en V3",[26,4230,4232],{"id":4231},"premier-framework-a-supporter-la-view-transition-api","Premier framework a supporter la View Transition API.",[31,4234,4235],{},"Image Optimisation (version stable)",[31,4237,4238],{},"Optimisation du rendu des components Astro.",[31,4240,4241],{},"Optimisation et amélioration du serverless.",[31,4243,4244],{},"Optimisation du HMR pour JSX.",[31,4246,4247],{},"Optimisation du bundle de production.",[35,4249,4250],{},[38,4251,4252,4253],{},"article de l’annonce ",[42,4254,4255],{"href":4255,"rel":4256},"https:\u002F\u002Fastro.build\u002Fblog\u002Fastro-3\u002F",[46],[26,4258,4260],{"id":4259},"astro-studio","Astro Studio.",[31,4262,4263],{},"Edge data platform uniquement pour Astro.",[35,4265,4266],{},[38,4267,4268,4269],{},"landing page ",[42,4270,851],{"href":851,"rel":4271},[46],[643,4273,4275],{"id":4274},"gatsby-cest-fini","Gatsby C’est fini ?",[31,4277,4278],{},"19 aout : Fred Schott (co-créateur d’astro) s’étonne de ne pas voir de commit sur le projet Gatsby depuis 24 jours.",[31,4280,4281],{},"Aussitôt, Ward Peeters (anciennement dans l’équipe Gatsby) répond :",[31,4283,4284],{},"“C’est mort, Tout le staff est partie sauf un.Tout fonctionne bien mais pas de grosse feature dans les plans.”",[31,4286,4287],{},"Juste après, Netlify répond : “Pas de crainte, Gatsby est très important pour beaucoup de nos clients. React 18 arrive bientôt et des adaptateurs pour Gatsby….”",[35,4289,4290],{},[38,4291,4292,4293,4296,4297],{},"Résumé par ",[241,4294,4295],{},"Benedicte (Queen) Raae"," ",[42,4298,4299],{"href":4299,"rel":4300},"https:\u002F\u002Fqueen.raae.codes\u002Femails\u002F2023-08-28-end-of\u002F",[46],[26,4302,4304],{"id":4303},"gatsby-cloud","Gatsby Cloud",[31,4306,4307],{},"Le service va disparaître et tout va être mergé avec Netlify sur un service qui combine le meilleur des deux :  Netlify Cloud",[31,4309,4310],{},[42,4311,4312],{"href":4312,"rel":4313},"https:\u002F\u002Fwww.netlify.com\u002Fblog\u002Fgatsby-cloud-evolution\u002F",[46],[643,4315,4317],{"id":4316},"vercel","Vercel",[31,4319,4320],{},"Lee Robinson partage un Tweet pour migrer de Vite vers Next.js.",[31,4322,4323],{},"Aussitôt, Evan You répond :",[31,4325,4326],{},"“Ou vous pouvez utiliser un meta-framework tirant les bénéfices de Vite.”",[31,4328,4329],{},"Et il rappelle que les SPA sont très bien pour les projets où le page load est pas une priorité.",[35,4331,4332],{},[38,4333,4334,4335],{},"Le tweet en question ",[42,4336,4337],{"href":4337,"rel":4338},"https:\u002F\u002Ftwitter.com\u002Fyouyuxi\u002Fstatus\u002F1696868733728530716?s=61&t=K6fNZPLmk08s1xI4CIYLIA",[46],[643,4340,725],{"id":437},[31,4342,4343],{},"Rappel : React a 10 ans !",[35,4345,4346,4353],{},[38,4347,4348,4349],{},"Article intéressant sur le concept de server components : ",[42,4350,4351],{"href":4351,"rel":4352},"https:\u002F\u002Fwww.joshwcomeau.com\u002Freact\u002Fserver-components\u002F",[46],[38,4354,4355,4356],{},"Lib pour remplacer le Virtual Dom de React et gagner 70% de performance. ",[42,4357,4358],{"href":4358,"rel":4359},"https:\u002F\u002Fgithub.com\u002Faidenybai\u002Fmillion",[46],[643,4361,4363],{"id":4362},"ai-encore","AI (encore…)",[31,4365,4366,4367],{},"Éditeur Pair Coding avec une AI : ",[42,4368,4369],{"href":4369,"rel":4370},"https:\u002F\u002Fwww.cursor.so\u002F",[46],[31,4372,4373,4374],{},"MOJO le language pour l’IA ",[42,4375,4376],{"href":4376,"rel":4377},"https:\u002F\u002Fwww.modular.com\u002Fmojo",[46],[643,4379,4381],{"id":4380},"meilisearch","Meilisearch",[31,4383,4384],{},"Meilisearch, le document crawler.",[31,4386,4387,4388],{},"Le système va crawler les pages et les indexer. Comme le ferais Google Bot : ",[42,4389,4390],{"href":4390,"rel":4391},"https:\u002F\u002Fblog.meilisearch.com\u002Fdocumentation-crawler-release\u002F",[46],[31,4393,4394,4395,4399,4400],{},"Connecteur Vercel pour Meilisearch Cloud : ",[42,4396,4397],{"href":4397,"rel":4398},"https:\u002F\u002Fvercel.com\u002Fintegrations\u002Fmeilisearch-cloud",[46],"\nLE GROS STEP EST SUR LA RECHERCHE SEMANTIQUE : ",[42,4401,4402],{"href":4402,"rel":4403},"https:\u002F\u002Fblog.meilisearch.com\u002Fintroducing-vector-search\u002F",[46],[643,4405,4407],{"id":4406},"browser","Browser",[31,4409,4410,4411],{},"Le W3C invite les navigateurs a implémenter View Transition Module level 1.\n",[42,4412,4413],{"href":4413,"rel":4414},"https:\u002F\u002Ftwitter.com\u002Fw3cdevs\u002Fstatus\u002F1699033393596399930?s=61&t=LexZlio37h2pQsYSI-rwZg",[46],[35,4416,4417,4424],{},[38,4418,4419,4420],{},"Chrome 117 beta (CSS Subgrid !!!) ",[42,4421,4422],{"href":4422,"rel":4423},"https:\u002F\u002Ftwitter.com\u002Funa\u002Fstatus\u002F1691880972759843261?s=61&t=LexZlio37h2pQsYSI-rwZg",[46],[38,4425,4426,4427],{},"Safari preview 177 (pas des trucs de fou) ",[42,4428,4429],{"href":4429,"rel":4430},"https:\u002F\u002Ftwitter.com\u002Fwebkit\u002Fstatus\u002F1694105524055445605?s=61&t=LexZlio37h2pQsYSI-rwZg",[46],[643,4432,2491],{"id":2490},[35,4434,4435,4442,4449,4456],{},[38,4436,4437,4438],{},"Formkit en V1 ",[42,4439,4440],{"href":4440,"rel":4441},"https:\u002F\u002Fformkit.com\u002F",[46],[38,4443,4444,4445],{},"Radix UI sort des thèmes ",[42,4446,4447],{"href":4447,"rel":4448},"https:\u002F\u002Fwww.radix-ui.com\u002F",[46],[38,4450,4451,4452],{},"Equivalent de Radix pour Vue ",[42,4453,4454],{"href":4454,"rel":4455},"https:\u002F\u002Foku-ui.com\u002Fprimitives",[46],[38,4457,4458,4459],{},"Lib de components pour Blade ",[42,4460,4461],{"href":4461,"rel":4462},"https:\u002F\u002Fblade-ui-kit.com\u002F",[46],[643,4464,4466],{"id":4465},"slidev","Slidev",[31,4468,4469],{},"Créer des slides pour vos talks ou vos réunions.",[35,4471,4472],{},[38,4473,4474],{},[42,4475,4476],{"href":4476,"rel":4477},"https:\u002F\u002Fgithub.com\u002Fslidevjs\u002Fslidev",[46],[4479,4480,4482],"h1",{"id":4481},"vrac","VRAC",[35,4484,4485,4492,4499],{},[38,4486,4487],{},[42,4488,4491],{"href":4489,"rel":4490},"https:\u002F\u002Fngrok.com\u002Fblog-post\u002Ffree-static-domains-ngrok-users",[46],"ngrok blog: Static domains for all ngrok users",[38,4493,4494,4495],{},"Remotion 4 ",[42,4496,4497],{"href":4497,"rel":4498},"https:\u002F\u002Fwww.remotion.dev\u002Fblog\u002F4-0",[46],[38,4500,4501,4505],{},[42,4502,4503],{"href":4503,"rel":4504},"https:\u002F\u002Fexpresso-ts.com\u002F",[46]," mais NITRO JS c’est mieux",[643,4507,3809],{"id":3808},[35,4509,4510,4518],{},[38,4511,4512,4513],{},"Cond Redwoodjs (27, 28 septembre) ",[42,4514,4517],{"href":4515,"rel":4516},"https:\u002F\u002Fticket.redwoodjs.com\u002Fdavid",[46],"https:\u002F\u002Fticket.redwoodjs.com",[38,4519,4520,4521],{},"Vite conf (5 oct) ",[42,4522,4523],{"href":4523,"rel":4524},"https:\u002F\u002Fviteconf.org\u002F23\u002Fspeakers",[46],{"title":179,"searchDepth":180,"depth":180,"links":4526},[4527,4533,4537,4540,4541,4542,4543,4544,4545,4546,4547],{"id":4108,"depth":180,"text":4109,"children":4528},[4529,4530,4531,4532],{"id":4115,"depth":183,"text":4116},{"id":4134,"depth":183,"text":4135},{"id":4144,"depth":183,"text":4145},{"id":4157,"depth":183,"text":4158},{"id":4227,"depth":180,"text":4228,"children":4534},[4535,4536],{"id":4231,"depth":183,"text":4232},{"id":4259,"depth":183,"text":4260},{"id":4274,"depth":180,"text":4275,"children":4538},[4539],{"id":4303,"depth":183,"text":4304},{"id":4316,"depth":180,"text":4317},{"id":437,"depth":180,"text":725},{"id":4362,"depth":180,"text":4363},{"id":4380,"depth":180,"text":4381},{"id":4406,"depth":180,"text":4407},{"id":2490,"depth":180,"text":2491},{"id":4465,"depth":180,"text":4466},{"id":3808,"depth":180,"text":3809},[193],"Un épisode news pour septembre 2023. On parle de la sortie de Bun, la grosse bombe de la rentrée. Mais aussi de la V3 d'Astro, de la fin probable de Gatsby, de React encore et toujours, de Meilisearch qui intègre la puissance de l'AI, des prochaines versions des browsers, de librairies de components.","DS_070_newsSept23",4900,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1694509731\u002Fepisode\u002FART_70_newsSept_ttfzcs.png",70,[],{},"\u002Fpodcasts\u002Fnewssept23","2023-09-13",{"title":4103,"description":4549},"podcasts\u002F070.newsSept23\u002Findex","Un épisode news pour septembre 2023 avec un nouveau gros acteur dans le monde JS.",[722,939,4562,4316,437,3235,4563],"gatsby","search","t5aNLrepTiY","7N-A94m9RE1wMM6oodPW_YAFnm0Dy6V8aRefNT2pmgw",{"id":4567,"title":4568,"author":21,"body":4569,"categories":4857,"description":4858,"dsSlug":4859,"duration":4860,"episodeArtwork":4861,"episodeNumber":4862,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":4863,"meta":4864,"navigation":204,"path":4865,"publicationDate":4866,"season":207,"seo":4867,"status":209,"stem":4868,"subtitle":4869,"tags":4870,"videoLink":4873,"__hash__":4874},"podcasts\u002Fpodcasts\u002F069.sumNews23\u002Findex.md","Les News Web Dev version summer 23",{"type":23,"value":4570,"toc":4835},[4571,4575,4620,4622,4629,4632,4636,4642,4645,4649,4655,4658,4662,4668,4671,4674,4680,4683,4686,4693,4697,4703,4706,4713,4718,4721,4728,4732,4735,4739,4742,4748,4752,4754,4760,4766,4772,4778,4780,4833],[643,4572,4574],{"id":4573},"laracon-us","Laracon US",[35,4576,4577,4584,4591,4598,4606,4613],{},[38,4578,4579,4580],{},"Pest 2.9  ",[42,4581,4582],{"href":4582,"rel":4583},"https:\u002F\u002Fpestphp.com\u002Fdocs\u002Fpest-spicy-summer-release",[46],[38,4585,4586,4587],{},"Laravel Herd : Installer PHP en 1 click sur un mac ",[42,4588,4589],{"href":4589,"rel":4590},"https:\u002F\u002Fherd.laravel.com\u002F",[46],[38,4592,4593,4594],{},"Laravel Folio : Routes basées sur les fichiers de vues (pages) ",[42,4595,4596],{"href":4596,"rel":4597},"https:\u002F\u002Fgithub.com\u002Flaravel\u002Ffolio",[46],[38,4599,4600,4601,4605],{},"Laravel LiveWire 3 : Du JS écrit en PHP !  ",[42,4602,4603],{"href":4603,"rel":4604},"https:\u002F\u002Flivewire.laravel.com\u002F",[46],"\nJS géré avec Alpine js. Livewire 3's entire JS file weighs only 33kb!",[38,4607,4608,4609],{},"Laravel Volt : Mélanger la logique et la vue dans un fichier vue, Single File component ! ",[42,4610,4611],{"href":4611,"rel":4612},"https:\u002F\u002Flivewire.laravel.com\u002Fdocs\u002Fvolt",[46],[38,4614,4615,4616],{},"Native PHP : Faire des apps desktop avec PHP ",[42,4617,4618],{"href":4618,"rel":4619},"https:\u002F\u002Fnativephp.com\u002F",[46],[643,4621,2372],{"id":939},[31,4623,4624,4625],{},"Version 2.9 qui intègre en expérimental les Views Transition.\n",[42,4626,4627],{"href":4627,"rel":4628},"https:\u002F\u002Fastro.build\u002Fblog\u002Fastro-290\u002F",[46],[31,4630,4631],{},"Usage hyper simple. Résultats efficaces !",[643,4633,4635],{"id":4634},"valibot","Valibot",[31,4637,4638],{},[42,4639,4640],{"href":4640,"rel":4641},"https:\u002F\u002Fwww.builder.io\u002Fblog\u002Fintroducing-valibot",[46],[31,4643,4644],{},"Comme Zod mais 1kb !",[643,4646,4648],{"id":4647},"sqlite-edge","SQLite edge",[31,4650,4651],{},[42,4652,4653],{"href":4653,"rel":4654},"https:\u002F\u002Fturso.tech\u002F",[46],[31,4656,4657],{},"Offre gratuite assez généreuse !",[26,4659,4661],{"id":4660},"prisma-5","PRISMA 5",[31,4663,4664],{},[42,4665,4666],{"href":4666,"rel":4667},"https:\u002F\u002Fwww.prisma.io\u002Fblog\u002Fprisma-5-f66prwkjx72s",[46],[31,4669,4670],{},"Plus rapide par défaut  !",[26,4672,2055],{"id":4673},"drizzle-orm",[31,4675,4676],{},[42,4677,4678],{"href":4678,"rel":4679},"https:\u002F\u002Form.drizzle.team\u002F",[46],[31,4681,4682],{},"ORM Edge compatible !",[643,4684,4685],{"id":722},"Bun",[31,4687,4688,4689],{},"Jarred Sumner annonce la V1 le 7 septembre \\o\u002F ",[42,4690,4691],{"href":4691,"rel":4692},"https:\u002F\u002Ftwitter.com\u002Fjarredsumner\u002Fstatus\u002F1678424677629464576?s=61&t=Z9X856t7R76_G7iaDR4ICg",[46],[643,4694,4696],{"id":4695},"tailwind-connect","Tailwind Connect",[31,4698,4699],{},[42,4700,4701],{"href":4701,"rel":4702},"https:\u002F\u002Ftailwindcss.com\u002Fblog\u002F2023-07-18-tailwind-connect-2023-recap",[46],[31,4704,4705],{},"Il y a six ans, c'était juste quelques feuilles de style que je copiais et collais d'un projet à l'autre. Aujourd'hui, il est téléchargé plus de 25 millions de fois par mois par des millions de développeurs et est utilisé par certaines des plus grandes entreprises du monde pour créer certains des plus grands sites Web du monde.",[26,4707,4709,4712],{"id":4708},"oxide-nouveau-moteur-tools-chain",[241,4710,4711],{},"Oxide"," : nouveau moteur (tools chain)",[31,4714,4715,4717],{},[241,4716,4711],{}," est constitué de nombreuses pièces différentes, mais elles se résument toutes à deux objectifs : l'amélioration des performances et la simplification de l'expérience des développeurs.",[31,4719,4720],{},"Nous faisons de Tailwind un outil de traitement CSS tout-en-un en intégrant Lightning CSS, ce qui signifie que dans la prochaine version de Tailwind, des choses comme l'importation d'autres fichiers CSS, l'imbrication, les préfixes de fournisseur et les transformations de syntaxe pour les futures fonctionnalités CSS fonctionnera simplement - pas besoin d'installer ou de configurer des outils supplémentaires comme autoprefixer ou postcss-import.",[26,4722,4724,4727],{"id":4723},"catalyst-react-ui-kit",[241,4725,4726],{},"Catalyst"," : React UI Kit",[643,4729,4731],{"id":4730},"vite-lightning-css","Vite + Lightning CSS",[31,4733,4734],{},"vite@4.4.0 intègre Lightning CSS Support Expérimental",[643,4736,4738],{"id":4737},"brève-drôle","Brève drôle 🤣",[31,4740,4741],{},"Générer 61 000 dollars avec un site fait avec PHP\u002FHTML CSS et jQuery",[31,4743,4744],{},[42,4745,4746],{"href":4746,"rel":4747},"https:\u002F\u002Ftwitter.com\u002Flevelsio\u002Fstatus\u002F1675829733668319233?s=61&t=Z9X856t7R76_G7iaDR4ICg",[46],[26,4749,4751],{"id":4750},"news-en-bref","News en bref",[26,4753],{"id":179},[31,4755,4756],{},[42,4757,4758],{"href":4758,"rel":4759},"https:\u002F\u002Fgithub.com\u002Fesm-dev\u002Fesm.sh",[46],[31,4761,4762],{},[42,4763,4764],{"href":4764,"rel":4765},"https:\u002F\u002Farc.net\u002F",[46],[31,4767,4768],{},[42,4769,4770],{"href":4770,"rel":4771},"https:\u002F\u002Flearnprompting.org\u002F",[46],[31,4773,4774],{},[42,4775,4776],{"href":4776,"rel":4777},"https:\u002F\u002Fhop.io\u002F",[46],[643,4779,2313],{"id":2312},[35,4781,4782,4785,4788,4791,4794,4797,4800,4803,4806,4809,4812,4815,4818,4821,4824,4827,4830],{},[38,4783,4784],{},"00:00:00 Intro",[38,4786,4787],{},"00:01:50 Laracon US 2023",[38,4789,4790],{},"00:19:50 Astro 2.9 Views Transitions",[38,4792,4793],{},"00:21:50 Valibot",[38,4795,4796],{},"00:25:38 Turso Sqlite Edge",[38,4798,4799],{},"00:28:42 Prisma 5",[38,4801,4802],{},"00:31:00 Drizzle ORM",[38,4804,4805],{},"00:36:00 Bun V1.0",[38,4807,4808],{},"00:38:30 Tailwind Connect",[38,4810,4811],{},"00:53:18 Vite JS + Lightning CSS",[38,4813,4814],{},"00:55:00 61 000 $ avec un site PHP \u002F Jquery",[38,4816,4817],{},"00:57:30 Railway",[38,4819,4820],{},"01:00:30 Hop",[38,4822,4823],{},"01:03:00 Arc Browser",[38,4825,4826],{},"01:09:20 CDN ESM",[38,4828,4829],{},"01:13:20 Prompt AI",[38,4831,4832],{},"01:15:00 Fin !",[31,4834,411],{},{"title":179,"searchDepth":180,"depth":180,"links":4836},[4837,4838,4839,4840,4844,4845,4851,4852,4856],{"id":4573,"depth":180,"text":4574},{"id":939,"depth":180,"text":2372},{"id":4634,"depth":180,"text":4635},{"id":4647,"depth":180,"text":4648,"children":4841},[4842,4843],{"id":4660,"depth":183,"text":4661},{"id":4673,"depth":183,"text":2055},{"id":722,"depth":180,"text":4685},{"id":4695,"depth":180,"text":4696,"children":4846},[4847,4849],{"id":4708,"depth":183,"text":4848},"Oxide : nouveau moteur (tools chain)",{"id":4723,"depth":183,"text":4850},"Catalyst : React UI Kit",{"id":4730,"depth":180,"text":4731},{"id":4737,"depth":180,"text":4738,"children":4853},[4854,4855],{"id":4750,"depth":183,"text":4751},{"id":179,"depth":183,"text":179},{"id":2312,"depth":180,"text":2313},[193],"Dans cet épisode spécial news de l’été, nous allons revenir sur la Laracon US 2023 et les principales annonces sur l’écosystème Laravel. Nous évoquerons également Astro 2.9 qui intègre les Views Transition. Nous parlerons de Bases de données avec des services compatibles Edge et des ORM. Nous passerons rapidement sur la Tailwind Connect et les annonces de cette conférence. Nous finirons par quelques news rapides avant de prendre quelques vacances en août. Bonnes vacances et on se retrouve en septembre.","DS_069_sumNews23",4624,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1690984129\u002Fepisode\u002FART_69_summerNews23_z397w5.png",69,[],{},"\u002Fpodcasts\u002Fsumnews23","2023-08-03",{"title":4568,"description":4858},"podcasts\u002F069.sumNews23\u002Findex","Un épisode news été 2023 a écouter sur la plage !",[214,3400,3865,4871,722,2352,4872],"sqlite","ts","Z-5SxLKhiUY","uYCoHJhS-pLf_06T5-y7pKkdqnDzye-IZqgrhRn6-SI",{"id":4876,"title":4877,"author":21,"body":4878,"categories":5104,"description":5105,"dsSlug":5106,"duration":5107,"episodeArtwork":5108,"episodeNumber":5109,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":5110,"meta":5111,"navigation":204,"path":5112,"publicationDate":5113,"season":207,"seo":5114,"status":209,"stem":5115,"subtitle":5116,"tags":5117,"videoLink":5118,"__hash__":5119},"podcasts\u002Fpodcasts\u002F068.redisdead\u002F1.index.md","Redis, pour le cache mais pas que !",{"type":23,"value":4879,"toc":5094},[4880,4884,4887,4890,4894,4897,4923,4926,4929,4943,4949,4952,4960,4966,4969,4972,4975,4979,4982,5014,5021,5025,5028,5032,5069,5073,5087,5089,5092],[643,4881,4883],{"id":4882},"historique","Historique",[31,4885,4886],{},"Redis a été créé en 2009 par Salvatore Sanfilippo. Il s’agit d’une base de données NoSQL en mémoire. Les fonctions sont plutôt simples avec des get, set et le gros avantage de ce système de base de données est la vitesse.",[31,4888,4889],{},"Il est possible de faire persister les données avec Redis en utilisant la fonction de sauvegarde de Redis. Cette fonction crée une sauvegarde des données enregistrées dans Redis dans un fichier sur le disque dur. Il est également possible d'utiliser la réplication Redis pour sauvegarder les données en temps réel sur un autre serveur. Cela permet de récupérer rapidement les données en cas de panne ou de défaillance du serveur principal.",[26,4891,4893],{"id":4892},"les-types-de-données-dans-redis","Les types de données dans Redis",[31,4895,4896],{},"Redis prend en charge plusieurs types de données, notamment:",[35,4898,4899,4902,4905,4908,4911,4914,4917,4920],{},[38,4900,4901],{},"Strings",[38,4903,4904],{},"Lists",[38,4906,4907],{},"Sets",[38,4909,4910],{},"Sorted sets",[38,4912,4913],{},"Hashes",[38,4915,4916],{},"Stream",[38,4918,4919],{},"Géo spatiale (avec module sup.)",[38,4921,4922],{},"Json (avec module sup.)",[31,4924,4925],{},"Les valeurs stockées peuvent être des chaînes de caractères, des nombres, des tableaux ou des objets. Les types de données peuvent être combinés pour créer des structures de données plus complexes.",[31,4927,4928],{},"Redis prend aussi en charge les données géospatiales. Cela permet de stocker des données géographiques, telles que des points, des lignes et des polygones, et de les interroger en utilisant des fonctions géospatiales comme la recherche de points à proximité et le calcul de la distance entre deux points.",[31,4930,4931,4932,4935,4936,4939,4940,4942],{},"Pour stocker des données géospatiales dans Redis, vous pouvez utiliser la commande ",[331,4933,4934],{},"GEOADD"," pour ajouter des points à une clé géographique, et la commande ",[331,4937,4938],{},"GEORADIUS"," pour rechercher des points à proximité d'un point donné. Voici un exemple de commande ",[331,4941,4934],{}," :",[774,4944,4947],{"className":4945,"code":4946,"language":779},[777],"GEOADD villes 13.361389 38.115556 \"Marseille\" 2.352222 48.856614 \"Paris\"\n\n",[331,4948,4946],{"__ignoreMap":179},[31,4950,4951],{},"Cette commande ajoute deux points à la clé \"villes\", représentant les villes de Marseille et de Paris avec leurs coordonnées géographiques respectives.",[31,4953,4954,4955,4957,4958,4942],{},"Pour interroger des données géospatiales dans Redis, vous pouvez utiliser la commande ",[331,4956,4938],{}," pour rechercher des points à l'intérieur d'un rayon donné autour d'un point donné. Voici un exemple de commande ",[331,4959,4938],{},[774,4961,4964],{"className":4962,"code":4963,"language":779},[777],"GEORADIUS villes 13.377778 38.895556 100 km\n\n",[331,4965,4963],{"__ignoreMap":179},[31,4967,4968],{},"Cette commande recherche tous les points à l'intérieur d'un rayon de 100 km autour de la ville de Naples, qui se trouve aux coordonnées géographiques 13.377778 et 38.895556.",[31,4970,4971],{},"Il est important de noter que le module RedisGEO utilise l'algorithme de géohash pour indexer les données géographiques, ce qui permet des performances élevées même pour de grandes bases de données. Cependant, il est recommandé d'utiliser des structures de données plus spécifiques, comme des ensembles, des listes ou des hachages, pour stocker et interroger vos données si vous n'avez pas besoin de fonctions géospatiales.",[31,4973,4974],{},"Il existe aussi un module RedisJSON qui permet de stocker des données JSON directement dans Redis. Ce module permet notamment de stocker des objets JSON de manière très performante, d'interroger les données JSON avec des requêtes avancées et de manipuler les données JSON dans Redis avec une syntaxe familière. Il est disponible en téléchargement sur le site de Redis Labs et peut être utilisé avec toutes les versions de Redis à partir de la version 4.0.",[643,4976,4978],{"id":4977},"les-requêtes-avec-redis","Les requêtes avec Redis",[31,4980,4981],{},"Pour interroger une base de données Redis, vous pouvez utiliser le langage de requête Redis, qui est similaire à la syntaxe de requête SQL. Voici quelques exemples de requêtes Redis :",[35,4983,4984,4990,4996,5002,5008],{},[38,4985,4986,4989],{},[331,4987,4988],{},"GET nom:utilisateur:1"," : récupère les informations de l'utilisateur 1",[38,4991,4992,4995],{},[331,4993,4994],{},"LRANGE panier:utilisateur:1 0 -1"," : récupère tous les éléments du panier de l'utilisateur 1",[38,4997,4998,5001],{},[331,4999,5000],{},"ZREVRANGE score:jeu:1 0 9 WITHSCORES"," : récupère les 10 meilleurs scores du jeu 1, avec leurs scores associés",[38,5003,5004,5007],{},[331,5005,5006],{},"HGETALL messages:non-lus:utilisateur:1"," : récupère tous les messages non lus de l'utilisateur 1, avec leurs clés et leurs valeurs associées",[38,5009,5010,5013],{},[331,5011,5012],{},"KEYS dernières:vues:utilisateur:*"," : récupère toutes les clés associées aux derniers éléments consultés par tous les utilisateurs",[31,5015,5016,5017,5020],{},"Il est important de noter que la commande ",[331,5018,5019],{},"KEYS"," peut être très coûteuse en termes de performances pour de grandes bases de données, car elle parcourt toutes les clés de la base de données. Il est donc recommandé d'éviter de l'utiliser dans des environnements de production. Au lieu de cela, vous pouvez utiliser des structures de données plus spécifiques, comme des ensembles, des listes ou des hachages, pour stocker et interroger vos données.",[643,5022,5024],{"id":5023},"la-sécurité-avec-redis","La sécurité avec Redis",[31,5026,5027],{},"Redis prend en charge l'authentification par mot de passe et la connexion SSL\u002FTLS pour la sécurité des communications. Cependant, il n'y a pas de mécanisme de contrôle d'accès intégré dans la version open source de Redis. Si vous avez besoin d'une gestion des utilisateurs et des permissions, vous devrez utiliser Redis Enterprise, la version commerciale de Redis. Il est également important de noter que Redis n'est pas une base de données sécurisée par défaut et qu'il est important de configurer correctement les paramètres de sécurité pour éviter les attaques.",[643,5029,5031],{"id":5030},"exemples-de-services-cloud-pour-utiliser-redis","Exemples de services cloud pour utiliser Redis :",[35,5033,5034,5041,5048,5055,5062],{},[38,5035,5036,5037],{},"Redis Labs ",[42,5038,5039],{"href":5039,"rel":5040},"https:\u002F\u002Fredis.com\u002Ffr\u002F",[46],[38,5042,5043,5044],{},"AWS ElastiCache for Redis ",[42,5045,5046],{"href":5046,"rel":5047},"https:\u002F\u002Faws.amazon.com\u002Felasticache\u002Fredis\u002F",[46],[38,5049,5050,5051],{},"Google Cloud Memorystore for Redis ",[42,5052,5053],{"href":5053,"rel":5054},"https:\u002F\u002Fcloud.google.com\u002Fmemorystore",[46],[38,5056,5057,5058],{},"Microsoft Azure Cache for Redis ",[42,5059,5060],{"href":5060,"rel":5061},"https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Fproducts\u002Fcache",[46],[38,5063,5064,5065],{},"Upstash ",[42,5066,5067],{"href":5067,"rel":5068},"https:\u002F\u002Fupstash.com\u002F",[46],[643,5070,5072],{"id":5071},"se-former-sur-redis","Se former sur Redis",[35,5074,5075,5081],{},[38,5076,5077],{},[42,5078,5079],{"href":5079,"rel":5080},"https:\u002F\u002Funiversity.redis.com\u002F",[46],[38,5082,5083],{},[42,5084,5085],{"href":5085,"rel":5086},"https:\u002F\u002Fwww.youtube.com\u002Fredisinc",[46],[643,5088,2601],{"id":2312},[31,5090,5091],{},"00:00 Intro\n01:40 Histoire de Redis\n02:40 Fonctionnement de base Redis\n07:40 Les types de valeurs possibles\n17:12 Json dans Redis\n19:00 Les valeurs géospatiales avec Redis\n24:00 Les queries avec Redis\n32:40 La sécurité et les droits\n34:40 Héberger et utiliser Redis\n37:30 Redis est bien open-source\n39:00 Redis dans le cloud\n45:40 Se former sur Redis\n50:50 Conclusion",[31,5093,411],{},{"title":179,"searchDepth":180,"depth":180,"links":5095},[5096,5099,5100,5101,5102,5103],{"id":4882,"depth":180,"text":4883,"children":5097},[5098],{"id":4892,"depth":183,"text":4893},{"id":4977,"depth":180,"text":4978},{"id":5023,"depth":180,"text":5024},{"id":5030,"depth":180,"text":5031},{"id":5071,"depth":180,"text":5072},{"id":2312,"depth":180,"text":2601},[193],"Dans cet épisode, nous allons évoquer le système de stockage de données Redis. Alex, s’intéresse et travaille avec Redis depuis quelques mois. Il a découvert tout un tas de fonctionnalités que beaucoup d’entre nous ignorent. En effet, pour une majorité, Redis est utilisé pour mettre en cache des données brut. Un épisode de podcast qui devrait vous donner envie d’en savoir plus sur Redis !","DS_068_redis",3202,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1689338731\u002Fepisode\u002FART_68_redis_vims7l.png",68,[],{},"\u002Fpodcasts\u002Fredisdead","2023-07-14",{"title":4877,"description":5105},"podcasts\u002F068.redisdead\u002F1.index","Un épisode sur Redis, le système de stockage de data ultra rapide !",[3868,438],"MYLzuRaxG7E","TBtzJxxzaSFyupbrFOxhaNdMnDSNxHjmo5o80ODuK4U",{"id":5121,"title":5122,"author":21,"body":5123,"categories":5540,"description":5541,"dsSlug":5542,"duration":5543,"episodeArtwork":5544,"episodeNumber":5545,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":5546,"meta":5547,"navigation":204,"path":5548,"publicationDate":5549,"season":207,"seo":5550,"status":209,"stem":5551,"subtitle":5552,"tags":5553,"videoLink":5555,"__hash__":5556},"podcasts\u002Fpodcasts\u002F067.news06_23\u002Findex.md","Les News Web Dev pour Juin 2023",{"type":23,"value":5124,"toc":5525},[5125,5129,5136,5143,5147,5218,5235,5239,5250,5274,5277,5296,5299,5330,5334,5341,5362,5366,5382,5386,5394,5396,5400,5407,5410,5415,5421,5425,5431,5435,5442,5446,5469,5472,5523],[26,5126,5128],{"id":5127},"safari-et-apple-apns","Safari et Apple APNS",[31,5130,5131,5132],{},"Apple met à disposition une nouvelle console  pour tester les notifications ",[42,5133,5134],{"href":5134,"rel":5135},"https:\u002F\u002Fdeveloper.apple.com\u002Fnotifications\u002Fpush-notifications-console\u002F",[46],[31,5137,5138,5139],{},"Une vidéo pour comprendre l'utilisation ⇒ ",[42,5140,5141],{"href":5141,"rel":5142},"https:\u002F\u002Fdeveloper.apple.com\u002Fvideos\u002Fplay\u002Fwwdc2023\u002F10025\u002F",[46],[643,5144,5146],{"id":5145},"webkit-safari","Webkit (Safari)",[35,5148,5149,5152,5155,5162,5171,5174,5183,5191,5198,5204,5212,5215],{},[38,5150,5151],{},"dans macOS Sonoma, la possibilité de pouvoir mettre une web app dans le dock\n(Support web push, badge,..)",[38,5153,5154],{},"\"Add to Home Screen\" disponible dans les webviews Safari",[38,5156,5157,5158],{},"Nouveau tag html ",[5159,5160,5161],"model",{}," pour afficher des éléments en 3d.",[38,5163,5164,5165,5170],{},"Arrivé de ",[241,5166,5167],{},[241,5168,5169],{},"WebXR"," pour créer des expériences immersives. Basé sur WebGL",[38,5172,5173],{},"JPEG XL dans safari 17. Excellent compromis poids\u002Fqualité",[38,5175,5176,5177,5182],{},"Arrivé du format ",[241,5178,5179],{},[241,5180,5181],{},"HEIC"," dans Safari 17, format utilisé dans IOS pour les photos.",[38,5184,5185,5190],{},[241,5186,5187],{},[241,5188,5189],{},"Image set dans"," Safari 17. Propriété CSS pour permettre de choisir l’image la plus adaptée",[38,5192,5193],{},[241,5194,5195],{},[241,5196,5197],{},"Popover attribute",[38,5199,5200,5203],{},[331,5201,5202],{},"\u003Chr>"," dans les select, ok !",[38,5205,5206,5211],{},[241,5207,5208],{},[241,5209,5210],{},"Counter styles."," Définir des styles de liste",[38,5213,5214],{},"Developper Tools améliorations",[38,5216,5217],{},"etc…",[5219,5220,5221,5228],"info",{},[31,5222,5223],{},[42,5224,5227],{"href":5225,"rel":5226},"https:\u002F\u002Fweb.developpez.com\u002Factu\u002F345394\u002FJPEG-XL-Apple-adopte-dans-Safari-le-format-d-image-sans-redevance-que-Google-a-abandonne-L-editeur-de-Chrome-subit-la-pression-des-utilisateurs-qui-lui-demandent-de-revenir-sur-sa-decision\u002F",[46],"JPEG XL format ouvert abandonné par Google",[31,5229,5230],{},[42,5231,5234],{"href":5232,"rel":5233},"https:\u002F\u002Fcaniuse.com\u002F?search=jpeg%20xl",[46],"https:\u002F\u002Fcaniuse.com\u002F?search=jpeg xl",[643,5236,5238],{"id":5237},"article-à-lire","Article à lire",[31,5240,5241,5242,5246,5247],{},"React Angular moment ",[42,5243,5244],{"href":5244,"rel":5245},"https:\u002F\u002Fmarmelab.com\u002Fblog\u002F2023\u002F06\u002F05\u002Freact-angularjs-moment.html",[46],"\nRésumé de l'article :\n",[241,5248,5249],{},"Sur l’arrivée des React Server component :",[35,5251,5252,5265,5268,5271],{},[38,5253,5254,5255,5258,5259,5258,5262],{},"pas de ",[331,5256,5257],{},"useState",", ",[331,5260,5261],{},"useContext",[331,5263,5264],{},"useEffect",[38,5266,5267],{},"pas de CSS in JS",[38,5269,5270],{},"pas de React query parce que le fetch est propre à React (deduplication)",[38,5272,5273],{},"le modèle mental n’est pas la même. Il faut réapprendre (sauf si tu fais du PHP)",[31,5275,5276],{},"Ce qu’il dit :",[35,5278,5279,5282,5285,5288],{},[38,5280,5281],{},"React dissuade de faire des SPA",[38,5283,5284],{},"React force la main pour utiliser un Framework et surtout un qui est SSR",[38,5286,5287],{},"Les servers components sont la voie par défaut.",[38,5289,5290,5291,5295],{},"Vidéo de Robinson ",[42,5292,5293],{"href":5293,"rel":5294},"https:\u002F\u002Fyoutu.be\u002F6jM_0wDOw4g",[46]," sur les clients components.",[643,5297,5298],{"id":213},"CSS",[35,5300,5301,5308,5315,5322],{},[38,5302,5303,5304],{},"50 types d’unité disponibles pour la taille en CSS !\nCSS Sizing unit ",[42,5305,5306],{"href":5306,"rel":5307},"https:\u002F\u002Fnerdy.dev\u002Fnew-relative-units-ric-rex-rlh-and-rch?twitter-syndication",[46],[38,5309,5310,5311],{},"Snippets for modern layout ",[42,5312,5313],{"href":5313,"rel":5314},"https:\u002F\u002Fsmolcss.dev\u002F",[46],[38,5316,5317,5318],{},"Nouvelle librairie ",[42,5319,5320],{"href":5320,"rel":5321},"https:\u002F\u002Fpanda-css.com\u002F",[46],[38,5323,5324,5325],{},"Wrap Balance supporté par chrome ",[42,5326,5329],{"href":5327,"rel":5328},"https:\u002F\u002Fcaniuse.com\u002F?search=wrap%20balance",[46],"https:\u002F\u002Fcaniuse.com\u002F?search=wrap balance",[643,5331,5333],{"id":5332},"envoyer-des-emails-programmatiquement","Envoyer des emails programmatiquement",[31,5335,5336,5337,5340],{},"Avec maintenant ",[241,5338,5339],{},"3000"," gratuits par mois !",[35,5342,5343,5349,5355],{},[38,5344,5345,5346],{},"Email for dev ",[42,5347,2832],{"href":2832,"rel":5348},[46],[38,5350,5351,5352],{},"MailPace ",[42,5353,2839],{"href":2839,"rel":5354},[46],[38,5356,5357,5358],{},"Faire des templates emails avec React EMAIL ",[42,5359,5360],{"href":5360,"rel":5361},"https:\u002F\u002Freact.email\u002Fexamples",[46],[643,5363,5365],{"id":5364},"netlify","Netlify",[35,5367,5368,5375],{},[38,5369,5370,5371],{},"Après le rachat de Gatsby Inc. Netlify Connect !\nNetlify Connect ",[42,5372,5373],{"href":5373,"rel":5374},"https:\u002F\u002Fwww.netlify.com\u002Fproducts\u002Fconnect\u002F",[46],[38,5376,5377,5378],{},"CLI Switch pour changer de compte ",[42,5379,5380],{"href":5380,"rel":5381},"https:\u002F\u002Fcli.netlify.com\u002Fcommands\u002Fswitch\u002F",[46],[643,5383,5385],{"id":5384},"base-de-données","Base de données",[35,5387,5388],{},[38,5389,5390],{},[42,5391,5392],{"href":5392,"rel":5393},"https:\u002F\u002Fwww.edgedb.com\u002F",[46],[643,5395,4317],{"id":4316},[26,5397,5399],{"id":5398},"starter-nextjs","Starter NextJS",[31,5401,5402,5403],{},"Starter NextJS payment subscription : ",[42,5404,5405],{"href":5405,"rel":5406},"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fnextjs-subscription-payments",[46],[31,5408,5409],{},"Kit pour créer une app pour des abonnements. Nécessite Supabase, Stripe et Vercel.\nJ’en parle parce que le projet est passé sur NextJS 13 version APP.",[31,5411,5412],{},[241,5413,5414],{},"SDK AI",[31,5416,5417],{},[42,5418,5419],{"href":5419,"rel":5420},"https:\u002F\u002Fvercel.com\u002Fblog\u002Fintroducing-the-vercel-ai-sdk",[46],[643,5422,5424],{"id":5423},"docker-sur-mac-plus-performant","Docker sur Mac plus performant",[31,5426,5427,5428],{},"Docker desktop en mode moins gourmand :) ",[42,5429,3690],{"href":3690,"rel":5430},[46],[643,5432,5434],{"id":5433},"valider-les-variables-denvironnement-avec-zod","Valider les variables d’environnement avec Zod",[31,5436,5437,5438],{},"Zod avec les vars d’env ",[42,5439,5440],{"href":5440,"rel":5441},"https:\u002F\u002Fwww.jacobparis.com\u002Fcontent\u002Ftype-safe-env",[46],[643,5443,5445],{"id":5444},"en-vrac","En vrac",[35,5447,5448,5455,5462],{},[38,5449,5450,5451],{},"PHP 8.3 alpha ",[42,5452,5453],{"href":5453,"rel":5454},"https:\u002F\u002Fstitcher.io\u002Fblog\u002Fnew-in-php-83",[46],[38,5456,5457,5458],{},"NativePHP package Laravel pour créer des apps desktop. ",[42,5459,5460],{"href":5460,"rel":5461},"https:\u002F\u002Ftwitter.com\u002Fmarcelpociot\u002Fstatus\u002F1656196877384130562",[46],[38,5463,5464,5465],{},"Livewire 3 arrive ",[42,5466,5467],{"href":5467,"rel":5468},"https:\u002F\u002Ftwitter.com\u002Fcalebporzio\u002Fstatus\u002F1671870294930206720?cxt=HHwWgMC9_ZvL1rMuAAAA",[46],[31,5470,5471],{},"\"Précision sur Livewire de @danielrmc “Petite précision pour Livewire. Livewire doit être pluggé avec alpine JS pour une plus grande réactivitée et créativitée. Création de composants très complexes, (genre une select multi avec recherche, ou encore un calendrier multi-ressources ...), demande une très bonne compréhension du JS”\"",[35,5473,5474,5481,5488,5495,5502,5509,5516],{},[38,5475,5476,5477],{},"Figma mode dev ",[42,5478,5479],{"href":5479,"rel":5480},"https:\u002F\u002Fweb.developpez.com\u002Factu\u002F345818\u002FFigma-renforce-son-offre-pour-les-developpeurs-avec-le-mode-Dev-un-plugin-VS-Code-et-plus-encore-La-plupart-de-ces-fonctionnalites-seront-reservees-aux-clients-payants\u002F",[46],[38,5482,5483,5484],{},"Nuxt 3.6 ",[42,5485,5486],{"href":5486,"rel":5487},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fv3-6",[46],[38,5489,5490,5491],{},"Utiliser Chat GPT en tant que dev ",[42,5492,5493],{"href":5493,"rel":5494},"https:\u002F\u002Fwww.builder.io\u002Fblog\u002Fai-prompts-for-web-developers-chatgpt",[46],[38,5496,5497,5498],{},"Afficher un QR Code en mode HDR ",[42,5499,5500],{"href":5500,"rel":5501},"https:\u002F\u002Fnotes.dt.in.th\u002FHDRQRCode",[46],[38,5503,5504,5505],{},"video Cost of Javascript ",[42,5506,5507],{"href":5507,"rel":5508},"https:\u002F\u002Fyoutu.be\u002FZKH3DLT4BKw",[46],[38,5510,5511,5512],{},"Web Perf snippets ",[42,5513,5514],{"href":5514,"rel":5515},"https:\u002F\u002Fwebperf-snippets.nucliweb.net\u002F",[46],[38,5517,5518,5519],{},"Chrome dev tools 115 ",[42,5520,5521],{"href":5521,"rel":5522},"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fnew-in-devtools-115\u002F",[46],[31,5524,411],{},{"title":179,"searchDepth":180,"depth":180,"links":5526},[5527,5528,5529,5530,5531,5532,5533,5534,5537,5538,5539],{"id":5127,"depth":183,"text":5128},{"id":5145,"depth":180,"text":5146},{"id":5237,"depth":180,"text":5238},{"id":213,"depth":180,"text":5298},{"id":5332,"depth":180,"text":5333},{"id":5364,"depth":180,"text":5365},{"id":5384,"depth":180,"text":5385},{"id":4316,"depth":180,"text":4317,"children":5535},[5536],{"id":5398,"depth":183,"text":5399},{"id":5423,"depth":180,"text":5424},{"id":5433,"depth":180,"text":5434},{"id":5444,"depth":180,"text":5445},[193],"Un épisode news pour juin 2023 un peu plus long que d'habitude pour prolonger le plaisir. Nous allons évoquer Apple qui s'occupe enfin de Webkit (Safari), de React.js qui se retrouve dans la polémique avec les servers components. Évidemment de CSS. De services d'envoi d'emails. De Netlify connect. De PHP qui prépare sa version 8.3. De Zod, de Javascript, etc.. Un épisode riche en news !","DS_067_news06",4809,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1687790575\u002Fepisode\u002FART_65_news_juin_23_x7lgq4.png",67,[],{},"\u002Fpodcasts\u002Fnews06_23","2023-06-28",{"title":5122,"description":5541},"podcasts\u002F067.news06_23\u002Findex","Un épisode news pour juin 2023 un peu plus long que d'habitude pour prolonger le plaisir !",[2091,213,214,5554,3865],"devops","vIf3cOQnI1Y","YHNHlwqeJn_zeebkXKW8aournRtFa0Jz6JqUwApirc4",{"id":5558,"title":5559,"author":21,"body":5560,"categories":5673,"description":5674,"dsSlug":5675,"duration":5676,"episodeArtwork":5677,"episodeNumber":5678,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":5679,"meta":5691,"navigation":204,"path":5692,"publicationDate":5693,"season":207,"seo":5694,"status":209,"stem":5695,"subtitle":5696,"tags":5697,"videoLink":5698,"__hash__":5699},"podcasts\u002Fpodcasts\u002F066.laravel\u002Findex.md","Laravel avec LaravelJutsu",{"type":23,"value":5561,"toc":5666},[5562,5566,5569,5572,5575,5578,5581,5584,5588,5614,5618,5621,5632,5636,5659,5661,5664],[643,5563,5565],{"id":5564},"laravel-rapide-historique","Laravel, rapide historique",[31,5567,5568],{},"Laravel est un framework de développement web open source et populaire qui a été créé par Taylor Otwell en 2011. Il est écrit en PHP, l'un des langages de programmation les plus utilisés pour la création de sites web dynamiques.",[31,5570,5571],{},"L'histoire de Laravel remonte à une époque où il existait déjà plusieurs frameworks PHP, mais ils étaient souvent complexes à utiliser ou manquaient de fonctionnalités modernes. Taylor Otwell a entrepris de créer un nouveau framework qui serait simple, élégant et offrirait une productivité accrue aux développeurs.",[31,5573,5574],{},"La première version de Laravel, Laravel 1, est sortie en juin 2011. Elle a été bien accueillie par la communauté des développeurs PHP en raison de sa simplicité, de sa documentation claire et de ses fonctionnalités avancées telles que le routage, l'ORM (Object-Relational Mapping) intégré et le système de templates.",[31,5576,5577],{},"Au fil des ans, Laravel a connu une croissance exponentielle de sa popularité. La version 4, sortie en mai 2013, a introduit de nouvelles fonctionnalités telles que le support de la file d'attente, la gestion des tâches planifiées et des améliorations significatives de la performance. Laravel 5, sorti en février 2015, a apporté des améliorations majeures, notamment l'introduction du moteur de templates Blade, l'injection de dépendances améliorée et la prise en charge native des tests unitaires.",[31,5579,5580],{},"Depuis lors, Laravel a continué à se développer et à innover. Des versions ultérieures ont introduit des fonctionnalités telles que la gestion des événements et des diffusions en temps réel, l'authentification simplifiée, l'intégration avec des services cloud populaires, ainsi qu'une vaste communauté de développeurs qui contribuent à son écosystème grâce à des packages et des ressources.",[31,5582,5583],{},"Aujourd'hui, Laravel est largement reconnu comme l'un des frameworks PHP les plus puissants et les plus conviviaux. Il est utilisé par de nombreux développeurs et entreprises du monde entier pour la création de sites web, d'applications web et même d'API. Laravel bénéficie d'une documentation complète, d'une vaste collection de packages et d'une communauté active, ce qui en fait un choix populaire pour le développement web moderne en PHP.",[643,5585,5587],{"id":5586},"les-principaux-outils-disponibles-dans-laravel","Les principaux outils disponibles dans Laravel",[3887,5589,5590,5593,5596,5599,5602,5605,5608,5611],{},[38,5591,5592],{},"Eloquent ORM : Un ORM puissant pour interagir avec la base de données.",[38,5594,5595],{},"Laravel Blade : Moteur de templates pour la création de vues.",[38,5597,5598],{},"Laravel Routing : Système de routage pour gérer les requêtes HTTP.",[38,5600,5601],{},"Laravel Migrations : Gestion des modifications de la structure de la base de données.",[38,5603,5604],{},"Laravel Authentication : Système d'authentification complet pour la gestion des utilisateurs.",[38,5606,5607],{},"Laravel Artisan : Console de commande pour automatiser les tâches de développement.",[38,5609,5610],{},"Laravel Valet et Homestead : Environnements de développement locaux simplifiés pour Laravel.",[38,5612,5613],{},"Laravel Cashier et Laravel Passport : Outils pour la gestion des paiements et l'authentification des API.",[643,5615,5617],{"id":5616},"le-coté-front-avec-laravel","Le coté front avec Laravel",[31,5619,5620],{},"Laravel offre différentes options pour la gestion du côté front de vos applications web. Livewire permet de créer des interfaces réactives sans écrire de code JavaScript, Inertia permet d'utiliser des frameworks JavaScript modernes tout en gardant le côté serveur de Laravel, et Vue.js offre une intégration native avec Laravel pour créer des interfaces utilisateur réactives et interactives. Ces outils vous permettent de construire des applications web robustes et performantes en combinant les forces de Laravel côté serveur avec des fonctionnalités dynamiques côté client.",[35,5622,5623,5626,5629],{},[38,5624,5625],{},"Integration classique de Javascript :\nLaravel dispose d'outils pour intégrer des librairies JavaScript facilement. Il met à disposition Vite.JS en version préconfiguré et son moteur de template (Blade) est très pratique pour intégrer des librairies JavaScript tel que Vue.JS. Il est possible par exemple de passer des props à un composant Vue.JS directement depuis Blade.",[38,5627,5628],{},"Livewire :\nLivewire est une bibliothèque intégrée à Laravel qui permet de construire des interfaces utilisateur dynamiques et interactives sans avoir à écrire de code JavaScript. Il utilise des composants PHP et les relie à la partie front-end de votre application. Livewire utilise des requêtes AJAX pour mettre à jour dynamiquement les parties de la page sans rechargement complet. Il facilite le développement de fonctionnalités en temps réel et réactives sans nécessiter une connaissance approfondie du JavaScript.",[38,5630,5631],{},"Inertia :\nInertia est une autre approche de développement côté front pour les applications Laravel. Il permet de construire des interfaces utilisateur SPA (Single-Page Application) en utilisant des frameworks JavaScript modernes tels que Vue.js, React ou Svelte, tout en gardant le côté serveur de Laravel pour gérer les routes et le rendu initial. Inertia permet de combiner les avantages d'une SPA avec la simplicité et la familiarité de Laravel, tout en réduisant la complexité du développement front-end.",[643,5633,5635],{"id":5634},"notre-invité-ludovic-guénet","Notre invité : Ludovic Guénet",[35,5637,5638,5645,5652],{},[38,5639,5640],{},[42,5641,5644],{"href":5642,"rel":5643},"https:\u002F\u002Fwww.youtube.com\u002F@LaravelJutsu",[46],"LaravelJutsu",[38,5646,5647],{},[42,5648,5651],{"href":5649,"rel":5650},"https:\u002F\u002Ftwitter.com\u002FLaravelJutsu",[46],"Twitter",[38,5653,5654],{},[42,5655,5658],{"href":5656,"rel":5657},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fludoguenet\u002F",[46],"LinkedIn",[643,5660,2313],{"id":2312},[31,5662,5663],{},"00:00 Intro.\n01:00 Présentation de Ludovic.\n03:00 Qu'est-ce que Laravel ?\n06:40 La gestion du projet Laravel, les contributeurs.\n09:20 Laravel proche de la philosophie Ruby on Rails ?\n12:00 Les packages autours de Laravel.\n17:30 Les PSR et conventions de code.\n18:20 Facilité de prise en main de Laravel.\n23:45 Analyse de code avec PHPStan et LaraStan.\n24:58 L'écosystème Laravel.\n28:10 Quel projet pour Laravel ?\n30:30 le rythme de sortie des versions et évolutions de Laravel.\n31:40 Les tests dans Laravel\n37:00 Laravel coté front.\n44:30 La communauté Laravel.\n45:40 Les ressources pour apprendre Laravel.\n47:00 Fin...",[31,5665,411],{},{"title":179,"searchDepth":180,"depth":180,"links":5667},[5668,5669,5670,5671,5672],{"id":5564,"depth":180,"text":5565},{"id":5586,"depth":180,"text":5587},{"id":5616,"depth":180,"text":5617},{"id":5634,"depth":180,"text":5635},{"id":2312,"depth":180,"text":2313},[193],"Dans cet épisode, nous avons le plaisir de recevoir Ludovic Guénet qui est le créateur passionné de la chaine YouTube @LaravelJutsu. Dans ses vidéos, Ludovic parle principalement de Laravel et de son écosystème. Avec lui, nous allons découvrir le framework Laravel qui dès le départ à adopté une philosophie proche du framework Ruby on Rails.","DS_066_laravel",2930,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1687160917\u002Fepisode\u002FART_66_laravel_b8zyxt.png",66,[5680,5682,5685,5688],{"title":726,"url":5681},"https:\u002F\u002Flaravel.com\u002F",{"title":5683,"url":5684},"Laravel Frontend","https:\u002F\u002Flaravel.com\u002Ffrontend",{"title":5686,"url":5687},"Inertiajs","https:\u002F\u002Finertiajs.com\u002F",{"title":5689,"url":5690},"Livewire","https:\u002F\u002Flaravel-livewire.com\u002F",{},"\u002Fpodcasts\u002Flaravel","2023-06-14",{"title":5559,"description":5674},"podcasts\u002F066.laravel\u002Findex","Laravel, le framework PHP élégant et productif.",[214,3400],"Fv8aIey_NdE","Qm0s5C8RCPjuiPWFtIjnxGXtc6bicGhLkmiudfZVBcc",{"id":5701,"title":5702,"author":21,"body":5703,"categories":5987,"description":5988,"dsSlug":5989,"duration":5990,"episodeArtwork":5991,"episodeNumber":5992,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":5993,"meta":5994,"navigation":204,"path":5995,"publicationDate":5996,"season":207,"seo":5997,"status":209,"stem":5998,"subtitle":5999,"tags":6000,"videoLink":6001,"__hash__":6002},"podcasts\u002Fpodcasts\u002F065.news05_23\u002Findex.md","Les news pour Mai 2023",{"type":23,"value":5704,"toc":5975},[5705,5709,5739,5743,5759,5763,5766,5822,5826,5856,5860,5869,5873,5876,5880,5894,5898,5907,5911,5941,5945,5968,5970,5972],[643,5706,5708],{"id":5707},"nouveautés-navigateurs","Nouveautés Navigateurs",[35,5710,5711,5718,5725,5732],{},[38,5712,5713],{},[42,5714,5717],{"href":5715,"rel":5716},"https:\u002F\u002Fwww.notion.so\u002FCSS-text-wrap-balance-Chrome-Developers-be76416b36e248e6a5e9b4cc3931ad9e",[46],"CSS text-wrap: balance",[38,5719,5720],{},[42,5721,5724],{"href":5722,"rel":5723},"https:\u002F\u002Fwww.notion.so\u002FWebContainers-now-run-on-Safari-iOS-and-iPadOS-485049ee8fae429f8de797ba3245a931",[46],"WebContainers now run on Safari, iOS, and iPadOS",[38,5726,5727],{},[42,5728,5731],{"href":5729,"rel":5730},"https:\u002F\u002Fwebkit.org\u002Fblog\u002F13813\u002Ftry-css-nesting-today-in-safari-technology-preview\u002F",[46],"CSS nesting dans Safari TP et Chrome",[38,5733,5734],{},[42,5735,5738],{"href":5736,"rel":5737},"https:\u002F\u002Fyoutu.be\u002FV9bW2PrmNFU",[46],"vidéo sur CSS par Raphael GOETTER",[643,5740,5742],{"id":5741},"qwik-world","Qwik World",[35,5744,5745,5752],{},[38,5746,5747],{},[42,5748,5751],{"href":5749,"rel":5750},"https:\u002F\u002Fwww.builder.io\u002Fblog\u002Fqwik-v1",[46],"V1 officielle pour Qwik",[38,5753,5754],{},[42,5755,5758],{"href":5756,"rel":5757},"https:\u002F\u002Fwww.builder.io\u002Fblog\u002Fresumable-react-how-to-use-react-inside-qwik",[46],"Utiliser React dans Qwik",[643,5760,5762],{"id":5761},"vercel-world-reactnext","Vercel World (React\u002FNext)",[31,5764,5765],{},"Next 13.4 version App est stable !! Documentation mise à jour, on peut désormais switcher entre version pages ou app.",[35,5767,5768,5775,5782,5789,5796,5808,5815],{},[38,5769,5770],{},[42,5771,5774],{"href":5772,"rel":5773},"https:\u002F\u002Fvercel.com\u002Fblog\u002Fvercel-storage",[46],"Vercel Storage",[38,5776,5777],{},[42,5778,5781],{"href":5779,"rel":5780},"https:\u002F\u002Ftwitter.com\u002Fmelkeydev\u002Fstatus\u002F1653498934491516928?s=61&t=sF_F8Qu82LW0vulDYKD25g",[46],"Du coup Ça critique les tarifs",[38,5783,5784],{},[42,5785,5788],{"href":5786,"rel":5787},"https:\u002F\u002Ftwitter.com\u002Fleeerob\u002Fstatus\u002F1653636931291602953?s=61&t=sF_F8Qu82LW0vulDYKD25g",[46],"Et Vercel répond à la critique",[38,5790,5791],{},[42,5792,5795],{"href":5793,"rel":5794},"https:\u002F\u002Fnextjs.org\u002Fdocs\u002Fapp\u002Fbuilding-your-application\u002Fdata-fetching\u002Fserver-actions#progressive-enhancement",[46],"Server Actions dans Next en alpha",[38,5797,5798,5803],{},[42,5799,5802],{"href":5800,"rel":5801},"https:\u002F\u002Ftwitter.com\u002Fartichmaro\u002Fstatus\u002F1658366429362544640?s=61&t=sF_F8Qu82LW0vulDYKD25g",[46],"Du coup, ça se moque",[42,5804,5807],{"href":5805,"rel":5806},"https:\u002F\u002Ftwitter.com\u002Fryanflorence\u002Fstatus\u002F1661717887319670784?s=61&t=sF_F8Qu82LW0vulDYKD25g",[46],"Ryan Florence critique les React Server Components",[38,5809,5810],{},[42,5811,5814],{"href":5812,"rel":5813},"https:\u002F\u002Ftwitter.com\u002Faddyosmani\u002Fstatus\u002F1655270096003280896?s=61&t=sF_F8Qu82LW0vulDYKD25g",[46],"Des exemples pour React Serveur components",[38,5816,5817],{},[42,5818,5821],{"href":5819,"rel":5820},"https:\u002F\u002Fblog.cloudflare.com\u002Fannouncing-database-integrations\u002F",[46],"Dans la foulée, CloudFlare intègre également neon, planetscale, etc.. dans les workers",[643,5823,5825],{"id":5824},"vuenuxt-world","Vue\u002FNuxt World",[35,5827,5828,5835,5842,5849],{},[38,5829,5830],{},[42,5831,5834],{"href":5832,"rel":5833},"https:\u002F\u002Fvercel.com\u002Fblog\u002Fnuxt-on-vercel",[46],"Chez Vercel -> improved support pour Nuxt",[38,5836,5837],{},[42,5838,5841],{"href":5839,"rel":5840},"https:\u002F\u002Fwww.notion.so\u002FAnnouncing-Vue-3-3-The-Vue-Point-ccf44bd2a865450e894eaaa16379e9e8",[46],"Announcing Vue 3.3 | The Vue Point",[38,5843,5844],{},[42,5845,5848],{"href":5846,"rel":5847},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fv3-5",[46],"Nuxt 3.5",[38,5850,5851],{},[42,5852,5855],{"href":5853,"rel":5854},"https:\u002F\u002Fui.nuxtlabs.com\u002Fgetting-started",[46],"Nuxt Lab UI",[643,5857,5859],{"id":5858},"astro-world","Astro World",[35,5861,5862],{},[38,5863,5864],{},[42,5865,5868],{"href":5866,"rel":5867},"https:\u002F\u002Fastro.build\u002Fblog\u002Fastro-250\u002F#static-by-default-hybrid-rendering-experimental",[46],"Astro 2.5 avec Hybride rendering",[643,5870,5872],{"id":5871},"wordpress-world","Wordpress World",[31,5874,5875],{},"Le 27 mai 2003, WordPress est né !! Joyeux anniversaire !! 20 ans déjà !!",[643,5877,5879],{"id":5878},"laravel-world","Laravel World",[35,5881,5882,5888],{},[38,5883,5884],{},[42,5885,5887],{"href":5684,"rel":5886},[46],"Nouvelle landing page sur Laravel pour rappeler que Laravel c'est aussi bien que des applications JS",[38,5889,5890],{},[42,5891,5893],{"href":5687,"rel":5892},[46],"Inertia en V1",[643,5895,5897],{"id":5896},"code-sandbox-world","Code sandbox World",[35,5899,5900],{},[38,5901,5902],{},[42,5903,5906],{"href":5904,"rel":5905},"https:\u002F\u002Fcodesandbox.io\u002Fblog\u002Fmeet-boxy-ai-coding-assistant",[46],"Boxy AI",[643,5908,5910],{"id":5909},"deno-world","Deno World",[35,5912,5913,5920,5927,5934],{},[38,5914,5915],{},[42,5916,5919],{"href":5917,"rel":5918},"https:\u002F\u002Fwww.notion.so\u002FDeno-1-33-Deno-2-is-coming-e8db62171afd4533b3ac824615427d5f",[46],"Deno 1.33: Deno 2 is coming",[38,5921,5922],{},[42,5923,5926],{"href":5924,"rel":5925},"https:\u002F\u002Fwww.notion.so\u002FDeno-KV-a-global-database-for-global-apps-6cafc84d4e3a4b3bb81e9a8d8c98c3e0",[46],"Deno KV - a global database for global apps",[38,5928,5929],{},[42,5930,5933],{"href":5931,"rel":5932},"https:\u002F\u002Fwww.notion.so\u002FNode-js-built-ins-on-Deno-Deploy-7cdecfab1334487881e7e05789c60f53",[46],"Node.js built-ins on Deno Deploy",[38,5935,5936],{},[42,5937,5940],{"href":5938,"rel":5939},"https:\u002F\u002Fwww.notion.so\u002FLume-the-static-site-generator-for-Deno-Lume-13d9043c5b05406d959fe752714d0e43",[46],"Lume, the static site generator for Deno - Lume",[643,5942,5944],{"id":5943},"tools-pour-finir","Tools, pour finir",[35,5946,5947,5954,5961],{},[38,5948,5949],{},[42,5950,5953],{"href":5951,"rel":5952},"https:\u002F\u002Fohshitgit.com\u002F",[46],"Pense bête pour les commandes Git",[38,5955,5956],{},[42,5957,5960],{"href":5958,"rel":5959},"https:\u002F\u002Fgithub.com\u002Fnektos\u002Fact",[46],"Tester les Github action en local",[38,5962,5963],{},[42,5964,5967],{"href":5965,"rel":5966},"https:\u002F\u002Fspline.design\u002F",[46],"Figma pour la 3D",[31,5969,411],{},[31,5971,2601],{},[31,5973,5974],{},"00:00 Intro\n02:50 Nouveautés Navigateurs\n10:30 Qwik World\n16:20 Vercel World\n26:00 Cloudflare Worker DB\n28:00 Nuxt\u002FVue World\n39:56 Astro World\n41:20 WordPress World\n42:30 Laravel World\n45:12 Boxy CodeSandBox\n47:20 Deno World\n54:19 Tools",{"title":179,"searchDepth":180,"depth":180,"links":5976},[5977,5978,5979,5980,5981,5982,5983,5984,5985,5986],{"id":5707,"depth":180,"text":5708},{"id":5741,"depth":180,"text":5742},{"id":5761,"depth":180,"text":5762},{"id":5824,"depth":180,"text":5825},{"id":5858,"depth":180,"text":5859},{"id":5871,"depth":180,"text":5872},{"id":5878,"depth":180,"text":5879},{"id":5896,"depth":180,"text":5897},{"id":5909,"depth":180,"text":5910},{"id":5943,"depth":180,"text":5944},[193],"Dans cet épisode de notre podcast, nous abordons les dernières nouveautés dans le monde des navigateurs, telles que la nouvelle propriété CSS `text-wrap balance`, l'exécution des WebContainers sur Safari, iOS et iPadOS, ainsi que la fonctionnalité CSS nesting dans Safari TP et Chrome. Nous discutons également des mises à jour de Qwik, de l'amélioration du support pour Nuxt chez Vercel, des nouvelles fonctionnalités de Next.js et des réactions aux React Server Components. De plus, nous mentionnons les anniversaires de WordPress (20 ans) et les nouvelles ressources dans les mondes de Laravel, CodeSandbox et Deno. Enfin, nous présentons des outils intéressants tels que le pense-bête pour les commandes Git et Spline, une sorte de Figma pour la 3D.","DS_065_news05_23",3601,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1685476143\u002Fepisode\u002FART_65_news5_vjvwpr.png",65,[],{},"\u002Fpodcasts\u002Fnews05_23","2023-05-31",{"title":5702,"description":5988},"podcasts\u002F065.news05_23\u002Findex","Découvrez les news CSS, React, Vue, Laravel, WordPress, Deno, etc. du mois de Mai 2023",[3399,2089,215,2091],"M20SfpkoW7U","A8MM4CL_ow6TwDXAsUjEguMf29K4wOUUhq1S1kCgoIE",{"id":6004,"title":6005,"author":21,"body":6006,"categories":6118,"description":6119,"dsSlug":6120,"duration":6121,"episodeArtwork":6122,"episodeNumber":6123,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":6124,"meta":6125,"navigation":204,"path":6126,"publicationDate":6127,"season":207,"seo":6128,"status":209,"stem":6129,"subtitle":6130,"tags":6131,"videoLink":6134,"__hash__":6135},"podcasts\u002Fpodcasts\u002F064.webperf\u002Findex.md","La Web Performance en 2023 avec Eroan Boyer",{"type":23,"value":6007,"toc":6115},[6008,6017,6020,6023,6026,6030,6036,6064,6066,6068],[31,6009,6010,6011,6016],{},"Dans cet épisode, nous avons le plaisir de recevoir Eroan Boyer qui est spécialisé en Web Performance. Eroan est le fondateur de l'agence ",[42,6012,6015],{"href":6013,"rel":6014},"https:\u002F\u002Fagencewebperformance.fr\u002F",[46],"Agence Web Performance",".",[31,6018,6019],{},"Nous allons dans un premier temps, définir ce qu'est la Web Performance. Quel est l'intérêt d'avoir un site rapide. Comment mesurer la performance de son site. Comment améliorer la performance de son site. Nous parlerons également de l'impact de la performance sur le référencement naturel",[31,6021,6022],{},"Nous évoquerons également les outils qui permettent de mesurer la performance de son site.",[31,6024,6025],{},"Bref, si vous voulez en savoir plus sur la Web Performance, cet épisode est fait pour vous !",[643,6027,6029],{"id":6028},"notre-invité","Notre invité :",[31,6031,6032,6033],{},"Eroan Boyer de la société ",[42,6034,6015],{"href":6013,"rel":6035},[46],[35,6037,6038,6044,6051,6057],{},[38,6039,6040],{},[42,6041,6042],{"href":6042,"rel":6043},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Feroan\u002F",[46],[38,6045,6046,6050],{},[42,6047,6048],{"href":6048,"rel":6049},"https:\u002F\u002Ftwitter.com\u002Fagencewebperf",[46]," (Compte Twitter avec des recos webperf hebdomadaires)",[38,6052,6053],{},[42,6054,6055],{"href":6055,"rel":6056},"https:\u002F\u002Ftwitter.com\u002Feroan",[46],[38,6058,6059,6063],{},[42,6060,6061],{"href":6061,"rel":6062},"https:\u002F\u002Fwww.24joursdeweb.fr\u002F2022\u002Fnavigateurs-webperf\u002F",[46]," ( article sur l’utilisation des DevTools)",[31,6065,411],{},[31,6067,2601],{},[35,6069,6070,6073,6076,6079,6082,6085,6088,6091,6094,6097,6100,6103,6106,6109,6112],{},[38,6071,6072],{},"00:00:00 : Intro et présentation",[38,6074,6075],{},"00:02:50 : Doit-on faire de la Web Performance ?",[38,6077,6078],{},"00:04:50 : Est-ce que c'est important d'avoir un site rapide ?",[38,6080,6081],{},"00:06:30 : Quels sont les indicateurs de performance ?",[38,6083,6084],{},"00:11:30 : Quel est le niveau technique général des dev sur la Web Performance ?",[38,6086,6087],{},"00:15:40 : Les interventions de l'agence Web Performance",[38,6089,6090],{},"00:19:00 : Les erreurs courantes des développeurs sur la Web Performance",[38,6092,6093],{},"00:23:45 : Le TTFB",[38,6095,6096],{},"00:25:30 : Un CDN ou pas ?",[38,6098,6099],{},"00:31:20 : Les scripts tiers !!",[38,6101,6102],{},"00:39:40 : Party Town",[38,6104,6105],{},"00:43:20 : Les outils pour mesurer la Web Performance",[38,6107,6108],{},"00:50:00 : S'informer sur la Web Performance",[38,6110,6111],{},"00:57:00 : La performance côté back et DB",[38,6113,6114],{},"01:04:00 : Over engineering les dernières années ?",{"title":179,"searchDepth":180,"depth":180,"links":6116},[6117],{"id":6028,"depth":180,"text":6029},[193],"Nous avions déjà fait des épisodes où nous parlions de Web Performance par rapport aux Core Web Vitals de Google et également des épisodes sur les animations CSS et JS. Mais il nous manquait un épisode dédié sur la Web Performance en général. C'est chose faite avec cet épisode.","DS_064_webperf",3698,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1684265659\u002Fepisode\u002FART_64_webperf_btpfzd.png",64,[],{},"\u002Fpodcasts\u002Fwebperf","2023-05-17",{"title":6005,"description":6119},"podcasts\u002F064.webperf\u002Findex","La Web performance et son impact en 2023.",[6132,6133],"performance","core web Vitals","oe_aFmDoScU","DR4AVHyT3VBDlzVlOww9ptYPJQq9ghHtHi19QLPY3bM",{"id":6137,"title":6138,"author":21,"body":6139,"categories":6326,"description":6327,"dsSlug":6328,"duration":6329,"episodeArtwork":6330,"episodeNumber":6331,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":6332,"meta":6333,"navigation":204,"path":6334,"publicationDate":6335,"season":207,"seo":6336,"status":209,"stem":6337,"subtitle":6338,"tags":6339,"videoLink":6341,"__hash__":6342},"podcasts\u002Fpodcasts\u002F063.news4-23\u002Findex.md","Les news pour Avril 2023",{"type":23,"value":6140,"toc":6318},[6141,6145,6215,6219,6242,6246,6256,6258,6272,6274,6316],[643,6142,6144],{"id":6143},"les-news-rapides","Les news rapides",[35,6146,6147,6155,6162,6169,6176,6183,6195,6202,6208],{},[38,6148,6149,6150,6154],{},"Svelte 4 passera sur pnpm au lieu de npm (",[42,6151,6152],{"href":6152,"rel":6153},"https:\u002F\u002Fgithub.com\u002Fsveltejs\u002Fsvelte\u002Fpull\u002F8514",[46],")",[38,6156,6157,6158],{},"Le nouveau site de meilisearch est basé sur Next.JS 13, TailwindCSS, Radix_UI  ",[42,6159,6160],{"href":6160,"rel":6161},"https:\u002F\u002Fwww.meilisearch.com\u002F",[46],[38,6163,6164,6165],{},"Partykit est maintenant open-source ",[42,6166,6167],{"href":6167,"rel":6168},"https:\u002F\u002Fgithub.com\u002Fpartykit\u002Fpartykit",[46],[38,6170,6171,6172],{},"Angular va intégrer Signal (concept de Solid JS) ",[42,6173,6174],{"href":6174,"rel":6175},"https:\u002F\u002Fgithub.com\u002Fangular\u002Fangular\u002Fdiscussions\u002F49685",[46],[38,6177,6178,6179],{},"Playwright intègre un nouveau UI mode ",[42,6180,6181],{"href":6181,"rel":6182},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright\u002Freleases\u002Ftag\u002Fv1.32.0",[46],[38,6184,6185,6186,6190],{},"Storybook 7 ",[42,6187,6188],{"href":6188,"rel":6189},"https:\u002F\u002Fstorybook.js.org\u002Fblog\u002Fstorybook-7-0\u002F",[46],[42,6191,6194],{"href":6192,"rel":6193},"https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Fannouncements\u002Fv20-release-announce",[46],"Node.js 20 is now available! | Node.js",[38,6196,6197],{},[42,6198,6201],{"href":6199,"rel":6200},"https:\u002F\u002Fvitejs.dev\u002Fblog\u002Fannouncing-vite4-3.html",[46],"Vite 4.3 is out! | Vite",[38,6203,6204],{},[42,6205,6206],{"href":6206,"rel":6207},"https:\u002F\u002Fdeveloper.chrome.com\u002Fblog\u002Fricher-install-ui-desktop\u002F",[46],[38,6209,6210],{},[42,6211,6214],{"href":6212,"rel":6213},"https:\u002F\u002Fgithub.com\u002Fwithastro\u002Froadmap\u002Fissues\u002F532",[46],"Astro va introduire un router coté client.",[643,6216,6218],{"id":6217},"github","Github",[35,6220,6221,6228,6235],{},[38,6222,6223],{},[42,6224,6227],{"href":6225,"rel":6226},"https:\u002F\u002Fgithub.blog\u002F2023-03-22-github-copilot-x-the-ai-powered-developer-experience\u002F",[46],"Copilot X",[38,6229,6230],{},[42,6231,6234],{"href":6232,"rel":6233},"https:\u002F\u002Fgithubnext.com\u002Fprojects\u002Fcopilot-for-pull-requests",[46],"Copilot for PR",[38,6236,6237],{},[42,6238,6241],{"href":6239,"rel":6240},"https:\u002F\u002Fwww.notion.so\u002FNavigating-files-with-the-new-code-view-beta-GitHub-Docs-114ba3c1335b49d3a8cca68d51a831a2",[46],"Navigating files with the new code view (beta) - GitHub Docs",[26,6243,6245],{"id":6244},"aws-code-wisperer","AWS code Wisperer",[31,6247,6248,6252],{},[42,6249,6250],{"href":6250,"rel":6251},"https:\u002F\u002Fwww.silicon.fr\u002Fcodewhisperer-choses-savoir-concurrent-github-copilot-made-in-aws-463067.html",[46],[42,6253,6254],{"href":6254,"rel":6255},"https:\u002F\u002Faws.amazon.com\u002Fcodewhisperer\u002F",[46],[643,6257,3321],{"id":3320},[35,6259,6260,6266],{},[38,6261,6262],{},[42,6263,6264],{"href":6264,"rel":6265},"https:\u002F\u002Fwww.joshwcomeau.com\u002Fblog\u002Fthe-end-of-frontend-development\u002F",[46],[38,6267,6268],{},[42,6269,6270],{"href":6270,"rel":6271},"https:\u002F\u002Fwww.seancdavis.com\u002Fposts\u002Fis-react-the-new-wordpress\u002F",[46],[643,6273,2575],{"id":2574},[35,6275,6276,6283,6290,6297,6304,6310],{},[38,6277,6278,6279],{},"Nuxt Devtools ",[42,6280,6281],{"href":6281,"rel":6282},"https:\u002F\u002Fnuxt.com\u002Fblog\u002Fintroducing-nuxt-devtools",[46],[38,6284,6285],{},[42,6286,6289],{"href":6287,"rel":6288},"https:\u002F\u002Finfisical.com\u002F",[46],"Infisical | Open Source SecretOps",[38,6291,6292],{},[42,6293,6296],{"href":6294,"rel":6295},"https:\u002F\u002Fgradient.style\u002F",[46],"https:\u002F\u002Fgradient.style",[38,6298,6299,6154],{},[42,6300,6303],{"href":6301,"rel":6302},"https:\u002F\u002Fedge-data-latency.vercel.app\u002F",[46],"Test de latence Vercel function vers les services de databases",[38,6305,6306],{},[42,6307,6308],{"href":6308,"rel":6309},"https:\u002F\u002Ffffuel.co\u002F",[46],[38,6311,6312],{},[42,6313,6314],{"href":6314,"rel":6315},"https:\u002F\u002Fark-ui.com\u002F",[46],[31,6317,411],{},{"title":179,"searchDepth":180,"depth":180,"links":6319},[6320,6321,6324,6325],{"id":6143,"depth":180,"text":6144},{"id":6217,"depth":180,"text":6218,"children":6322},[6323],{"id":6244,"depth":183,"text":6245},{"id":3320,"depth":180,"text":3321},{"id":2574,"depth":180,"text":2575},[193],"Bienvenue dans cet épisode de notre podcast dédié aux dernières actualités en développement web et technologie. Nous allons notamment parler de l'annonce de Svelte 4 passant sur pnpm au lieu de npm, du nouveau site de Meilisearch basé sur Next.JS 13, TailwindCSS et Radix_UI, ainsi que de la sortie de Playwright en mode UI. Nous verrons également comment AWS CodeWhisperer se positionne par rapport à GitHub Copilot et découvrirons de nouveaux outils tels que Infisical et FFFuel. Enfin, nous examinerons deux articles récents qui proposent une réflexion intéressante sur l'avenir du développement web \"The End of Frontend Development\" de Josh Comeau et \"Is React the New WordPress?\" de Sean C. Davis.","DS_063_new4-23",3160,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1682523484\u002Fepisode\u002FART_63_news4-23_cphonc.png",63,[],{},"\u002Fpodcasts\u002Fnews4-23","2023-04-27",{"title":6138,"description":6327},"podcasts\u002F063.news4-23\u002Findex","Découvrez les nouveautés de Svelte 4, Meilisearch, Playwright, AWS CodeWhisperer et plus encore.",[6340,5554,2091],"git","SbBrvUfOR1c","5Zilsvzos3udkceUDGe1coH67E5jrTfaMcju6fcoKWQ",{"id":6344,"title":6345,"author":21,"body":6346,"categories":6639,"description":6640,"dsSlug":6641,"duration":6642,"episodeArtwork":6643,"episodeNumber":6644,"episodeType":199,"explicit":6,"extension":200,"guid":201,"links":6645,"meta":6672,"navigation":204,"path":6673,"publicationDate":6674,"season":207,"seo":6675,"status":209,"stem":6676,"subtitle":6351,"tags":6677,"videoLink":6678,"__hash__":6679},"podcasts\u002Fpodcasts\u002F062.newDB\u002Findex.md","Les nouvelles DB",{"type":23,"value":6347,"toc":6627},[6348,6352,6355,6364,6366,6369,6373,6403,6407,6430,6434,6450,6454,6477,6481,6490,6494,6515,6518,6548,6551,6567,6570,6586,6590,6625],[643,6349,6351],{"id":6350},"comprendre-et-bien-choisir-sa-base-de-données-en-2023","Comprendre et bien choisir sa base de données en 2023",[31,6353,6354],{},"Nous discuterons des avantages et des inconvénients de chaque approche, des tendances émergentes, ainsi que des défis et opportunités auxquels les développeurs et les entreprises font face dans le paysage en constante évolution des bases de données. Ne manquez pas cet épisode passionnant rempli d'idées novatrices et de perspectives sur l'avenir des bases de données en 2023 !",[31,6356,6357],{},[6358,6359,6360,6361],"em",{},"PS: Texte de description réalisée avec Chat GP4 et le prompt ",[331,6362,6363],{},"Écrit un texte de présentation pour un épisode de podcast sur les bases de données en 2023, en 100 mots  incluant : SQL, noSQL , DB distribuée et newSQL.",[643,6365,2313],{"id":2312},[31,6367,6368],{},"En début d'épisode nous allons revoir ensemble les principaux types de bases de données, et les différences entre elles.",[26,6370,6372],{"id":6371},"sql","SQL",[35,6374,6375,6382,6389,6396],{},[38,6376,6377],{},[42,6378,6381],{"href":6379,"rel":6380},"https:\u002F\u002Fwww.mysql.com\u002F",[46],"MySQL",[38,6383,6384],{},[42,6385,6388],{"href":6386,"rel":6387},"https:\u002F\u002Fwww.postgresql.org\u002F",[46],"Postgres",[38,6390,6391],{},[42,6392,6395],{"href":6393,"rel":6394},"https:\u002F\u002Fwww.oracle.com\u002Fdatabase\u002F",[46],"Oracle",[38,6397,6398],{},[42,6399,6402],{"href":6400,"rel":6401},"https:\u002F\u002Fwww.sqlite.org\u002Findex.html",[46],"SQLite",[26,6404,6406],{"id":6405},"nosql","NoSQL",[35,6408,6409,6416,6423],{},[38,6410,6411],{},[42,6412,6415],{"href":6413,"rel":6414},"https:\u002F\u002Fwww.mongodb.com\u002F",[46],"MongoDB",[38,6417,6418],{},[42,6419,6422],{"href":6420,"rel":6421},"https:\u002F\u002Fwww.couchbase.com\u002F",[46],"Couchbase",[38,6424,6425],{},[42,6426,6429],{"href":6427,"rel":6428},"https:\u002F\u002Frethinkdb.com\u002F",[46],"RethinkDB",[26,6431,6433],{"id":6432},"key-value","Key \u002F Value",[35,6435,6436,6443],{},[38,6437,6438],{},[42,6439,6442],{"href":6440,"rel":6441},"https:\u002F\u002Fredis.io\u002F",[46],"Redis",[38,6444,6445],{},[42,6446,6449],{"href":6447,"rel":6448},"https:\u002F\u002Fwww.dragonflydb.com\u002F",[46],"DragonFly",[26,6451,6453],{"id":6452},"timeserie-db","TimeSerie DB",[35,6455,6456,6463,6470],{},[38,6457,6458],{},[42,6459,6462],{"href":6460,"rel":6461},"https:\u002F\u002Fwww.influxdata.com\u002F",[46],"InfluxDB",[38,6464,6465],{},[42,6466,6469],{"href":6467,"rel":6468},"https:\u002F\u002Fwww.timescale.com\u002F",[46],"TimescaleDB",[38,6471,6472],{},[42,6473,6476],{"href":6474,"rel":6475},"https:\u002F\u002Fgreptime.com\u002F",[46],"GreptimeDB",[26,6478,6480],{"id":6479},"graph-db","Graph DB",[35,6482,6483],{},[38,6484,6485],{},[42,6486,6489],{"href":6487,"rel":6488},"https:\u002F\u002Fneo4j.com\u002F",[46],"Neo4j",[26,6491,6493],{"id":6492},"search-db","Search DB",[35,6495,6496,6503,6508],{},[38,6497,6498],{},[42,6499,6502],{"href":6500,"rel":6501},"https:\u002F\u002Fwww.elastic.co\u002Felasticsearch\u002F",[46],"Elasticsearch",[38,6504,6505],{},[42,6506,4381],{"href":6160,"rel":6507},[46],[38,6509,6510],{},[42,6511,6514],{"href":6512,"rel":6513},"https:\u002F\u002Fwww.algolia.com\u002F",[46],"Algolia",[31,6516,6517],{},"Ensuite nous allons parler des hébergements de bases de données, et des avantages et inconvénients de chaque type d'hébergement.",[35,6519,6520,6527,6534,6541],{},[38,6521,6522],{},[42,6523,6526],{"href":6524,"rel":6525},"https:\u002F\u002Fwww.prisma.io\u002F",[46],"Prisma",[38,6528,6529],{},[42,6530,6533],{"href":6531,"rel":6532},"https:\u002F\u002Fwww.scaleway.com\u002F",[46],"Scaleway",[38,6535,6536],{},[42,6537,6540],{"href":6538,"rel":6539},"https:\u002F\u002Faws.amazon.com\u002F",[46],"AWS",[38,6542,6543],{},[42,6544,6547],{"href":6545,"rel":6546},"https:\u002F\u002Fwww.digitalocean.com\u002F",[46],"Digital Ocean",[31,6549,6550],{},"Puis les bases de données distribuées, et les avantages et inconvénients de chaque type de base de données distribuées.",[35,6552,6553,6560],{},[38,6554,6555],{},[42,6556,6559],{"href":6557,"rel":6558},"https:\u002F\u002Fneondb.com\u002F",[46],"Neon",[38,6561,6562],{},[42,6563,6566],{"href":6564,"rel":6565},"https:\u002F\u002Fwww.planetscale.com\u002F",[46],"PlanetScale",[31,6568,6569],{},"Et nous finirons par les bases de données newSQL. Qu'est-ce que c'est ? Quels sont les avantages et inconvénients de chaque type de base de données newSQL ?",[35,6571,6572,6579],{},[38,6573,6574],{},[42,6575,6578],{"href":6576,"rel":6577},"https:\u002F\u002Ffauna.com\u002F",[46],"FaunaDB",[38,6580,6581],{},[42,6582,6585],{"href":6583,"rel":6584},"https:\u002F\u002Fsurrealdb.com\u002F",[46],"SurrealDB",[643,6587,6589],{"id":6588},"timeline","Timeline",[35,6591,6592,6595,6598,6601,6604,6607,6610,6613,6616,6619,6622],{},[38,6593,6594],{},"00:00 Intro",[38,6596,6597],{},"02:17 type SQL",[38,6599,6600],{},"07:00 type noSQL",[38,6602,6603],{},"11:00 type keys \u002F values",[38,6605,6606],{},"14:00 type TimeSerie DB",[38,6608,6609],{},"15:50 type Graph DB",[38,6611,6612],{},"18:20 type search DB",[38,6614,6615],{},"23:45 Les DB as Service",[38,6617,6618],{},"33:50 Les DB distribuées ?",[38,6620,6621],{},"38:20 Le Data Branching",[38,6623,6624],{},"43:48 Les New SQL",[31,6626,411],{},{"title":179,"searchDepth":180,"depth":180,"links":6628},[6629,6630,6638],{"id":6350,"depth":180,"text":6351},{"id":2312,"depth":180,"text":2313,"children":6631},[6632,6633,6634,6635,6636,6637],{"id":6371,"depth":183,"text":6372},{"id":6405,"depth":183,"text":6406},{"id":6432,"depth":183,"text":6433},{"id":6452,"depth":183,"text":6453},{"id":6479,"depth":183,"text":6480},{"id":6492,"depth":183,"text":6493},{"id":6588,"depth":180,"text":6589},[193],"Bienvenue dans notre épisode de podcast consacré aux bases de données en 2023 ! Rejoignez-nous pour découvrir les dernières tendances dans le monde des bases de données, de SQL à NoSQL, en passant par les bases de données distribuées et les nouvelles générations de bases de données comme NewSQL.","DS_062_newBD",3408,"https:\u002F\u002Fres.cloudinary.com\u002Fdoubleslash\u002Fimage\u002Fupload\u002Fv1681120716\u002Fepisode\u002FART_62_newDB_da5svz.png",62,[6646,6647,6648,6649,6650,6651,6652,6653,6654,6655,6656,6657,6658,6659,6660,6661,6662,6663,6664,6665,6666,6667,6668,6669,6670],{"title":6381,"url":6379},{"title":6388,"url":6386},{"title":6395,"url":6393},{"title":6402,"url":6400},{"title":6415,"url":6413},{"title":6422,"url":6420},{"title":6429,"url":6427},{"title":6442,"url":6440},{"title":6449,"url":6447},{"title":6462,"url":6460},{"title":6469,"url":6467},{"title":6476,"url":6474},{"title":6489,"url":6487},{"title":6502,"url":6500},{"title":4381,"url":6160},{"title":6514,"url":6512},{"title":6526,"url":6524},{"title":6533,"url":6531},{"title":6540,"url":6538},{"title":6547,"url":6545},{"title":6559,"url":6557},{"title":6566,"url":6564},{"title":6578,"url":6576},{"title":6585,"url":6583},{"title":6671,"url":5067},"Upstash",{},"\u002Fpodcasts\u002Fnewdb","2023-04-12",{"title":6345,"description":6640},"podcasts\u002F062.newDB\u002Findex",[5554,3868],"FlhMns5KsiU","YPDkeRWxXEICcJ_detd3Fj1n-YppeGETWFiPjFQ6OJ0",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":6681},"\u003Cpath fill=\"currentColor\" d=\"M4 21V9l8-6l8 6v12h-6v-7h-4v7z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":6683},"\u003Cpath fill=\"currentColor\" d=\"M12 2C6.475 2 2 6.475 2 12s4.475 10 10 10s10-4.475 10-10S17.525 2 12 2m-2 14.5v-9l6 4.5z\"\u002F>",["Island",6685],{"key":6686,"result":6687},"Brand_bAcjTzQpW6OVpFK319jfMki97vH1GrZiqHmeI7Xg4o",{"head":6688},{},["Island",6690],{"key":6691,"result":6692},"Duration_EtqZa7zxzD7cdLJVdLUIl60efef3rlmttMSsW8uaA",{"head":6693},{},["Island",6695],{"key":6696,"result":6697},"Duration_b7PWehlh4mBAc3bm0MvQhCQfYrd7TArUKciZf1D5SW4",{"head":6698},{},["Island",6700],{"key":6701,"result":6702},"Duration_SilCdnwhctat2GeWxY2mpcbaodaFiRyFvQdQoSnw",{"head":6703},{},["Island",6705],{"key":6706,"result":6707},"Duration_5fnUb5dO3GPoCY54EbonujRUgEtKMSQF5XTULMzMKHI",{"head":6708},{},["Island",6710],{"key":6711,"result":6712},"Duration_sq0EsX1jftpaiPIQsnbrMfftD62MBZOGkk2GhFhso",{"head":6713},{},["Island",6715],{"key":6716,"result":6717},"Duration_pLpUh4xDPUMdINNNuv2e89fp4BDH8Mvf0uVYgbXlw",{"head":6718},{},["Island",6720],{"key":6721,"result":6722},"Duration_k7Xn9leHr04uJ8PN73tg7gq7DgAoEeHuYTnaZgOIQ",{"head":6723},{},["Island",6725],{"key":6726,"result":6727},"Duration_4QdJIIAuIgPFLgt2MUONXw69kWv4KFvusji2DaaPI",{"head":6728},{},["Island",6730],{"key":6731,"result":6732},"Duration_Y1XZGafY38ty4wLkCeIiFvWgQ1L476v40mTxFEocas",{"head":6733},{},["Island",6735],{"key":6736,"result":6737},"Duration_GXLrIvafBe2GIQNM0pM0TxsRmYzAGO1XvjUZ4374",{"head":6738},{},["Island",6740],{"key":6741,"result":6742},"Duration_sXLbGkeqYGrhI2rVVdFVWANWRYteIPMoDghZmOXVY",{"head":6743},{},["Island",6745],{"key":6746,"result":6747},"Duration_wkvnNR3cgGkQ6b6hmjkuoLk6QudTq07lRP62qjrbM",{"head":6748},{},["Island",6750],{"key":6751,"result":6752},"Duration_lSVsNog4tiJG2YHibybDbPYdWXmusXnepYwXIKMeuI8",{"head":6753},{},["Island",6755],{"key":6756,"result":6757},"Duration_YLKRw5J1VvNB8eDGICl8j72IwbKvf6KIRsGrFbmKfA",{"head":6758},{},["Island",6760],{"key":6761,"result":6762},"Duration_FqlLWzcFkD9Xgj7MHcj3IlBAJTM6kGfxrFPssvox1k",{"head":6763},{},["Island",6765],{"key":6766,"result":6767},"Duration_TSqAwgiBJZ75a6rSuA02efjBfK0bnMBoUFOUBSOZCE",{"head":6768},{},["Island",6770],{"key":6771,"result":6772},"Duration_gJ9dK85LbWjHG2X9nUTyttthvHxX8YZKBS86z9b5sk",{"head":6773},{},["Island",6775],{"key":6776,"result":6777},"Duration_K4V5LLOlAVkcLKMukbbhQqhpGoIPLZH5nHspRpJRIeU",{"head":6778},{},["Island",6780],{"key":6781,"result":6782},"Duration_93bUf0JOvoRN5dZJPmngIwNajTojiLpxZ6pgvnFwaQ0",{"head":6783},{},["Island",6785],{"key":6786,"result":6787},"Duration_x1gTxW6aXyBHtS1X5V0BS7t0xXE9GWrCsxAIzoURgfg",{"head":6788},{},["Island",6790],{"key":6791,"result":6792},"Duration_KIcBkXt1UBTkwVQ1xpgV6y5heIRnV35avKD0QbphWs",{"head":6793},{},["Island",6795],{"key":6796,"result":6797},"Duration_6RrJYoSASKbeVQjtAIJAc5wUdbTQDXmWQEe42wWWuIk",{"head":6798},{},["Island",6800],{"key":6801,"result":6802},"Duration_2wl6B3bzOlb2BGTQPpMitUbXY100S9N9w1O3GU4ThTQ",{"head":6803},{},["Island",6805],{"key":6806,"result":6807},"Duration_2LqIYZdRB053utpsqLzArYICwu014JJOX5kMKYIHYE",{"head":6808},{},["Island",6810],{"key":6811,"result":6812},"Duration_t01a5PpdI8z23DqRp1RdjqMGuv1PeDGe8HmtZzW89w",{"head":6813},{},1785405174777]