[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-H34CJGTLJZ77Eq7BOBxPaYfY1PD1E2D2ECBrjEQUse4":3,"sanity-fJBnLKmMSmaiuI6NCAv4uiElYOR8KYeyl_l_xn0IjEY":269},{"data":4,"sourceMap":-1},{"latestPodcast":5,"latestReleases":14,"post":39,"recent":244},[6],{"_id":7,"publishedAt":8,"slug":9,"sponsored":12,"title":13},"5c7f0882-e1a7-4d0e-9e06-86cce9c3613a","2026-07-02T07:40:00.000Z",{"_type":10,"current":11},"slug","ai-coding-chaos-into-a-repeatable-playbook",null,"How do you turn AI coding chaos into a repeatable playbook?",[15,21,27,33],{"_id":16,"publishedAt":17,"slug":18,"title":20},"eb5b66eb-9410-4329-83bb-22bbff39402a","2026-04-28T13:00:00.000Z",{"_type":10,"current":19},"turn-scattered-knowledge-into-trusted-intelligence","Turning scattered knowledge into trusted intelligence: Stack Internal 2026.3",{"_id":22,"publishedAt":23,"slug":24,"title":26},"369c2401-b62e-4a37-8ff8-bf603023ecad","2026-03-02T15:03:00.988Z",{"_type":10,"current":25},"what-s-new-at-stack-overflow-march-2026","What’s new at Stack Overflow: March 2026",{"_id":28,"publishedAt":29,"slug":30,"title":32},"5e9053a4-07ea-447c-91ea-29e0b6228537","2026-02-02T15:00:00.000Z",{"_type":10,"current":31},"what-s-new-at-stack-overflow-february-2026","What’s new at Stack Overflow: February 2026",{"_id":34,"publishedAt":35,"slug":36,"title":38},"a1b538eb-a8a6-46d0-80a1-ac70ec9bb935","2026-01-05T10:00:00.000-05:00",{"_type":10,"current":37},"what-s-new-at-stack-overflow-january-2026","What’s new at Stack Overflow: January 2026",{"_createdAt":40,"_id":41,"_rev":42,"_type":43,"_updatedAt":44,"author":45,"body":61,"comments":217,"dateUrl":218,"excerpt":219,"image":220,"legacyBody":223,"product":12,"publishedAt":226,"slug":227,"sponsored":12,"tags":229,"title":243,"visible":217},"2023-05-24T12:50:57Z","wp-post-19299","NR627mkKF39ASec5MIcr3T","blogPost","2025-10-31T17:26:55Z",[46],{"_createdAt":47,"_id":48,"_rev":49,"_type":50,"_updatedAt":51,"avatar":52,"employee":57,"name":58,"slug":59},"2023-05-23T16:27:18Z","wp-author-226","dgl3SCUzppW3U2LvCoOzcS","blogAuthor","2023-06-20T15:05:06Z",{"_type":53,"asset":54},"image",{"_ref":55,"_type":56},"image-56688f6337dd0a96034dfc998cdecc7810597d81-1024x1024-png","reference","current","Ryan Donovan",{"current":60},"rdonovan",[62,66,77,86,106,125,144,162,180,206],{"_key":63,"_type":64,"markDefs":12,"url":65},"de615f2032cc","embed","https:\u002F\u002Fart19.com\u002Fshows\u002F2355b740-4531-4071-a3ab-5907a95a36d3\u002Fepisodes\u002Ff6358e32-10ad-417d-92cf-d9e6c95466e7",{"_key":67,"_type":68,"children":69,"markDefs":75,"style":76},"dc397325a035","block",[70],{"_key":71,"_type":72,"marks":73,"text":74},"dc397325a0350","span",[],"We chat with Chris Ferdinandi, affectionately known as the VanillaJS guy. He has a newsletter, podcast, eBooks, and courses all trying to teach people to use more resilient and simple browser-native JavaScript free of the complications that come from elaborate frameworks.",[],"normal",{"_key":78,"_type":68,"children":79,"markDefs":84,"style":85},"7bfeed0d48be",[80],{"_key":81,"_type":72,"marks":82,"text":83},"7bfeed0d48be0",[],"Episode notes",[],"h2",{"_key":87,"_type":68,"children":88,"markDefs":102,"style":76},"d85fb9825ae6",[89,93,98],{"_key":90,"_type":72,"marks":91,"text":92},"d85fb9825ae60",[],"What exactly is",{"_key":94,"_type":72,"marks":95,"text":97},"d85fb9825ae61",[96],"eb522ba38730"," VanillaJS",{"_key":99,"_type":72,"marks":100,"text":101},"d85fb9825ae62",[],"? Tongue-in-cheek, it's the most lightweight JavaScript framework out there and used by pretty much every website on the internet. Seriously though, it's just JavaScript…without a framework.",[103],{"_key":96,"_type":104,"href":105,"reference":12},"link","http:\u002F\u002Fvanilla-js.com\u002F",{"_key":107,"_type":68,"children":108,"markDefs":122,"style":76},"80f11a10a05d",[109,113,118],{"_key":110,"_type":72,"marks":111,"text":112},"80f11a10a05d0",[],"If you're interested in reading and learning more about JavaScript, Chris has a bevy of courses and eBooks over at",{"_key":114,"_type":72,"marks":115,"text":117},"80f11a10a05d1",[116],"4a5941efcc24"," vanillajsguides.com",{"_key":119,"_type":72,"marks":120,"text":121},"80f11a10a05d2",[],".",[123],{"_key":116,"_type":104,"href":124,"reference":12},"https:\u002F\u002Fvanillajsguides.com",{"_key":126,"_type":68,"children":127,"markDefs":141,"style":76},"5b1b17ec6410",[128,132,137],{"_key":129,"_type":72,"marks":130,"text":131},"5b1b17ec64100",[],"Like Chris's ideas so much you want to subscribe to his newsletter?",{"_key":133,"_type":72,"marks":134,"text":136},"5b1b17ec64101",[135],"f6f6a8654f8f"," Right over this way",{"_key":138,"_type":72,"marks":139,"text":140},"5b1b17ec64102",[],"!",[142],{"_key":135,"_type":104,"href":143,"reference":12},"https:\u002F\u002Fgomakethings.com\u002F",{"_key":145,"_type":68,"children":146,"markDefs":159,"style":76},"2bd0d4008f86",[147,151,156],{"_key":148,"_type":72,"marks":149,"text":150},"2bd0d4008f860",[],"Since you are a connoisseur of podcasts, check out Chris's own at",{"_key":152,"_type":72,"marks":153,"text":155},"2bd0d4008f861",[154],"4f1e89c714d1"," vanillajspodcast.com",{"_key":157,"_type":72,"marks":158,"text":121},"2bd0d4008f862",[],[160],{"_key":154,"_type":104,"href":161,"reference":12},"https:\u002F\u002Fvanillajspodcast.com",{"_key":163,"_type":68,"children":164,"markDefs":177,"style":76},"48ae40966a3b",[165,169,174],{"_key":166,"_type":72,"marks":167,"text":168},"48ae40966a3b0",[],"Chris has kindly put together a collection of resources for listeners like you at",{"_key":170,"_type":72,"marks":171,"text":173},"48ae40966a3b1",[172],"50f8f8cc08dc"," gomakethings.com\u002Foverflow",{"_key":175,"_type":72,"marks":176,"text":121},"48ae40966a3b2",[],[178],{"_key":172,"_type":104,"href":179,"reference":12},"https:\u002F\u002Fgomakethings.com\u002Foverflow",{"_key":181,"_type":68,"children":182,"markDefs":201,"style":76},"8d0efdb48461",[183,187,192,196],{"_key":184,"_type":72,"marks":185,"text":186},"8d0efdb484610",[],"This week’s Lifeboat badge goes to",{"_key":188,"_type":72,"marks":189,"text":191},"8d0efdb484611",[190],"d19c0d20ac5b"," prograils",{"_key":193,"_type":72,"marks":194,"text":195},"8d0efdb484612",[]," for their answer to",{"_key":197,"_type":72,"marks":198,"text":200},"8d0efdb484613",[199],"3c2d7df59b7f"," How can I read the number of lines in Fortran 90 from a text file?",[202,204],{"_key":190,"_type":104,"href":203,"reference":12},"https:\u002F\u002Fstackoverflow.com\u002Fusers\u002F6594668\u002Fprograils",{"_key":199,"_type":104,"href":205,"reference":12},"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F30692424\u002Fhow-can-i-read-the-number-of-lines-in-fortran-90-from-a-text-file",{"_key":207,"_type":68,"children":208,"markDefs":214,"style":76},"d9b3252869e1",[209],{"_key":210,"_type":72,"marks":211,"text":213},"d9b3252869e10",[212],"3bacee92e4c6","TRANSCRIPT",[215],{"_key":212,"_type":104,"href":216,"reference":12},"https:\u002F\u002Fthe-stack-overflow-podcast.simplecast.com\u002Fepisodes\u002Fteaching-developers-about-the-most-lightweight-web-framework-around-vanillajs\u002Ftranscript",true,"2021\u002F12\u002F21","How teaching beginners can highlight the concepts that you've internalized too much. ",{"_type":53,"asset":221},{"_ref":222,"_type":56},"image-6f6591e18674cee2e570564767f3f8ca14c19158-3000x1575-png",{"code":224,"language":225},"\u003C!-- wp:html -->\n\u003Ciframe height=\"200px\" width=\"100%\" frameborder=\"no\" scrolling=\"no\" seamless src=\"https:\u002F\u002Fplayer.simplecast.com\u002Fd0dbf045-e2e5-4df2-8ef9-850a328823e0?dark=false\">\u003C\u002Fiframe>\n\u003C!-- \u002Fwp:html -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>We chat with Chris Ferdinandi, affectionately known as the VanillaJS guy. He has a newsletter, podcast, eBooks, and courses all trying to teach people to use more resilient and simple browser-native JavaScript free of the complications that come from elaborate frameworks. \u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:heading -->\n\u003Ch2 id=\"h-episode-notes\">Episode notes\u003C\u002Fh2>\n\u003C!-- \u002Fwp:heading -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>What exactly is\u003Ca href=\"http:\u002F\u002Fvanilla-js.com\u002F\"> VanillaJS\u003C\u002Fa>? Tongue-in-cheek, it's the most lightweight JavaScript framework out there and used by pretty much every website on the internet. Seriously though, it's just JavaScript…without a framework.&nbsp;\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>If you're interested in reading and learning more about JavaScript, Chris has a bevy of courses and eBooks over at\u003Ca href=\"https:\u002F\u002Fvanillajsguides.com\"> vanillajsguides.com\u003C\u002Fa>.&nbsp;\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>Like Chris's ideas so much you want to subscribe to his newsletter?\u003Ca href=\"https:\u002F\u002Fgomakethings.com\u002F\"> Right over this way\u003C\u002Fa>!\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>Since you are a connoisseur of podcasts, check out Chris's own at\u003Ca href=\"https:\u002F\u002Fvanillajspodcast.com\"> vanillajspodcast.com\u003C\u002Fa>.\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>Chris has kindly put together a collection of resources for listeners like you at\u003Ca href=\"https:\u002F\u002Fgomakethings.com\u002Foverflow\"> gomakethings.com\u002Foverflow\u003C\u002Fa>.&nbsp;\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>This week’s Lifeboat badge goes to\u003Ca href=\"https:\u002F\u002Fstackoverflow.com\u002Fusers\u002F6594668\u002Fprograils\"> prograils\u003C\u002Fa> for their answer to\u003Ca href=\"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F30692424\u002Fhow-can-i-read-the-number-of-lines-in-fortran-90-from-a-text-file\"> How can I read the number of lines in Fortran 90 from a text file?\u003C\u002Fa>\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->\n\n\u003C!-- wp:paragraph -->\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fthe-stack-overflow-podcast.simplecast.com\u002Fepisodes\u002Fteaching-developers-about-the-most-lightweight-web-framework-around-vanillajs\u002Ftranscript\">TRANSCRIPT\u003C\u002Fa>\u003C\u002Fp>\n\u003C!-- \u002Fwp:paragraph -->","html","2021-12-21T05:40:00.000Z",{"current":228},"podcast-402-teaching-developers-about-the-most-lightweight-web-framework-around-vanillajs",[230,238],{"_createdAt":231,"_id":232,"_rev":233,"_type":234,"_updatedAt":231,"slug":235,"title":237},"2023-05-23T16:43:21Z","wp-tagcat-podcast","9HpbCsT2tq0xwozQfkc4ih","blogTag",{"current":236},"podcast","The Stack Overflow Podcast",{"_createdAt":231,"_id":239,"_rev":233,"_type":234,"_updatedAt":231,"slug":240,"title":242},"wp-tagcat-the-stack-overflow-podcast",{"current":241},"the-stack-overflow-podcast","the stack overflow podcast","Podcast 402: Teaching developers about the most lightweight web “framework” around, VanillaJS",[245,251,257,263],{"_id":246,"publishedAt":247,"slug":248,"sponsored":12,"title":250},"28e560af-f0aa-4d46-bd90-f435ad604aa7","2026-06-26T14:00:27.102Z",{"_type":10,"current":249},"paging-charity-how-can-engineering-leaders-avoid-becoming-bond-villains","Paging Charity! How can engineering leaders avoid becoming Bond villains?",{"_id":252,"publishedAt":253,"slug":254,"sponsored":12,"title":256},"4b22c2a3-3779-4966-93eb-5230391dbdce","2026-06-23T14:08:58.595Z",{"_type":10,"current":255},"your-ai-shipped-a-backend-that-boots-that-is-the-whole-problem","Your AI shipped a backend that boots. That is the whole problem.",{"_id":258,"publishedAt":259,"slug":260,"sponsored":12,"title":262},"5cf362e1-fe7b-45af-b69c-914731c6a052","2026-06-23T14:00:00.000Z",{"_type":10,"current":261},"the-2026-developer-survey-is-now-open-for-human-developers-only","The 2026 Developer Survey is now open (for human developers only)!",{"_id":264,"publishedAt":265,"slug":266,"sponsored":12,"title":268},"30b995f7-7cb9-4dd8-bf71-d0685940a32b","2026-06-19T14:00:00.000Z",{"_type":10,"current":267},"dispatches-from-o-reilly-from-capabilities-to-responsibilities","Dispatches from O'Reilly: From capabilities to responsibilities",{"data":270,"sourceMap":-1},{"count":271,"lastTimestamp":272},3,"2023-05-25T09:47:44Z"]