[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"category-tools-productivity":3,"category-tools-productivity-posts":14,"header-categories":317},{"success":4,"data":5},true,{"id":6,"name":7,"description":8,"parentId":9,"createdAt":10,"updatedAt":10,"parent":9,"children":11,"_count":12},"tools-productivity","Tools & Productivity","Developer tools and workflow optimization",null,"2026-07-24T06:02:45.712Z",[],{"posts":13},7,{"success":4,"data":15},{"items":16,"pagination":311},[17,57,84,109,135,162,182,204,230,251,272,291],{"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":83},"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":6,"name":7},{"comments":56},{"id":85,"slug":86,"title":87,"excerpt":88,"status":22,"visibility":23,"featuredImage":89,"readingTime":63,"viewCount":90,"publishedAt":91,"createdAt":92,"updatedAt":93,"author":94,"tags":95,"categories":105,"_count":108},"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},[96,100,101],{"id":97,"name":98,"color":99},"typescript","TypeScript","#3178c6",{"id":71,"name":72,"color":73},{"id":102,"name":103,"color":104},"architecture","Architecture","#795548",[106,107],{"id":53,"name":54},{"id":6,"name":7},{"comments":56},{"id":110,"slug":111,"title":112,"excerpt":113,"status":22,"visibility":23,"featuredImage":114,"readingTime":115,"viewCount":116,"publishedAt":117,"createdAt":118,"updatedAt":119,"author":120,"tags":121,"categories":131,"_count":134},"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},[122,123,127],{"id":71,"name":72,"color":73},{"id":124,"name":125,"color":126},"performance","Performance","#e535ab",{"id":128,"name":129,"color":130},"api-design","API Design","#009688",[132,133],{"id":50,"name":51},{"id":53,"name":54},{"comments":56},{"id":136,"slug":137,"title":138,"excerpt":139,"status":22,"visibility":23,"featuredImage":140,"readingTime":115,"viewCount":141,"publishedAt":142,"createdAt":143,"updatedAt":144,"author":145,"tags":146,"categories":156,"_count":161},"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},[147,151,152],{"id":148,"name":149,"color":150},"prisma","Prisma","#2d3748",{"id":124,"name":125,"color":126},{"id":153,"name":154,"color":155},"database","Database","#336791",[157,158],{"id":50,"name":51},{"id":159,"name":160},"tutorials","Tutorials",{"comments":56},{"id":163,"slug":164,"title":165,"excerpt":166,"status":22,"visibility":23,"featuredImage":167,"readingTime":13,"viewCount":168,"publishedAt":169,"createdAt":170,"updatedAt":171,"author":172,"tags":173,"categories":176,"_count":181},"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",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},[174,175],{"id":37,"name":38,"color":39},{"id":124,"name":125,"color":126},[177,178],{"id":50,"name":51},{"id":179,"name":180},"opinion","Opinion & Analysis",{"comments":56},{"id":183,"slug":184,"title":185,"excerpt":186,"status":22,"visibility":23,"featuredImage":187,"readingTime":115,"viewCount":188,"publishedAt":189,"createdAt":190,"updatedAt":191,"author":192,"tags":193,"categories":200,"_count":203},"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},[194,195,199],{"id":37,"name":38,"color":39},{"id":196,"name":197,"color":198},"nodejs","Node.js","#339933",{"id":124,"name":125,"color":126},[201,202],{"id":159,"name":160},{"id":6,"name":7},{"comments":56},{"id":205,"slug":206,"title":207,"excerpt":208,"status":22,"visibility":23,"featuredImage":209,"readingTime":25,"viewCount":210,"publishedAt":211,"createdAt":212,"updatedAt":213,"author":214,"tags":215,"categories":226,"_count":229},"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},[216,217,218,222],{"id":97,"name":98,"color":99},{"id":41,"name":42,"color":43},{"id":219,"name":220,"color":221},"css","CSS","#1572b6",{"id":223,"name":224,"color":225},"tailwind","Tailwind CSS","#06b6d4",[227,228],{"id":50,"name":51},{"id":159,"name":160},{"comments":56},{"id":231,"slug":232,"title":233,"excerpt":234,"status":22,"visibility":23,"featuredImage":235,"readingTime":13,"viewCount":236,"publishedAt":237,"createdAt":238,"updatedAt":239,"author":240,"tags":241,"categories":245,"_count":250},"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},[242,243,244],{"id":196,"name":197,"color":198},{"id":71,"name":72,"color":73},{"id":45,"name":46,"color":47},[246,249],{"id":247,"name":248},"devops-cloud","DevOps & Cloud",{"id":53,"name":54},{"comments":56},{"id":252,"slug":253,"title":254,"excerpt":255,"status":22,"visibility":23,"featuredImage":256,"readingTime":63,"viewCount":257,"publishedAt":258,"createdAt":259,"updatedAt":260,"author":261,"tags":262,"categories":269,"_count":271},"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",543,"2026-05-06T06:04:18.665Z","2026-07-24T06:04:18.668Z","2026-07-28T12:17:45.482Z",{"id":31,"name":32,"email":33,"avatarUrl":34},[263,264,265],{"id":37,"name":38,"color":39},{"id":97,"name":98,"color":99},{"id":266,"name":267,"color":268},"testing","Testing","#99425b",[270],{"id":53,"name":54},{"comments":56},{"id":273,"slug":274,"title":275,"excerpt":276,"status":22,"visibility":23,"featuredImage":277,"readingTime":63,"viewCount":278,"publishedAt":279,"createdAt":280,"updatedAt":281,"author":282,"tags":283,"categories":287,"_count":290},"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},[284,285,286],{"id":97,"name":98,"color":99},{"id":128,"name":129,"color":130},{"id":102,"name":103,"color":104},[288,289],{"id":53,"name":54},{"id":179,"name":180},{"comments":56},{"id":292,"slug":293,"title":294,"excerpt":295,"status":22,"visibility":23,"featuredImage":296,"readingTime":297,"viewCount":298,"publishedAt":299,"createdAt":300,"updatedAt":301,"author":302,"tags":303,"categories":307,"_count":310},"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},[304,305,306],{"id":196,"name":197,"color":198},{"id":71,"name":72,"color":73},{"id":124,"name":125,"color":126},[308,309],{"id":247,"name":248},{"id":53,"name":54},{"comments":56},{"page":312,"limit":313,"total":314,"totalPages":315,"hasNext":4,"hasPrev":316},1,12,51,5,false,{"success":4,"data":318},{"items":319,"pagination":364},[320,327,330,336,342,348,354,359],{"id":321,"name":322,"description":323,"parentId":9,"createdAt":324,"updatedAt":324,"parent":9,"children":325,"_count":326},"ai-future","AI & The Future","Artificial intelligence and emerging technology","2026-07-24T06:02:45.990Z",[],{"posts":312},{"id":6,"name":7,"description":8,"parentId":9,"createdAt":10,"updatedAt":10,"parent":9,"children":328,"_count":329},[],{"posts":13},{"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":179,"name":180,"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":159,"name":160,"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":247,"name":248,"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":312,"limit":63,"total":63,"totalPages":312,"hasNext":316,"hasPrev":316}]