[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tag-javascript":3,"tag-javascript-posts":13,"header-categories":288},{"success":4,"data":5},true,{"id":6,"name":7,"description":8,"color":9,"createdAt":10,"updatedAt":10,"_count":11},"javascript","JavaScript","The language of the web","#f7df1e","2026-07-24T06:02:38.864Z",{"posts":12},12,{"success":4,"data":14},{"items":15,"pagination":285},[16,53,77,104,129,151,169,186,208,228,248,266],{"id":17,"slug":18,"title":19,"excerpt":20,"status":21,"visibility":22,"featuredImage":23,"readingTime":24,"viewCount":25,"publishedAt":26,"createdAt":27,"updatedAt":28,"author":29,"tags":34,"categories":44,"_count":51},"5daa7f62-cd30-4a05-9fcf-a6fa6604e332","authentication-patterns-spa","Authentication Patterns for Single-Page Applications","Implement secure authentication in SPAs with token rotation, silent refresh, secure storage, and protection against common attacks.","published","public","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1551288049-bebda4e38f71?w=1200&q=80",10,1228,"2026-04-18T06:04:41.020Z","2026-07-24T06:04:41.024Z","2026-07-28T15:12:51.098Z",{"id":30,"name":31,"email":32,"avatarUrl":33},"fddb5d93-7a2c-4d86-a06a-fa32e73a01c6","Mbeah Essilfie","mbeahessilfieprince@gmail.com","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93322394?v=4",[35,36,40],{"id":6,"name":7,"color":9},{"id":37,"name":38,"color":39},"vue","Vue","#4fc08d",{"id":41,"name":42,"color":43},"security","Security","#d63031",[45,48],{"id":46,"name":47},"web-development","Web Development",{"id":49,"name":50},"software-engineering","Software Engineering",{"comments":52},0,{"id":54,"slug":55,"title":56,"excerpt":57,"status":21,"visibility":22,"featuredImage":58,"readingTime":59,"viewCount":60,"publishedAt":61,"createdAt":62,"updatedAt":63,"author":64,"tags":65,"categories":71,"_count":76},"b227a75c-ed23-4047-937e-7c3b989f4c0b","progressive-web-apps-2025-relevant","Progressive Web Apps in 2025: Still Relevant?","Are PWAs still worth building? An honest look at the current state of PWA capabilities, limitations, and when they make sense.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1516116216624-53e697fedbea?w=1200&q=80",7,959,"2026-04-28T06:04:28.940Z","2026-07-24T06:04:28.943Z","2026-07-28T12:20:37.368Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[66,67],{"id":6,"name":7,"color":9},{"id":68,"name":69,"color":70},"performance","Performance","#e535ab",[72,73],{"id":46,"name":47},{"id":74,"name":75},"opinion","Opinion & Analysis",{"comments":52},{"id":78,"slug":79,"title":80,"excerpt":81,"status":21,"visibility":22,"featuredImage":82,"readingTime":83,"viewCount":84,"publishedAt":85,"createdAt":86,"updatedAt":87,"author":88,"tags":89,"categories":96,"_count":103},"58d72280-be9f-423b-8bff-1d3cb19b4780","debugging-nodejs-applications-pro","Debugging Node.js Applications Like a Pro","Go beyond console.log. Master the Node.js debugger, memory profiling, async stack traces, and production debugging techniques.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1618477388954-7852f32655ec?w=1200&q=80",9,1038,"2026-04-30T06:04:26.346Z","2026-07-24T06:04:26.348Z","2026-07-28T13:22:15.462Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[90,91,95],{"id":6,"name":7,"color":9},{"id":92,"name":93,"color":94},"nodejs","Node.js","#339933",{"id":68,"name":69,"color":70},[97,100],{"id":98,"name":99},"tutorials","Tutorials",{"id":101,"name":102},"tools-productivity","Tools & Productivity",{"comments":52},{"id":105,"slug":106,"title":107,"excerpt":108,"status":21,"visibility":22,"featuredImage":109,"readingTime":110,"viewCount":111,"publishedAt":112,"createdAt":113,"updatedAt":114,"author":115,"tags":116,"categories":126,"_count":128},"7cf48692-4de2-481a-9344-5bdb80b5a514","writing-effective-unit-tests-quality","Writing Effective Unit Tests: Quality Over Quantity","Stop chasing coverage numbers. Learn to write tests that catch real bugs, document behavior, and give you confidence to refactor.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1550439062-609e1531270e?w=1200&q=80",8,545,"2026-05-06T06:04:18.665Z","2026-07-24T06:04:18.668Z","2026-07-28T15:29:55.285Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[117,118,122],{"id":6,"name":7,"color":9},{"id":119,"name":120,"color":121},"typescript","TypeScript","#3178c6",{"id":123,"name":124,"color":125},"testing","Testing","#99425b",[127],{"id":49,"name":50},{"comments":52},{"id":130,"slug":131,"title":132,"excerpt":133,"status":21,"visibility":22,"featuredImage":134,"readingTime":110,"viewCount":135,"publishedAt":136,"createdAt":137,"updatedAt":138,"author":139,"tags":140,"categories":147,"_count":150},"d0ece37f-c009-4dbd-b886-b6c555d65606","websocket-vs-sse-vs-long-polling","WebSocket vs Server-Sent Events vs Long Polling","Choose the right real-time communication strategy. A technical comparison of WebSockets, SSE, and long polling with decision criteria.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1504639725590-34d0984388bd?w=1200&q=80",492,"2026-05-16T06:04:07.518Z","2026-07-24T06:04:07.521Z","2026-07-28T16:30:04.205Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[141,142,143],{"id":6,"name":7,"color":9},{"id":92,"name":93,"color":94},{"id":144,"name":145,"color":146},"architecture","Architecture","#795548",[148,149],{"id":46,"name":47},{"id":74,"name":75},{"comments":52},{"id":152,"slug":153,"title":154,"excerpt":155,"status":21,"visibility":22,"featuredImage":23,"readingTime":24,"viewCount":156,"publishedAt":157,"createdAt":158,"updatedAt":159,"author":160,"tags":161,"categories":165,"_count":168},"1f16f501-5d1b-426a-b0ab-0eca7430d8d9","functional-programming-javascript-practical","Functional Programming in JavaScript: Practical Patterns","Apply functional programming principles to everyday JavaScript: immutability, pure functions, composition, and practical uses of map\u002Ffilter\u002Freduce.",1910,"2026-05-18T06:04:05.250Z","2026-07-24T06:04:05.253Z","2026-07-28T17:07:17.697Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[162,163,164],{"id":6,"name":7,"color":9},{"id":119,"name":120,"color":121},{"id":144,"name":145,"color":146},[166,167],{"id":49,"name":50},{"id":98,"name":99},{"comments":52},{"id":170,"slug":171,"title":172,"excerpt":173,"status":21,"visibility":22,"featuredImage":109,"readingTime":12,"viewCount":174,"publishedAt":175,"createdAt":176,"updatedAt":177,"author":178,"tags":179,"categories":182,"_count":185},"f3db841d-5307-41c5-97b1-f757bd4bf72a","typescript-generics-demystified","TypeScript Generics Demystified: From Basics to Advanced Patterns","Finally understand TypeScript generics. From simple type parameters to conditional types and mapped types with real-world examples.",912,"2026-06-05T06:03:44.378Z","2026-07-24T06:03:44.381Z","2026-07-28T15:29:51.627Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[180,181],{"id":6,"name":7,"color":9},{"id":119,"name":120,"color":121},[183,184],{"id":46,"name":47},{"id":98,"name":99},{"comments":52},{"id":187,"slug":188,"title":189,"excerpt":190,"status":21,"visibility":22,"featuredImage":191,"readingTime":83,"viewCount":192,"publishedAt":193,"createdAt":194,"updatedAt":195,"author":196,"tags":197,"categories":204,"_count":207},"efe5eac4-404f-4d7e-8d95-5ad07cdcb7ff","building-accessible-web-applications","Building Accessible Web Applications: Beyond ARIA Labels","Accessibility isn't an afterthought. Learn to build inclusive web apps with semantic HTML, keyboard navigation, and ARIA done right.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1605379399642-870262d3d051?w=1200&q=80",2004,"2026-06-09T06:03:39.775Z","2026-07-24T06:03:39.778Z","2026-07-28T16:29:24.561Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[198,199,200],{"id":6,"name":7,"color":9},{"id":37,"name":38,"color":39},{"id":201,"name":202,"color":203},"css","CSS","#1572b6",[205,206],{"id":46,"name":47},{"id":49,"name":50},{"comments":52},{"id":209,"slug":210,"title":211,"excerpt":212,"status":21,"visibility":22,"featuredImage":213,"readingTime":214,"viewCount":215,"publishedAt":216,"createdAt":217,"updatedAt":218,"author":219,"tags":220,"categories":224,"_count":227},"e142fe82-f78c-4e55-bfc6-d5c739f3b7f0","web-performance-core-web-vitals","Web Performance: Core Web Vitals Optimization Guide","Practical techniques to improve LCP, FID, and CLS scores — the metrics that actually impact your search rankings and user experience.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555066931-4365d14bab8c?w=1200&q=80",11,1407,"2026-06-21T06:03:26.029Z","2026-07-24T06:03:26.033Z","2026-07-28T16:28:55.243Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[221,222,223],{"id":6,"name":7,"color":9},{"id":201,"name":202,"color":203},{"id":68,"name":69,"color":70},[225,226],{"id":46,"name":47},{"id":49,"name":50},{"comments":52},{"id":229,"slug":230,"title":231,"excerpt":232,"status":21,"visibility":22,"featuredImage":109,"readingTime":233,"viewCount":234,"publishedAt":235,"createdAt":236,"updatedAt":237,"author":238,"tags":239,"categories":245,"_count":247},"d55543df-6143-41f3-970e-4485d1ab8e37","rust-for-javascript-developers","Rust for JavaScript Developers: First Steps","A gentle introduction to Rust's key concepts through the lens of JavaScript familiarity — ownership, borrowing, and why they matter.",13,457,"2026-07-05T06:03:09.056Z","2026-07-24T06:03:09.059Z","2026-07-28T17:07:16.258Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[240,241],{"id":6,"name":7,"color":9},{"id":242,"name":243,"color":244},"rust","Rust","#dea584",[246],{"id":98,"name":99},{"comments":52},{"id":249,"slug":250,"title":251,"excerpt":252,"status":21,"visibility":22,"featuredImage":134,"readingTime":214,"viewCount":253,"publishedAt":254,"createdAt":255,"updatedAt":256,"author":257,"tags":258,"categories":262,"_count":265},"cc8bd585-3068-4f04-89c3-1d2c1a1f6143","understanding-javascript-event-loop","Understanding JavaScript Event Loop: Beyond the Basics","A deep dive into the JavaScript event loop, microtasks, macrotasks, and how they affect your application's performance.",1034,"2026-07-15T06:02:56.332Z","2026-07-24T06:02:56.335Z","2026-07-28T16:27:18.926Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[259,260,261],{"id":6,"name":7,"color":9},{"id":92,"name":93,"color":94},{"id":68,"name":69,"color":70},[263,264],{"id":46,"name":47},{"id":49,"name":50},{"comments":52},{"id":267,"slug":268,"title":269,"excerpt":270,"status":21,"visibility":22,"featuredImage":271,"readingTime":12,"viewCount":272,"publishedAt":273,"createdAt":274,"updatedAt":275,"author":276,"tags":277,"categories":281,"_count":284},"50add5fc-4026-4267-b917-7f71ea9e35b0","complete-guide-vue3-composables","The Complete Guide to Vue 3 Composables","Understand the power of Vue 3's Composition API through practical, real-world composable patterns that you can use today.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1517694712202-14dd9538aa97?w=1200&q=80",990,"2026-07-19T06:02:51.753Z","2026-07-24T06:02:51.757Z","2026-07-28T13:17:36.026Z",{"id":30,"name":31,"email":32,"avatarUrl":33},[278,279,280],{"id":6,"name":7,"color":9},{"id":119,"name":120,"color":121},{"id":37,"name":38,"color":39},[282,283],{"id":46,"name":47},{"id":98,"name":99},{"comments":52},{"page":286,"limit":12,"total":12,"totalPages":286,"hasNext":287,"hasPrev":287},1,false,{"success":4,"data":289},{"items":290,"pagination":342},[291,299,304,312,318,324,330,337],{"id":292,"name":293,"description":294,"parentId":295,"createdAt":296,"updatedAt":296,"parent":295,"children":297,"_count":298},"ai-future","AI & The Future","Artificial intelligence and emerging technology",null,"2026-07-24T06:02:45.990Z",[],{"posts":286},{"id":101,"name":102,"description":300,"parentId":295,"createdAt":301,"updatedAt":301,"parent":295,"children":302,"_count":303},"Developer tools and workflow optimization","2026-07-24T06:02:45.712Z",[],{"posts":59},{"id":305,"name":306,"description":307,"parentId":295,"createdAt":308,"updatedAt":308,"parent":295,"children":309,"_count":310},"career","Career & Growth","Professional development for developers","2026-07-24T06:02:45.486Z",[],{"posts":311},3,{"id":74,"name":75,"description":313,"parentId":295,"createdAt":314,"updatedAt":314,"parent":295,"children":315,"_count":316},"Industry analysis and technical opinions","2026-07-24T06:02:45.272Z",[],{"posts":317},6,{"id":98,"name":99,"description":319,"parentId":295,"createdAt":320,"updatedAt":320,"parent":295,"children":321,"_count":322},"Step-by-step learning guides","2026-07-24T06:02:44.965Z",[],{"posts":323},21,{"id":49,"name":50,"description":325,"parentId":295,"createdAt":326,"updatedAt":326,"parent":295,"children":327,"_count":328},"Best practices, patterns, and principles","2026-07-24T06:02:44.689Z",[],{"posts":329},24,{"id":331,"name":332,"description":333,"parentId":295,"createdAt":334,"updatedAt":334,"parent":295,"children":335,"_count":336},"devops-cloud","DevOps & Cloud","Infrastructure, deployment, and cloud computing","2026-07-24T06:02:44.453Z",[],{"posts":317},{"id":46,"name":47,"description":338,"parentId":295,"createdAt":339,"updatedAt":339,"parent":295,"children":340,"_count":341},"Frontend and backend web development tutorials and guides","2026-07-24T06:02:44.169Z",[],{"posts":329},{"page":286,"limit":110,"total":110,"totalPages":286,"hasNext":287,"hasPrev":287}]