[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"verticals":3,"tag-i18n-1":44,"tags-all":82,"search-suggestions":217},[4,20,32],{"id":5,"slug":6,"name":7,"tagline":8,"description":9,"accentFrom":10,"accentTo":11,"icon":12,"defaultLocale":13,"locales":14,"features":16,"position":19},"019fe637-3d33-714b-b57f-23e163ffca0c","dev","Web Development","Read it. Run it. Prove it.","A post a day on modern web development — most with an editable playground and a quiz that explains every answer. Free, no account needed.","violet-500","cyan-400","◇","en",[13,15],"fa",{"courses":17,"paths":17,"articles":17,"exams":18,"flashcards":18,"packages":17,"community":17,"certificates":17,"teams":17,"commerce":17},true,false,0,{"id":21,"slug":22,"name":23,"tagline":24,"description":25,"accentFrom":26,"accentTo":10,"icon":27,"defaultLocale":13,"locales":28,"features":30,"position":31},"019fe637-3dc2-754c-8657-0f175bfee7c6","lang","Languages","Learn a language the way you learn a codebase.","Grammar explained the way good documentation explains an API — one idea at a time, each with a quiz.","amber-400","⌘",[13,15,29],"es",{"courses":18,"paths":18,"articles":17,"exams":18,"flashcards":17,"packages":18,"community":17,"certificates":17,"teams":18,"commerce":18},2,{"id":33,"slug":34,"name":35,"tagline":36,"description":37,"accentFrom":38,"accentTo":39,"icon":40,"defaultLocale":13,"locales":41,"features":42,"position":43},"7b3c16f2-931d-410e-802e-e1fa4edab7de","soft","Soft Skills","The half of the job nobody wrote documentation for.","Weekly, on the parts of working life that decide more than your code does — first weeks, meetings, interviews, promotions, and the people around you. Written from what actually happens, and recorded as a podcast you can listen to on the walk.","emerald-400","teal-300","◉",[13],{"courses":18,"paths":18,"articles":17,"exams":18,"flashcards":18,"packages":18,"community":17,"certificates":18,"teams":18,"commerce":18},3,{"items":45,"meta":80},[46],{"id":47,"slug":48,"title":49,"subtitle":50,"excerpt":51,"coverUrl":52,"locale":13,"readingMinutes":53,"publishedAt":54,"viewCount":55,"likeCount":19,"commentCount":19,"author":56,"vertical":61,"topic":62,"tags":65,"_count":77,"playground":79,"hasQuiz":17,"hasPlayground":17},"01a1aa54-729d-7788-b3e1-33456ed71fa2","intl-durationformat-native-duration-formatting","My Duration Formatter Broke in French. Intl.DurationFormat Doesn't.",null,"A hand-rolled formatDuration() helper looks finished the day you write it — until the app ships in a second locale. Intl.DurationFormat is the native, locale-correct replacement, with a few sharp edges worth knowing first.","\u002Fmedia\u002Fcovers\u002Fintl-durationformat-native-duration-formatting.png",7,"2026-11-15T12:08:17.697Z",34,{"id":57,"name":58,"username":59,"avatarUrl":50,"headline":60},"019fe637-3c25-7088-9034-39c9f15dc3c8","Parsa Jiravand","parsa","Frontend engineer · building bestpractic",{"slug":6,"name":7,"accentFrom":10,"accentTo":11},{"slug":63,"name":64},"javascript","JavaScript",[66,68,71,74],{"slug":63,"name":67,"color":50},"Javascript",{"slug":69,"name":70,"color":50},"webdev","Webdev",{"slug":72,"name":73,"color":50},"i18n","I18n",{"slug":75,"name":76,"color":50},"programming","Programming",{"assessments":78},1,{"slug":48},{"page":78,"perPage":81,"total":78,"totalPages":78},12,[83,85,87,91,95,99,103,107,111,112,116,120,123,127,131,134,138,141,144,148,151,154,158,162,166,169,172,175,178,181,184,187,190,193,196,199,202,205,208,211,214],{"slug":69,"name":70,"color":50,"articles":84},177,{"slug":63,"name":67,"color":50,"articles":86},142,{"slug":88,"name":89,"color":50,"articles":90},"frontend","Frontend",98,{"slug":92,"name":93,"color":50,"articles":94},"tutorial","Tutorial",72,{"slug":96,"name":97,"color":50,"articles":98},"css","Css",53,{"slug":100,"name":101,"color":50,"articles":102},"performance","Performance",31,{"slug":104,"name":105,"color":50,"articles":106},"typescript","Typescript",25,{"slug":108,"name":109,"color":50,"articles":110},"react","React",20,{"slug":75,"name":76,"color":50,"articles":110},{"slug":113,"name":114,"color":50,"articles":115},"browser","Browser",18,{"slug":117,"name":118,"color":50,"articles":119},"node","Node",16,{"slug":121,"name":122,"color":50,"articles":81},"html","Html",{"slug":124,"name":125,"color":50,"articles":126},"nextjs","Nextjs",11,{"slug":128,"name":129,"color":50,"articles":130},"vue","Vue",10,{"slug":132,"name":133,"color":50,"articles":130},"accessibility","Accessibility",{"slug":135,"name":136,"color":50,"articles":137},"nestjs","Nestjs",9,{"slug":139,"name":140,"color":50,"articles":137},"career","Career",{"slug":142,"name":143,"color":50,"articles":137},"discuss","Discuss",{"slug":145,"name":146,"color":50,"articles":147},"nuxt","Nuxt",8,{"slug":149,"name":150,"color":50,"articles":147},"productivity","Productivity",{"slug":152,"name":153,"color":50,"articles":53},"beginners","Beginners",{"slug":155,"name":156,"color":50,"articles":157},"grammar","Grammar",6,{"slug":159,"name":160,"color":50,"articles":161},"security","Security",5,{"slug":163,"name":164,"color":50,"articles":165},"ssr","SSR",4,{"slug":167,"name":168,"color":50,"articles":165},"apis","Apis",{"slug":170,"name":171,"color":50,"articles":43},"ai","Ai",{"slug":173,"name":174,"color":50,"articles":43},"api","API",{"slug":176,"name":177,"color":50,"articles":43},"caching","Caching",{"slug":179,"name":180,"color":50,"articles":31},"async","Async",{"slug":182,"name":183,"color":50,"articles":31},"forms","Forms",{"slug":185,"name":186,"color":50,"articles":31},"dom","Dom",{"slug":188,"name":189,"color":50,"articles":31},"backend","Backend",{"slug":191,"name":192,"color":50,"articles":31},"english","English",{"slug":194,"name":195,"color":50,"articles":31},"verbs","Verbs",{"slug":197,"name":198,"color":50,"articles":31},"spanish","Spanish",{"slug":200,"name":201,"color":50,"articles":31},"a1","A1",{"slug":203,"name":204,"color":50,"articles":31},"a2","A2",{"slug":206,"name":207,"color":50,"articles":31},"tenses","Tenses",{"slug":209,"name":210,"color":50,"articles":31},"turkish","Turkish",{"slug":212,"name":213,"color":50,"articles":31},"animation","Animation",{"slug":215,"name":216,"color":50,"articles":31},"watercooler","Watercooler",[218,219,220,221,222,223,224,225,226,227,228,229],{"slug":69,"name":70,"articles":84},{"slug":63,"name":67,"articles":86},{"slug":88,"name":89,"articles":90},{"slug":92,"name":93,"articles":94},{"slug":96,"name":97,"articles":98},{"slug":100,"name":101,"articles":102},{"slug":104,"name":105,"articles":106},{"slug":108,"name":109,"articles":110},{"slug":75,"name":76,"articles":110},{"slug":113,"name":114,"articles":115},{"slug":117,"name":118,"articles":119},{"slug":121,"name":122,"articles":81}]