[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-w6pKgH4ofRLbLH-DN7gsZXd9K0sdPfxkY9Et2kUTfBY":3,"sanity-X9b20YTmG4h75LoJ98oPKAVap9xOgSldTP6ZrBeTb_A":271},{"data":4,"sourceMap":-1},{"latestPodcast":5,"latestReleases":14,"post":39,"recent":246},[6],{"_id":7,"publishedAt":8,"slug":9,"sponsored":12,"title":13},"4d0175f4-40a8-47eb-9bb3-a453b326aa7d","2026-07-03T07:40:00.000Z",{"_type":10,"current":11},"slug","the-good-the-bad-and-the-ai-apps",null,"The good, the bad, and the AI apps",[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":62,"comments":181,"dateUrl":182,"excerpt":183,"image":184,"product":12,"publishedAt":188,"slug":189,"sponsored":12,"tags":191,"title":245,"visible":181},"2024-11-18T18:00:10Z","b6515095-fe13-420e-b70c-6581bf8cfb04","NR627mkKF39ASec5MIcXxV","blogPost","2025-10-31T17:26:43Z",[46],{"_createdAt":47,"_id":48,"_rev":49,"_type":50,"_updatedAt":51,"avatar":52,"employee":57,"name":58,"role":59,"slug":60},"2023-05-23T16:27:18Z","wp-author-295","3Bta4LYddh6s1g3ALChVvb","blogAuthor","2025-05-09T17:21:54Z",{"_type":53,"asset":54},"image",{"_ref":55,"_type":56},"image-d670f8093b43e483a52ba692d929578633f70eb5-1024x1024-jpg","reference","current","Eira May","B2B Editor",{"current":61},"emay",[63,67,97,112,130,170],{"_key":64,"_type":65,"markDefs":12,"url":66},"f5f29e5878fe","embed","https:\u002F\u002Fart19.com\u002Fshows\u002F2355b740-4531-4071-a3ab-5907a95a36d3\u002Fepisodes\u002Fea6b6129-ca9d-4a94-9707-139782e72d20",{"_key":68,"_type":69,"children":70,"markDefs":90,"style":96},"c521d5d43ef5","block",[71,77,81,86],{"_key":72,"_type":73,"marks":74,"text":76},"751922aa91d60","span",[75],"e01dcfaedd76","Moderne",{"_key":78,"_type":73,"marks":79,"text":80},"751922aa91d61",[]," is an open-source company building automated source code transformations for framework migrations, vulnerability patches, and API migrations. Explore the platform ",{"_key":82,"_type":73,"marks":83,"text":85},"751922aa91d62",[84],"6a708d0f4e63","here",{"_key":87,"_type":73,"marks":88,"text":89},"751922aa91d63",[],".",[91,94],{"_key":75,"_type":92,"href":93,"reference":12},"link","https:\u002F\u002Fwww.moderne.ai\u002F",{"_key":84,"_type":92,"href":95,"reference":12},"https:\u002F\u002Fwww.moderne.ai\u002Fproduct","normal",{"_key":98,"_type":69,"children":99,"markDefs":109,"style":96},"2cb1d554e2e7",[100,105],{"_key":101,"_type":73,"marks":102,"text":104},"f94c45323a130",[103],"46e5a1fcd509","OpenRewrite",{"_key":106,"_type":73,"marks":107,"text":108},"f94c45323a131",[]," is a community-driven open source project that consists of an auto-refactoring engine that runs prepackaged refactoring recipes for common framework migrations, security fixes, and stylistic consistency tasks.",[110],{"_key":103,"_type":92,"href":111,"reference":12},"https:\u002F\u002Fgithub.com\u002Fopenrewrite",{"_key":113,"_type":69,"children":114,"markDefs":127,"style":96},"9b4922ed7a55",[115,119,124],{"_key":116,"_type":73,"marks":117,"text":118},"e286c13eef8f0",[],"Connect with Jonathan on ",{"_key":120,"_type":73,"marks":121,"text":123},"e286c13eef8f1",[122],"0e537b5ecf88","LinkedIn",{"_key":125,"_type":73,"marks":126,"text":89},"e286c13eef8f2",[],[128],{"_key":122,"_type":92,"href":129,"reference":12},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjonkschneider\u002F",{"_key":131,"_type":69,"children":132,"markDefs":163,"style":96},"dc0343bd60ee",[133,137,142,146,151,155,160],{"_key":134,"_type":73,"marks":135,"text":136},"66a950c225960",[],"Props to Stack Overflow user ",{"_key":138,"_type":73,"marks":139,"text":141},"66a950c225961",[140],"d81b67e184cd","Benjamin Atkin",{"_key":143,"_type":73,"marks":144,"text":145},"66a950c225962",[],", who earned a ",{"_key":147,"_type":73,"marks":148,"text":150},"66a950c225963",[149],"c4e285df6534","Populist badge",{"_key":152,"_type":73,"marks":153,"text":154},"66a950c225964",[]," by offering up some wisdom on ",{"_key":156,"_type":73,"marks":157,"text":159},"66a950c225965",[158],"8b83afd836dc","Rails - How to refresh an association after a save",{"_key":161,"_type":73,"marks":162,"text":89},"66a950c225966",[],[164,166,168],{"_key":140,"_type":92,"href":165,"reference":12},"https:\u002F\u002Fstackoverflow.com\u002Fusers\u002F3461\u002Fbenjamin-atkin",{"_key":149,"_type":92,"href":167,"reference":12},"https:\u002F\u002Fstackoverflow.com\u002Fhelp\u002Fbadges\u002F62\u002Fpopulist",{"_key":158,"_type":92,"href":169,"reference":12},"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F12678389\u002Frails-how-to-refresh-an-association-after-a-save",{"_key":171,"_type":69,"children":172,"markDefs":178,"style":96},"da21c54d87e6",[173],{"_key":174,"_type":73,"marks":175,"text":177},"d881f6b67075",[176],"5c6d8558ceea","TRANSCRIPT",[179],{"_key":176,"_type":92,"href":180,"reference":12},"https:\u002F\u002Fthe-stack-overflow-podcast.simplecast.com\u002Fepisodes\u002Fopen-source-ecosystem-reduce-tech-debt\u002Ftranscript",true,"2024\u002F11\u002F19","Today’s guest is Jonathan Schneider, co-founder and CEO of Moderne and creator of OpenRewrite, an open-source automated refactoring ecosystem for source code built to help developers eliminate tech debt. He tells Ben and Ryan about the challenges of automatic refactoring, how Java continues to evolve, and what kind of impact tech debt has on software development. Jonathan also describes the transition from open-source project to startup, why clean code is so important, and the role AI plays for developers right now.",{"_type":53,"asset":185,"attribution":187},{"_ref":186,"_type":56},"image-56c6dab9c7d1b66bc662c5f43ea9573418d94d17-2400x1260-webp","Alexandra Francis","2024-11-19T08:40:00.000Z",{"_type":10,"current":190},"the-open-source-ecosystem-built-to-reduce-tech-debt",[192,199,203,208,215,219,223,230,235,240],{"_createdAt":193,"_id":194,"_rev":195,"_type":196,"_updatedAt":193,"slug":197,"title":198},"2023-05-23T16:43:21Z","wp-tagcat-se-tech","9HpbCsT2tq0xwozQfkc4ih","blogTag",{"current":198},"se-tech",{"_createdAt":193,"_id":200,"_rev":195,"_type":196,"_updatedAt":193,"slug":201,"title":202},"wp-tagcat-se-stackoverflow",{"current":202},"se-stackoverflow",{"_createdAt":193,"_id":204,"_rev":195,"_type":196,"_updatedAt":193,"slug":205,"title":207},"wp-tagcat-podcast",{"current":206},"podcast","The Stack Overflow Podcast",{"_createdAt":193,"_id":209,"_rev":210,"_type":196,"_updatedAt":211,"slug":212,"title":214},"wp-tagcat-ai","fpDTFQqIDjNJIbHDKPBGpV","2025-01-30T16:19:01Z",{"current":213},"ai","AI",{"_createdAt":193,"_id":216,"_rev":195,"_type":196,"_updatedAt":193,"slug":217,"title":218},"wp-tagcat-refactoring",{"current":218},"refactoring",{"_createdAt":193,"_id":220,"_rev":195,"_type":196,"_updatedAt":193,"slug":221,"title":222},"wp-tagcat-java",{"current":222},"java",{"_createdAt":193,"_id":224,"_rev":225,"_type":196,"_updatedAt":226,"slug":227,"title":229},"wp-tagcat-open-source","usBIUY8SfRoXafnkrDdaLh","2025-02-28T11:18:45Z",{"current":228},"open-source","Open Source",{"_createdAt":193,"_id":231,"_rev":195,"_type":196,"_updatedAt":193,"slug":232,"title":234},"wp-tagcat-tech-debt",{"current":233},"tech-debt","tech debt",{"_createdAt":193,"_id":236,"_rev":195,"_type":196,"_updatedAt":193,"slug":237,"title":239},"wp-tagcat-software-development",{"current":238},"software-development","software development",{"_createdAt":193,"_id":241,"_rev":195,"_type":196,"_updatedAt":193,"slug":242,"title":244},"wp-tagcat-code-quality",{"current":243},"code-quality","code quality","The open-source ecosystem built to reduce tech debt",[247,253,259,265],{"_id":248,"publishedAt":249,"slug":250,"sponsored":12,"title":252},"28e560af-f0aa-4d46-bd90-f435ad604aa7","2026-06-26T14:00:27.102Z",{"_type":10,"current":251},"paging-charity-how-can-engineering-leaders-avoid-becoming-bond-villains","Paging Charity! How can engineering leaders avoid becoming Bond villains?",{"_id":254,"publishedAt":255,"slug":256,"sponsored":12,"title":258},"4b22c2a3-3779-4966-93eb-5230391dbdce","2026-06-23T14:08:58.595Z",{"_type":10,"current":257},"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":260,"publishedAt":261,"slug":262,"sponsored":12,"title":264},"5cf362e1-fe7b-45af-b69c-914731c6a052","2026-06-23T14:00:00.000Z",{"_type":10,"current":263},"the-2026-developer-survey-is-now-open-for-human-developers-only","The 2026 Developer Survey is now open (for human developers only)!",{"_id":266,"publishedAt":267,"slug":268,"sponsored":12,"title":270},"30b995f7-7cb9-4dd8-bf71-d0685940a32b","2026-06-19T14:00:00.000Z",{"_type":10,"current":269},"dispatches-from-o-reilly-from-capabilities-to-responsibilities","Dispatches from O'Reilly: From capabilities to responsibilities",{"data":272,"sourceMap":-1},{"count":273,"lastTimestamp":12},0]