[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tag-nodejs":3,"header-categories":13,"tag-nodejs-posts":82},{"success":4,"data":5},true,{"id":6,"name":7,"description":8,"color":9,"createdAt":10,"updatedAt":10,"_count":11},"nodejs","Node.js","JavaScript runtime built on V8","#339933","2026-07-24T06:02:40.315Z",{"posts":12},15,{"success":4,"data":14},{"items":15,"pagination":79},[16,25,33,41,49,57,65,72],{"id":17,"name":18,"description":19,"parentId":20,"createdAt":21,"updatedAt":21,"parent":20,"children":22,"_count":23},"ai-future","AI & The Future","Artificial intelligence and emerging technology",null,"2026-07-24T06:02:45.990Z",[],{"posts":24},1,{"id":26,"name":27,"description":28,"parentId":20,"createdAt":29,"updatedAt":29,"parent":20,"children":30,"_count":31},"tools-productivity","Tools & Productivity","Developer tools and workflow optimization","2026-07-24T06:02:45.712Z",[],{"posts":32},7,{"id":34,"name":35,"description":36,"parentId":20,"createdAt":37,"updatedAt":37,"parent":20,"children":38,"_count":39},"career","Career & Growth","Professional development for developers","2026-07-24T06:02:45.486Z",[],{"posts":40},3,{"id":42,"name":43,"description":44,"parentId":20,"createdAt":45,"updatedAt":45,"parent":20,"children":46,"_count":47},"opinion","Opinion & Analysis","Industry analysis and technical opinions","2026-07-24T06:02:45.272Z",[],{"posts":48},6,{"id":50,"name":51,"description":52,"parentId":20,"createdAt":53,"updatedAt":53,"parent":20,"children":54,"_count":55},"tutorials","Tutorials","Step-by-step learning guides","2026-07-24T06:02:44.965Z",[],{"posts":56},21,{"id":58,"name":59,"description":60,"parentId":20,"createdAt":61,"updatedAt":61,"parent":20,"children":62,"_count":63},"software-engineering","Software Engineering","Best practices, patterns, and principles","2026-07-24T06:02:44.689Z",[],{"posts":64},24,{"id":66,"name":67,"description":68,"parentId":20,"createdAt":69,"updatedAt":69,"parent":20,"children":70,"_count":71},"devops-cloud","DevOps & Cloud","Infrastructure, deployment, and cloud computing","2026-07-24T06:02:44.453Z",[],{"posts":48},{"id":73,"name":74,"description":75,"parentId":20,"createdAt":76,"updatedAt":76,"parent":20,"children":77,"_count":78},"web-development","Web Development","Frontend and backend web development tutorials and guides","2026-07-24T06:02:44.169Z",[],{"posts":64},{"page":24,"limit":80,"total":80,"totalPages":24,"hasNext":81,"hasPrev":81},8,false,{"success":4,"data":83},{"items":84,"pagination":343},[85,118,143,163,187,206,226,248,265,282,304,322],{"id":86,"slug":87,"title":88,"excerpt":89,"status":90,"visibility":91,"featuredImage":92,"readingTime":93,"viewCount":94,"publishedAt":95,"createdAt":96,"updatedAt":97,"author":98,"tags":103,"categories":113,"_count":116},"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.","published","public","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":99,"name":100,"email":101,"avatarUrl":102},"fddb5d93-7a2c-4d86-a06a-fa32e73a01c6","Mbeah Essilfie","mbeahessilfieprince@gmail.com","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93322394?v=4",[104,108,109],{"id":105,"name":106,"color":107},"javascript","JavaScript","#f7df1e",{"id":6,"name":7,"color":9},{"id":110,"name":111,"color":112},"performance","Performance","#e535ab",[114,115],{"id":50,"name":51},{"id":26,"name":27},{"comments":117},0,{"id":119,"slug":120,"title":121,"excerpt":122,"status":90,"visibility":91,"featuredImage":123,"readingTime":32,"viewCount":124,"publishedAt":125,"createdAt":126,"updatedAt":127,"author":128,"tags":129,"categories":139,"_count":142},"ad6af943-1ec0-434d-8b6a-54c3a4383240","environment-variables-configuration-management","Environment Variables and Configuration Management","Manage application configuration properly across development, staging, and production with validation, type safety, and security.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1559028012-481c04fa702d?w=1200&q=80",1564,"2026-05-04T06:04:21.021Z","2026-07-24T06:04:21.024Z","2026-07-28T13:21:44.316Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[130,131,135],{"id":6,"name":7,"color":9},{"id":132,"name":133,"color":134},"devops","DevOps","#ff6c37",{"id":136,"name":137,"color":138},"security","Security","#d63031",[140,141],{"id":66,"name":67},{"id":58,"name":59},{"comments":117},{"id":144,"slug":145,"title":146,"excerpt":147,"status":90,"visibility":91,"featuredImage":148,"readingTime":149,"viewCount":150,"publishedAt":151,"createdAt":152,"updatedAt":153,"author":154,"tags":155,"categories":159,"_count":162},"cd2d70e2-f1c3-490e-b884-d53b8d053f72","scaling-nodejs-single-process-distributed","Scaling Node.js: From Single Process to Distributed System","A roadmap for scaling Node.js from handling 100 to 100,000 requests per second — clustering, load balancing, caching, and horizontal scaling.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1605379399642-870262d3d051?w=1200&q=80",11,1026,"2026-05-10T06:04:14.278Z","2026-07-24T06:04:14.280Z","2026-07-28T17:01:03.558Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[156,157,158],{"id":6,"name":7,"color":9},{"id":132,"name":133,"color":134},{"id":110,"name":111,"color":112},[160,161],{"id":66,"name":67},{"id":58,"name":59},{"comments":117},{"id":164,"slug":165,"title":166,"excerpt":167,"status":90,"visibility":91,"featuredImage":168,"readingTime":93,"viewCount":169,"publishedAt":170,"createdAt":171,"updatedAt":172,"author":173,"tags":174,"categories":184,"_count":186},"cfddcd22-4a14-451b-af8a-c95840f36c63","designing-resilient-systems-circuit-breakers","Designing Resilient Systems: Circuit Breakers and Retry Patterns","Build systems that gracefully handle failure with circuit breakers, exponential backoff, bulkheads, and timeout patterns.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1461749280684-dccba630e2f6?w=1200&q=80",1330,"2026-05-14T06:04:09.859Z","2026-07-24T06:04:09.861Z","2026-07-28T16:30:12.629Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[175,179,180],{"id":176,"name":177,"color":178},"typescript","TypeScript","#3178c6",{"id":6,"name":7,"color":9},{"id":181,"name":182,"color":183},"architecture","Architecture","#795548",[185],{"id":58,"name":59},{"comments":117},{"id":188,"slug":189,"title":190,"excerpt":191,"status":90,"visibility":91,"featuredImage":192,"readingTime":80,"viewCount":193,"publishedAt":194,"createdAt":195,"updatedAt":196,"author":197,"tags":198,"categories":202,"_count":205},"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":99,"name":100,"email":101,"avatarUrl":102},[199,200,201],{"id":105,"name":106,"color":107},{"id":6,"name":7,"color":9},{"id":181,"name":182,"color":183},[203,204],{"id":73,"name":74},{"id":42,"name":43},{"comments":117},{"id":207,"slug":208,"title":209,"excerpt":210,"status":90,"visibility":91,"featuredImage":211,"readingTime":212,"viewCount":213,"publishedAt":214,"createdAt":215,"updatedAt":216,"author":217,"tags":218,"categories":222,"_count":225},"434fd4db-d17e-4188-b412-6b5c5d821c8a","monitoring-observability-web-applications","Monitoring and Observability for Web Applications","Set up proper monitoring with structured logging, error tracking, performance metrics, and alerting before your users find the bugs.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555066931-4365d14bab8c?w=1200&q=80",10,792,"2026-05-22T06:04:00.554Z","2026-07-24T06:04:00.557Z","2026-07-28T16:29:24.348Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[219,220,221],{"id":6,"name":7,"color":9},{"id":132,"name":133,"color":134},{"id":110,"name":111,"color":112},[223,224],{"id":66,"name":67},{"id":58,"name":59},{"comments":117},{"id":227,"slug":228,"title":229,"excerpt":230,"status":90,"visibility":91,"featuredImage":231,"readingTime":149,"viewCount":232,"publishedAt":233,"createdAt":234,"updatedAt":235,"author":236,"tags":237,"categories":244,"_count":247},"30b664b7-1fa9-44fd-8ab5-4c9b02cb97f1","understanding-oauth2-openid-connect","Understanding OAuth 2.0 and OpenID Connect for Web Apps","Demystify OAuth 2.0 flows, tokens, and OpenID Connect. Learn which flow to use for your app and how to implement it securely.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1516116216624-53e697fedbea?w=1200&q=80",488,"2026-05-28T06:03:53.576Z","2026-07-24T06:03:53.579Z","2026-07-28T16:29:38.544Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[238,239,240],{"id":6,"name":7,"color":9},{"id":136,"name":137,"color":138},{"id":241,"name":242,"color":243},"api-design","API Design","#009688",[245,246],{"id":73,"name":74},{"id":58,"name":59},{"comments":117},{"id":249,"slug":250,"title":251,"excerpt":252,"status":90,"visibility":91,"featuredImage":92,"readingTime":93,"viewCount":253,"publishedAt":254,"createdAt":255,"updatedAt":256,"author":257,"tags":258,"categories":261,"_count":264},"9322b32b-bc2b-4502-a0c0-274bb931f841","building-cli-tool-nodejs-npm","Building a CLI Tool with Node.js: From Zero to NPM","Create a professional CLI tool with argument parsing, colorful output, progress indicators, and publish it to NPM for the world to use.",2147,"2026-05-30T06:03:51.038Z","2026-07-24T06:03:51.041Z","2026-07-28T16:28:26.776Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[259,260],{"id":176,"name":177,"color":178},{"id":6,"name":7,"color":9},[262,263],{"id":50,"name":51},{"id":26,"name":27},{"comments":117},{"id":266,"slug":267,"title":268,"excerpt":269,"status":90,"visibility":91,"featuredImage":123,"readingTime":93,"viewCount":270,"publishedAt":271,"createdAt":272,"updatedAt":273,"author":274,"tags":275,"categories":279,"_count":281},"34c5010b-6979-4dfa-8adc-32b1742c1101","error-handling-patterns-typescript","Error Handling Patterns in TypeScript Applications","Move beyond try-catch: Result types, error boundaries, and structured error handling that makes your TypeScript apps more resilient.",519,"2026-06-03T06:03:46.537Z","2026-07-24T06:03:46.540Z","2026-07-28T16:28:30.931Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[276,277,278],{"id":176,"name":177,"color":178},{"id":6,"name":7,"color":9},{"id":181,"name":182,"color":183},[280],{"id":58,"name":59},{"comments":117},{"id":283,"slug":284,"title":285,"excerpt":286,"status":90,"visibility":91,"featuredImage":287,"readingTime":80,"viewCount":288,"publishedAt":289,"createdAt":290,"updatedAt":291,"author":292,"tags":293,"categories":300,"_count":303},"fc5b386f-56e4-4294-b262-e0dac0bcea08","microservices-vs-monolith-decision-framework","Microservices vs Monolith: A Decision Framework","Stop following trends. Use this practical framework to decide whether your project needs microservices, a modular monolith, or something in between.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1526374965328-7f61d4dc18c5?w=1200&q=80",1594,"2026-06-07T06:03:42.106Z","2026-07-24T06:03:42.109Z","2026-07-28T16:07:53.610Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[294,295,299],{"id":6,"name":7,"color":9},{"id":296,"name":297,"color":298},"docker","Docker","#2496ed",{"id":181,"name":182,"color":183},[301,302],{"id":58,"name":59},{"id":42,"name":43},{"comments":117},{"id":305,"slug":306,"title":307,"excerpt":308,"status":90,"visibility":91,"featuredImage":309,"readingTime":212,"viewCount":310,"publishedAt":311,"createdAt":312,"updatedAt":313,"author":314,"tags":315,"categories":319,"_count":321},"3a9b5909-6957-489d-b39b-da65cea24d1f","api-design-principles-developers-love","API Design Principles: Building APIs Developers Love","Practical API design guidelines covering naming conventions, error handling, pagination, and versioning for RESTful services.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1580894894513-541e068a3e2b?w=1200&q=80",2087,"2026-06-25T06:03:20.636Z","2026-07-24T06:03:20.639Z","2026-07-28T16:28:56.140Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[316,317,318],{"id":6,"name":7,"color":9},{"id":241,"name":242,"color":243},{"id":181,"name":182,"color":183},[320],{"id":58,"name":59},{"comments":117},{"id":323,"slug":324,"title":325,"excerpt":326,"status":90,"visibility":91,"featuredImage":123,"readingTime":212,"viewCount":327,"publishedAt":328,"createdAt":329,"updatedAt":330,"author":331,"tags":332,"categories":339,"_count":342},"c3669e83-0f8e-4471-b138-5ead5505a53c","realtime-dashboard-nuxt-websockets","Building a Real-Time Dashboard with Nuxt and WebSockets","Create a live-updating analytics dashboard using Nuxt 3 server-sent events and WebSocket connections for real-time data.",570,"2026-07-03T06:03:11.834Z","2026-07-24T06:03:11.837Z","2026-07-28T16:29:38.876Z",{"id":99,"name":100,"email":101,"avatarUrl":102},[333,334,338],{"id":176,"name":177,"color":178},{"id":335,"name":336,"color":337},"nuxt","Nuxt","#00dc82",{"id":6,"name":7,"color":9},[340,341],{"id":73,"name":74},{"id":50,"name":51},{"comments":117},{"page":24,"limit":344,"total":12,"totalPages":345,"hasNext":4,"hasPrev":81},12,2]