[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tag-architecture":3,"header-categories":13,"tag-architecture-posts":82},{"success":4,"data":5},true,{"id":6,"name":7,"description":8,"color":9,"createdAt":10,"updatedAt":10,"_count":11},"architecture","Architecture","Software architecture patterns","#795548","2026-07-24T06:02:43.327Z",{"posts":12},13,{"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":336},[85,117,139,161,183,203,220,238,259,276,293,311],{"id":86,"slug":87,"title":88,"excerpt":89,"status":90,"visibility":91,"featuredImage":92,"readingTime":80,"viewCount":93,"publishedAt":94,"createdAt":95,"updatedAt":96,"author":97,"tags":102,"categories":112,"_count":115},"1437766b-f895-4382-9d67-2525941643d9","monorepos-turborepo-managing-packages","Monorepos with Turborepo: Managing Multiple Packages","Set up a productive monorepo with Turborepo for shared UI libraries, APIs, and apps with smart caching and task orchestration.","published","public","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555066931-4365d14bab8c?w=1200&q=80",2102,"2026-04-22T06:04:35.999Z","2026-07-24T06:04:36.002Z","2026-07-28T12:22:17.023Z",{"id":98,"name":99,"email":100,"avatarUrl":101},"fddb5d93-7a2c-4d86-a06a-fa32e73a01c6","Mbeah Essilfie","mbeahessilfieprince@gmail.com","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93322394?v=4",[103,107,111],{"id":104,"name":105,"color":106},"typescript","TypeScript","#3178c6",{"id":108,"name":109,"color":110},"devops","DevOps","#ff6c37",{"id":6,"name":7,"color":9},[113,114],{"id":58,"name":59},{"id":26,"name":27},{"comments":116},0,{"id":118,"slug":119,"title":120,"excerpt":121,"status":90,"visibility":91,"featuredImage":122,"readingTime":80,"viewCount":123,"publishedAt":124,"createdAt":125,"updatedAt":126,"author":127,"tags":128,"categories":135,"_count":138},"5ca7acb7-f9e0-4490-b00b-6f8039dc414a","graphql-2025-when-to-use-avoid","GraphQL in 2025: When to Use It and When to Avoid It","An honest assessment of GraphQL's strengths and weaknesses. Learn when it shines and when a simple REST API is the better choice.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1526374965328-7f61d4dc18c5?w=1200&q=80",956,"2026-05-08T06:04:16.412Z","2026-07-24T06:04:16.415Z","2026-07-28T13:21:43.560Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[129,130,134],{"id":104,"name":105,"color":106},{"id":131,"name":132,"color":133},"api-design","API Design","#009688",{"id":6,"name":7,"color":9},[136,137],{"id":58,"name":59},{"id":42,"name":43},{"comments":116},{"id":140,"slug":141,"title":142,"excerpt":143,"status":90,"visibility":91,"featuredImage":144,"readingTime":145,"viewCount":146,"publishedAt":147,"createdAt":148,"updatedAt":149,"author":150,"tags":151,"categories":158,"_count":160},"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",9,1331,"2026-05-14T06:04:09.859Z","2026-07-24T06:04:09.861Z","2026-07-28T17:13:38.826Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[152,153,157],{"id":104,"name":105,"color":106},{"id":154,"name":155,"color":156},"nodejs","Node.js","#339933",{"id":6,"name":7,"color":9},[159],{"id":58,"name":59},{"comments":116},{"id":162,"slug":163,"title":164,"excerpt":165,"status":90,"visibility":91,"featuredImage":166,"readingTime":80,"viewCount":167,"publishedAt":168,"createdAt":169,"updatedAt":170,"author":171,"tags":172,"categories":179,"_count":182},"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",493,"2026-05-16T06:04:07.518Z","2026-07-24T06:04:07.521Z","2026-07-28T17:15:43.493Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[173,177,178],{"id":174,"name":175,"color":176},"javascript","JavaScript","#f7df1e",{"id":154,"name":155,"color":156},{"id":6,"name":7,"color":9},[180,181],{"id":73,"name":74},{"id":42,"name":43},{"comments":116},{"id":184,"slug":185,"title":186,"excerpt":187,"status":90,"visibility":91,"featuredImage":188,"readingTime":189,"viewCount":190,"publishedAt":191,"createdAt":192,"updatedAt":193,"author":194,"tags":195,"categories":199,"_count":202},"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.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1551288049-bebda4e38f71?w=1200&q=80",10,1910,"2026-05-18T06:04:05.250Z","2026-07-24T06:04:05.253Z","2026-07-28T17:07:17.697Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[196,197,198],{"id":174,"name":175,"color":176},{"id":104,"name":105,"color":106},{"id":6,"name":7,"color":9},[200,201],{"id":58,"name":59},{"id":50,"name":51},{"comments":116},{"id":204,"slug":205,"title":206,"excerpt":207,"status":90,"visibility":91,"featuredImage":208,"readingTime":32,"viewCount":209,"publishedAt":210,"createdAt":211,"updatedAt":212,"author":213,"tags":214,"categories":216,"_count":219},"f4f45674-fd5f-413d-b77a-133582dc2fb9","effective-technical-writing-developers","Effective Technical Writing for Developers","Write documentation, blog posts, and READMEs that people actually read. Practical techniques from years of writing about code.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1580894894513-541e068a3e2b?w=1200&q=80",1156,"2026-05-26T06:03:55.773Z","2026-07-24T06:03:55.775Z","2026-07-28T17:09:10.716Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[215],{"id":6,"name":7,"color":9},[217,218],{"id":42,"name":43},{"id":34,"name":35},{"comments":116},{"id":221,"slug":222,"title":223,"excerpt":224,"status":90,"visibility":91,"featuredImage":225,"readingTime":145,"viewCount":226,"publishedAt":227,"createdAt":228,"updatedAt":229,"author":230,"tags":231,"categories":235,"_count":237},"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.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1559028012-481c04fa702d?w=1200&q=80",520,"2026-06-03T06:03:46.537Z","2026-07-24T06:03:46.540Z","2026-07-28T17:09:00.145Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[232,233,234],{"id":104,"name":105,"color":106},{"id":154,"name":155,"color":156},{"id":6,"name":7,"color":9},[236],{"id":58,"name":59},{"comments":116},{"id":239,"slug":240,"title":241,"excerpt":242,"status":90,"visibility":91,"featuredImage":122,"readingTime":80,"viewCount":243,"publishedAt":244,"createdAt":245,"updatedAt":246,"author":247,"tags":248,"categories":255,"_count":258},"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.",1595,"2026-06-07T06:03:42.106Z","2026-07-24T06:03:42.109Z","2026-07-28T17:11:32.101Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[249,250,254],{"id":154,"name":155,"color":156},{"id":251,"name":252,"color":253},"docker","Docker","#2496ed",{"id":6,"name":7,"color":9},[256,257],{"id":58,"name":59},{"id":42,"name":43},{"comments":116},{"id":260,"slug":261,"title":262,"excerpt":263,"status":90,"visibility":91,"featuredImage":188,"readingTime":32,"viewCount":264,"publishedAt":265,"createdAt":266,"updatedAt":267,"author":268,"tags":269,"categories":272,"_count":275},"f9acf10b-40d3-4cdc-994a-4a4b321a3ce2","art-of-code-review-better-feedback","The Art of Code Review: Giving Feedback That Ships Better Code","Transform your code reviews from nitpick sessions into collaborative learning opportunities that improve code quality and team culture.",1738,"2026-06-17T06:03:30.739Z","2026-07-24T06:03:30.742Z","2026-07-28T17:14:16.550Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[270,271],{"id":108,"name":109,"color":110},{"id":6,"name":7,"color":9},[273,274],{"id":58,"name":59},{"id":34,"name":35},{"comments":116},{"id":277,"slug":278,"title":279,"excerpt":280,"status":90,"visibility":91,"featuredImage":208,"readingTime":189,"viewCount":281,"publishedAt":282,"createdAt":283,"updatedAt":284,"author":285,"tags":286,"categories":290,"_count":292},"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.",2088,"2026-06-25T06:03:20.636Z","2026-07-24T06:03:20.639Z","2026-07-28T17:11:12.669Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[287,288,289],{"id":154,"name":155,"color":156},{"id":131,"name":132,"color":133},{"id":6,"name":7,"color":9},[291],{"id":58,"name":59},{"comments":116},{"id":294,"slug":295,"title":296,"excerpt":297,"status":90,"visibility":91,"featuredImage":298,"readingTime":32,"viewCount":299,"publishedAt":300,"createdAt":301,"updatedAt":302,"author":303,"tags":304,"categories":307,"_count":310},"19bdd417-e6a8-4273-a465-2df0218a1ef5","git-workflow-strategies-small-teams","Git Workflow Strategies for Small Teams","Trunk-based development, feature branches, or GitFlow? A practical comparison for teams of 2-10 developers.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1618477388954-7852f32655ec?w=1200&q=80",1623,"2026-06-29T06:03:16.300Z","2026-07-24T06:03:16.303Z","2026-07-28T16:30:04.598Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[305,306],{"id":108,"name":109,"color":110},{"id":6,"name":7,"color":9},[308,309],{"id":58,"name":59},{"id":26,"name":27},{"comments":116},{"id":312,"slug":313,"title":314,"excerpt":315,"status":90,"visibility":91,"featuredImage":316,"readingTime":32,"viewCount":317,"publishedAt":318,"createdAt":319,"updatedAt":320,"author":321,"tags":322,"categories":332,"_count":335},"e8420162-7f32-4e99-a0ab-6e0910097ae0","ssr-vs-ssg-right-choice","Server-Side Rendering vs Static Generation: Making the Right Choice","A practical framework for deciding between SSR, SSG, and ISR for your next project, with real-world trade-off analysis.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1605379399642-870262d3d051?w=1200&q=80",1731,"2026-07-09T06:03:04.135Z","2026-07-24T06:03:04.139Z","2026-07-28T17:14:06.949Z",{"id":98,"name":99,"email":100,"avatarUrl":101},[323,327,331],{"id":324,"name":325,"color":326},"nuxt","Nuxt","#00dc82",{"id":328,"name":329,"color":330},"performance","Performance","#e535ab",{"id":6,"name":7,"color":9},[333,334],{"id":73,"name":74},{"id":42,"name":43},{"comments":116},{"page":24,"limit":337,"total":12,"totalPages":338,"hasNext":4,"hasPrev":81},12,2]