[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"home-authors":3,"home-categories":30,"home-featured-posts":95,"header-categories":250},{"success":4,"data":5},true,{"items":6,"pagination":26},[7,16],{"id":8,"name":9,"email":10,"avatarUrl":11,"bio":11,"createdAt":12,"updatedAt":13,"_count":14},"16a05463-9301-4b86-bb5c-3e78853df4c3","Joseph Osei Aboagye","bulletoze@gmail.com",null,"2025-11-18T17:02:34.005Z","2025-11-24T09:53:47.386Z",{"authoredPosts":15},1,{"id":17,"name":18,"email":19,"avatarUrl":20,"bio":21,"createdAt":22,"updatedAt":23,"_count":24},"fddb5d93-7a2c-4d86-a06a-fa32e73a01c6","Mbeah Essilfie","mbeahessilfieprince@gmail.com","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93322394?v=4","Fullstack Software Developer ","2025-10-02T09:55:47.783Z","2026-07-24T06:02:36.642Z",{"authoredPosts":25},50,{"page":15,"limit":27,"total":28,"totalPages":15,"hasNext":29,"hasPrev":29},8,2,false,{"success":4,"data":31},{"items":32,"pagination":94},[33,40,48,56,64,72,80,87],{"id":34,"name":35,"description":36,"parentId":11,"createdAt":37,"updatedAt":37,"parent":11,"children":38,"_count":39},"ai-future","AI & The Future","Artificial intelligence and emerging technology","2026-07-24T06:02:45.990Z",[],{"posts":15},{"id":41,"name":42,"description":43,"parentId":11,"createdAt":44,"updatedAt":44,"parent":11,"children":45,"_count":46},"tools-productivity","Tools & Productivity","Developer tools and workflow optimization","2026-07-24T06:02:45.712Z",[],{"posts":47},7,{"id":49,"name":50,"description":51,"parentId":11,"createdAt":52,"updatedAt":52,"parent":11,"children":53,"_count":54},"career","Career & Growth","Professional development for developers","2026-07-24T06:02:45.486Z",[],{"posts":55},3,{"id":57,"name":58,"description":59,"parentId":11,"createdAt":60,"updatedAt":60,"parent":11,"children":61,"_count":62},"opinion","Opinion & Analysis","Industry analysis and technical opinions","2026-07-24T06:02:45.272Z",[],{"posts":63},6,{"id":65,"name":66,"description":67,"parentId":11,"createdAt":68,"updatedAt":68,"parent":11,"children":69,"_count":70},"tutorials","Tutorials","Step-by-step learning guides","2026-07-24T06:02:44.965Z",[],{"posts":71},21,{"id":73,"name":74,"description":75,"parentId":11,"createdAt":76,"updatedAt":76,"parent":11,"children":77,"_count":78},"software-engineering","Software Engineering","Best practices, patterns, and principles","2026-07-24T06:02:44.689Z",[],{"posts":79},24,{"id":81,"name":82,"description":83,"parentId":11,"createdAt":84,"updatedAt":84,"parent":11,"children":85,"_count":86},"devops-cloud","DevOps & Cloud","Infrastructure, deployment, and cloud computing","2026-07-24T06:02:44.453Z",[],{"posts":63},{"id":88,"name":89,"description":90,"parentId":11,"createdAt":91,"updatedAt":91,"parent":11,"children":92,"_count":93},"web-development","Web Development","Frontend and backend web development tutorials and guides","2026-07-24T06:02:44.169Z",[],{"posts":79},{"page":15,"limit":27,"total":27,"totalPages":15,"hasNext":29,"hasPrev":29},{"success":4,"data":96},{"items":97,"pagination":248},[98,130,154,179,205,230],{"id":99,"slug":100,"title":101,"excerpt":102,"status":103,"visibility":104,"featuredImage":105,"readingTime":106,"viewCount":107,"publishedAt":108,"createdAt":109,"updatedAt":110,"author":111,"tags":112,"categories":125,"_count":128},"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,1223,"2026-04-18T06:04:41.020Z","2026-07-24T06:04:41.024Z","2026-07-28T09:49:29.826Z",{"id":17,"name":18,"email":19,"avatarUrl":20},[113,117,121],{"id":114,"name":115,"color":116},"javascript","JavaScript","#f7df1e",{"id":118,"name":119,"color":120},"vue","Vue","#4fc08d",{"id":122,"name":123,"color":124},"security","Security","#d63031",[126,127],{"id":88,"name":89},{"id":73,"name":74},{"comments":129},0,{"id":131,"slug":132,"title":133,"excerpt":134,"status":103,"visibility":104,"featuredImage":135,"readingTime":27,"viewCount":136,"publishedAt":137,"createdAt":138,"updatedAt":139,"author":140,"tags":141,"categories":150,"_count":153},"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",1368,"2026-04-20T06:04:38.260Z","2026-07-24T06:04:38.262Z","2026-07-28T09:49:29.675Z",{"id":17,"name":18,"email":19,"avatarUrl":20},[142,146],{"id":143,"name":144,"color":145},"devops","DevOps","#ff6c37",{"id":147,"name":148,"color":149},"python","Python","#3776ab",[151,152],{"id":49,"name":50},{"id":41,"name":42},{"comments":129},{"id":155,"slug":156,"title":157,"excerpt":158,"status":103,"visibility":104,"featuredImage":159,"readingTime":27,"viewCount":160,"publishedAt":161,"createdAt":162,"updatedAt":163,"author":164,"tags":165,"categories":175,"_count":178},"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",2099,"2026-04-22T06:04:35.999Z","2026-07-24T06:04:36.002Z","2026-07-28T09:49:29.715Z",{"id":17,"name":18,"email":19,"avatarUrl":20},[166,170,171],{"id":167,"name":168,"color":169},"typescript","TypeScript","#3178c6",{"id":143,"name":144,"color":145},{"id":172,"name":173,"color":174},"architecture","Architecture","#795548",[176,177],{"id":73,"name":74},{"id":41,"name":42},{"comments":129},{"id":180,"slug":181,"title":182,"excerpt":183,"status":103,"visibility":104,"featuredImage":184,"readingTime":185,"viewCount":186,"publishedAt":187,"createdAt":188,"updatedAt":189,"author":190,"tags":191,"categories":201,"_count":204},"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,1827,"2026-04-24T06:04:33.840Z","2026-07-24T06:04:33.842Z","2026-07-28T09:59:22.473Z",{"id":17,"name":18,"email":19,"avatarUrl":20},[192,193,197],{"id":143,"name":144,"color":145},{"id":194,"name":195,"color":196},"performance","Performance","#e535ab",{"id":198,"name":199,"color":200},"api-design","API Design","#009688",[202,203],{"id":88,"name":89},{"id":73,"name":74},{"comments":129},{"id":206,"slug":207,"title":208,"excerpt":209,"status":103,"visibility":104,"featuredImage":210,"readingTime":185,"viewCount":211,"publishedAt":212,"createdAt":213,"updatedAt":214,"author":215,"tags":216,"categories":226,"_count":229},"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":17,"name":18,"email":19,"avatarUrl":20},[217,221,222],{"id":218,"name":219,"color":220},"prisma","Prisma","#2d3748",{"id":194,"name":195,"color":196},{"id":223,"name":224,"color":225},"database","Database","#336791",[227,228],{"id":88,"name":89},{"id":65,"name":66},{"comments":129},{"id":231,"slug":232,"title":233,"excerpt":234,"status":103,"visibility":104,"featuredImage":235,"readingTime":47,"viewCount":236,"publishedAt":237,"createdAt":238,"updatedAt":239,"author":240,"tags":241,"categories":244,"_count":247},"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",957,"2026-04-28T06:04:28.940Z","2026-07-24T06:04:28.943Z","2026-07-28T09:59:31.240Z",{"id":17,"name":18,"email":19,"avatarUrl":20},[242,243],{"id":114,"name":115,"color":116},{"id":194,"name":195,"color":196},[245,246],{"id":88,"name":89},{"id":57,"name":58},{"comments":129},{"page":15,"limit":63,"total":249,"totalPages":185,"hasNext":4,"hasPrev":29},51,{"success":4,"data":251},{"items":252,"pagination":277},[253,256,259,262,265,268,271,274],{"id":34,"name":35,"description":36,"parentId":11,"createdAt":37,"updatedAt":37,"parent":11,"children":254,"_count":255},[],{"posts":15},{"id":41,"name":42,"description":43,"parentId":11,"createdAt":44,"updatedAt":44,"parent":11,"children":257,"_count":258},[],{"posts":47},{"id":49,"name":50,"description":51,"parentId":11,"createdAt":52,"updatedAt":52,"parent":11,"children":260,"_count":261},[],{"posts":55},{"id":57,"name":58,"description":59,"parentId":11,"createdAt":60,"updatedAt":60,"parent":11,"children":263,"_count":264},[],{"posts":63},{"id":65,"name":66,"description":67,"parentId":11,"createdAt":68,"updatedAt":68,"parent":11,"children":266,"_count":267},[],{"posts":71},{"id":73,"name":74,"description":75,"parentId":11,"createdAt":76,"updatedAt":76,"parent":11,"children":269,"_count":270},[],{"posts":79},{"id":81,"name":82,"description":83,"parentId":11,"createdAt":84,"updatedAt":84,"parent":11,"children":272,"_count":273},[],{"posts":63},{"id":88,"name":89,"description":90,"parentId":11,"createdAt":91,"updatedAt":91,"parent":11,"children":275,"_count":276},[],{"posts":79},{"page":15,"limit":27,"total":27,"totalPages":15,"hasNext":29,"hasPrev":29}]