[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"category-ai-future":3,"category-ai-future-posts":14,"header-categories":319},{"success":4,"data":5},true,{"id":6,"name":7,"description":8,"parentId":9,"createdAt":10,"updatedAt":10,"parent":9,"children":11,"_count":12},"ai-future","AI & The Future","Artificial intelligence and emerging technology",null,"2026-07-24T06:02:45.990Z",[],{"posts":13},1,{"success":4,"data":15},{"items":16,"pagination":314},[17,57,86,111,137,164,185,207,233,254,275,294],{"id":18,"slug":19,"title":20,"excerpt":21,"status":22,"visibility":23,"featuredImage":24,"readingTime":25,"viewCount":26,"publishedAt":27,"createdAt":28,"updatedAt":29,"author":30,"tags":35,"categories":48,"_count":55},"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,1226,"2026-04-18T06:04:41.020Z","2026-07-24T06:04:41.024Z","2026-07-28T12:16:24.566Z",{"id":31,"name":32,"email":33,"avatarUrl":34},"fddb5d93-7a2c-4d86-a06a-fa32e73a01c6","Mbeah Essilfie","mbeahessilfieprince@gmail.com","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93322394?v=4",[36,40,44],{"id":37,"name":38,"color":39},"javascript","JavaScript","#f7df1e",{"id":41,"name":42,"color":43},"vue","Vue","#4fc08d",{"id":45,"name":46,"color":47},"security","Security","#d63031",[49,52],{"id":50,"name":51},"web-development","Web Development",{"id":53,"name":54},"software-engineering","Software Engineering",{"comments":56},0,{"id":58,"slug":59,"title":60,"excerpt":61,"status":22,"visibility":23,"featuredImage":62,"readingTime":63,"viewCount":64,"publishedAt":65,"createdAt":66,"updatedAt":67,"author":68,"tags":69,"categories":78,"_count":85},"cdb70bf7-aa8f-48c0-9760-2b8d0867dc0b","practical-vim-modern-developers","Practical Vim for Modern Developers","You don't need to live in Vim to benefit from it. Learn the motions and mental model that make editing code dramatically faster.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1517694712202-14dd9538aa97?w=1200&q=80",8,1371,"2026-04-20T06:04:38.260Z","2026-07-24T06:04:38.262Z","2026-07-28T12:16:25.381Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[70,74],{"id":71,"name":72,"color":73},"devops","DevOps","#ff6c37",{"id":75,"name":76,"color":77},"python","Python","#3776ab",[79,82],{"id":80,"name":81},"career","Career & Growth",{"id":83,"name":84},"tools-productivity","Tools & Productivity",{"comments":56},{"id":87,"slug":88,"title":89,"excerpt":90,"status":22,"visibility":23,"featuredImage":91,"readingTime":63,"viewCount":92,"publishedAt":93,"createdAt":94,"updatedAt":95,"author":96,"tags":97,"categories":107,"_count":110},"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.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555066931-4365d14bab8c?w=1200&q=80",2101,"2026-04-22T06:04:35.999Z","2026-07-24T06:04:36.002Z","2026-07-28T11:37:45.210Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[98,102,103],{"id":99,"name":100,"color":101},"typescript","TypeScript","#3178c6",{"id":71,"name":72,"color":73},{"id":104,"name":105,"color":106},"architecture","Architecture","#795548",[108,109],{"id":53,"name":54},{"id":83,"name":84},{"comments":56},{"id":112,"slug":113,"title":114,"excerpt":115,"status":22,"visibility":23,"featuredImage":116,"readingTime":117,"viewCount":118,"publishedAt":119,"createdAt":120,"updatedAt":121,"author":122,"tags":123,"categories":133,"_count":136},"f0cda6e8-230a-4618-8454-c067288d1703","developers-guide-http-caching","The Developer's Guide to HTTP Caching","Master HTTP caching headers, CDN strategies, and cache invalidation to deliver blazing-fast experiences while keeping content fresh.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1498050108023-c5249f4df085?w=1200&q=80",9,1829,"2026-04-24T06:04:33.840Z","2026-07-24T06:04:33.842Z","2026-07-28T12:15:56.850Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[124,125,129],{"id":71,"name":72,"color":73},{"id":126,"name":127,"color":128},"performance","Performance","#e535ab",{"id":130,"name":131,"color":132},"api-design","API Design","#009688",[134,135],{"id":50,"name":51},{"id":53,"name":54},{"comments":56},{"id":138,"slug":139,"title":140,"excerpt":141,"status":22,"visibility":23,"featuredImage":142,"readingTime":117,"viewCount":143,"publishedAt":144,"createdAt":145,"updatedAt":146,"author":147,"tags":148,"categories":158,"_count":163},"b4f7b827-eb04-45d0-ac3f-e5e691d391e3","full-text-search-without-elasticsearch","Implementing Full-Text Search Without Elasticsearch","You don't always need a dedicated search engine. Implement performant full-text search with PostgreSQL's built-in capabilities.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1580894894513-541e068a3e2b?w=1200&q=80",453,"2026-04-26T06:04:31.080Z","2026-07-24T06:04:31.083Z","2026-07-28T10:52:41.492Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[149,153,154],{"id":150,"name":151,"color":152},"prisma","Prisma","#2d3748",{"id":126,"name":127,"color":128},{"id":155,"name":156,"color":157},"database","Database","#336791",[159,160],{"id":50,"name":51},{"id":161,"name":162},"tutorials","Tutorials",{"comments":56},{"id":165,"slug":166,"title":167,"excerpt":168,"status":22,"visibility":23,"featuredImage":169,"readingTime":170,"viewCount":171,"publishedAt":172,"createdAt":173,"updatedAt":174,"author":175,"tags":176,"categories":179,"_count":184},"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,958,"2026-04-28T06:04:28.940Z","2026-07-24T06:04:28.943Z","2026-07-28T11:21:09.618Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[177,178],{"id":37,"name":38,"color":39},{"id":126,"name":127,"color":128},[180,181],{"id":50,"name":51},{"id":182,"name":183},"opinion","Opinion & Analysis",{"comments":56},{"id":186,"slug":187,"title":188,"excerpt":189,"status":22,"visibility":23,"featuredImage":190,"readingTime":117,"viewCount":191,"publishedAt":192,"createdAt":193,"updatedAt":194,"author":195,"tags":196,"categories":203,"_count":206},"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",1037,"2026-04-30T06:04:26.346Z","2026-07-24T06:04:26.348Z","2026-07-28T12:15:31.758Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[197,198,202],{"id":37,"name":38,"color":39},{"id":199,"name":200,"color":201},"nodejs","Node.js","#339933",{"id":126,"name":127,"color":128},[204,205],{"id":161,"name":162},{"id":83,"name":84},{"comments":56},{"id":208,"slug":209,"title":210,"excerpt":211,"status":22,"visibility":23,"featuredImage":212,"readingTime":25,"viewCount":213,"publishedAt":214,"createdAt":215,"updatedAt":216,"author":217,"tags":218,"categories":229,"_count":232},"f8c52ae7-6edb-475d-b596-8ca9fe8a65d2","design-system-component-library-vue-tailwind","Building a Design System Component Library with Vue and Tailwind","Create a reusable, themeable component library using Vue 3, Tailwind CSS, and proper documentation with Storybook.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1633356122544-f134324a6cee?w=1200&q=80",213,"2026-05-02T06:04:23.990Z","2026-07-24T06:04:23.992Z","2026-07-28T09:59:31.692Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[219,220,221,225],{"id":99,"name":100,"color":101},{"id":41,"name":42,"color":43},{"id":222,"name":223,"color":224},"css","CSS","#1572b6",{"id":226,"name":227,"color":228},"tailwind","Tailwind CSS","#06b6d4",[230,231],{"id":50,"name":51},{"id":161,"name":162},{"comments":56},{"id":234,"slug":235,"title":236,"excerpt":237,"status":22,"visibility":23,"featuredImage":238,"readingTime":170,"viewCount":239,"publishedAt":240,"createdAt":241,"updatedAt":242,"author":243,"tags":244,"categories":248,"_count":253},"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",1563,"2026-05-04T06:04:21.021Z","2026-07-24T06:04:21.024Z","2026-07-28T12:16:44.172Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[245,246,247],{"id":199,"name":200,"color":201},{"id":71,"name":72,"color":73},{"id":45,"name":46,"color":47},[249,252],{"id":250,"name":251},"devops-cloud","DevOps & Cloud",{"id":53,"name":54},{"comments":56},{"id":255,"slug":256,"title":257,"excerpt":258,"status":22,"visibility":23,"featuredImage":259,"readingTime":63,"viewCount":260,"publishedAt":261,"createdAt":262,"updatedAt":263,"author":264,"tags":265,"categories":272,"_count":274},"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",542,"2026-05-06T06:04:18.665Z","2026-07-24T06:04:18.668Z","2026-07-28T09:59:26.974Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[266,267,268],{"id":37,"name":38,"color":39},{"id":99,"name":100,"color":101},{"id":269,"name":270,"color":271},"testing","Testing","#99425b",[273],{"id":53,"name":54},{"comments":56},{"id":276,"slug":277,"title":278,"excerpt":279,"status":22,"visibility":23,"featuredImage":280,"readingTime":63,"viewCount":281,"publishedAt":282,"createdAt":283,"updatedAt":284,"author":285,"tags":286,"categories":290,"_count":293},"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",954,"2026-05-08T06:04:16.412Z","2026-07-24T06:04:16.415Z","2026-07-28T09:59:29.184Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[287,288,289],{"id":99,"name":100,"color":101},{"id":130,"name":131,"color":132},{"id":104,"name":105,"color":106},[291,292],{"id":53,"name":54},{"id":182,"name":183},{"comments":56},{"id":295,"slug":296,"title":297,"excerpt":298,"status":22,"visibility":23,"featuredImage":299,"readingTime":300,"viewCount":301,"publishedAt":302,"createdAt":303,"updatedAt":304,"author":305,"tags":306,"categories":310,"_count":313},"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,1024,"2026-05-10T06:04:14.278Z","2026-07-24T06:04:14.280Z","2026-07-28T12:15:57.407Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[307,308,309],{"id":199,"name":200,"color":201},{"id":71,"name":72,"color":73},{"id":126,"name":127,"color":128},[311,312],{"id":250,"name":251},{"id":53,"name":54},{"comments":56},{"page":13,"limit":315,"total":316,"totalPages":317,"hasNext":4,"hasPrev":318},12,51,5,false,{"success":4,"data":320},{"items":321,"pagination":364},[322,325,330,336,342,348,354,359],{"id":6,"name":7,"description":8,"parentId":9,"createdAt":10,"updatedAt":10,"parent":9,"children":323,"_count":324},[],{"posts":13},{"id":83,"name":84,"description":326,"parentId":9,"createdAt":327,"updatedAt":327,"parent":9,"children":328,"_count":329},"Developer tools and workflow optimization","2026-07-24T06:02:45.712Z",[],{"posts":170},{"id":80,"name":81,"description":331,"parentId":9,"createdAt":332,"updatedAt":332,"parent":9,"children":333,"_count":334},"Professional development for developers","2026-07-24T06:02:45.486Z",[],{"posts":335},3,{"id":182,"name":183,"description":337,"parentId":9,"createdAt":338,"updatedAt":338,"parent":9,"children":339,"_count":340},"Industry analysis and technical opinions","2026-07-24T06:02:45.272Z",[],{"posts":341},6,{"id":161,"name":162,"description":343,"parentId":9,"createdAt":344,"updatedAt":344,"parent":9,"children":345,"_count":346},"Step-by-step learning guides","2026-07-24T06:02:44.965Z",[],{"posts":347},21,{"id":53,"name":54,"description":349,"parentId":9,"createdAt":350,"updatedAt":350,"parent":9,"children":351,"_count":352},"Best practices, patterns, and principles","2026-07-24T06:02:44.689Z",[],{"posts":353},24,{"id":250,"name":251,"description":355,"parentId":9,"createdAt":356,"updatedAt":356,"parent":9,"children":357,"_count":358},"Infrastructure, deployment, and cloud computing","2026-07-24T06:02:44.453Z",[],{"posts":341},{"id":50,"name":51,"description":360,"parentId":9,"createdAt":361,"updatedAt":361,"parent":9,"children":362,"_count":363},"Frontend and backend web development tutorials and guides","2026-07-24T06:02:44.169Z",[],{"posts":353},{"page":13,"limit":63,"total":63,"totalPages":13,"hasNext":318,"hasPrev":318}]