[{"data":1,"prerenderedAt":341},["ShallowReactive",2],{"blogs-tag-list-page-en":3},{"status":4,"lang":5,"totalTags":6,"tags":7,"topFeaturedTags":143},"success","en",61,[8,12,16,19,23,25,28,31,34,37,39,42,44,46,48,50,52,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141],{"name":9,"slug":10,"count":11},"Security","security",13,{"name":13,"slug":14,"count":15},"Microservices","microservices",12,{"name":17,"slug":18,"count":15},"Kubernetes","kubernetes",{"name":20,"slug":21,"count":22},"AI Agents","ai-agents",7,{"name":24,"slug":24,"count":22},"aiagents",{"name":26,"slug":26,"count":27},"devops",6,{"name":29,"slug":29,"count":30},"ai",4,{"name":32,"slug":32,"count":33},"opensource",3,{"name":35,"slug":35,"count":36},"backend",2,{"name":38,"slug":38,"count":36},"api",{"name":40,"slug":41,"count":36},"Trending","trending",{"name":43,"slug":43,"count":36},"go",{"name":45,"slug":45,"count":36},"agents",{"name":47,"slug":47,"count":36},"architecture",{"name":49,"slug":49,"count":36},"programming",{"name":51,"slug":51,"count":36},"codereview",{"name":53,"slug":53,"count":54},"2026",1,{"name":56,"slug":56,"count":54},"claudecode",{"name":58,"slug":58,"count":54},"developmenttools",{"name":60,"slug":60,"count":54},"autonomousagents",{"name":62,"slug":62,"count":54},"database",{"name":64,"slug":64,"count":54},"mcp",{"name":66,"slug":66,"count":54},"agentmemory",{"name":68,"slug":68,"count":54},"rbac",{"name":70,"slug":70,"count":54},"networkpolicies",{"name":72,"slug":72,"count":54},"git",{"name":74,"slug":74,"count":54},"node",{"name":76,"slug":76,"count":54},"software",{"name":78,"slug":78,"count":54},"compliance",{"name":80,"slug":80,"count":54},"developers",{"name":82,"slug":82,"count":54},"careerdevelopment",{"name":84,"slug":84,"count":54},"distributedsystems",{"name":86,"slug":86,"count":54},"llm",{"name":88,"slug":88,"count":54},"systemdesign",{"name":90,"slug":90,"count":54},"agentsafety",{"name":92,"slug":92,"count":54},"negativetesting",{"name":94,"slug":94,"count":54},"executiongovernance",{"name":96,"slug":96,"count":54},"machinelearning",{"name":98,"slug":98,"count":54},"gpu",{"name":100,"slug":100,"count":54},"fastmcp",{"name":102,"slug":102,"count":54},"mcpservers",{"name":104,"slug":104,"count":54},"authentication",{"name":106,"slug":106,"count":54},"performance",{"name":108,"slug":108,"count":54},"ios",{"name":110,"slug":110,"count":54},"mobile",{"name":112,"slug":112,"count":54},"productivity",{"name":114,"slug":114,"count":54},"vocabulary",{"name":116,"slug":116,"count":54},"domainmodeling",{"name":118,"slug":118,"count":54},"dotnet",{"name":120,"slug":120,"count":54},"learning",{"name":122,"slug":122,"count":54},"esp32",{"name":124,"slug":124,"count":54},"arduino",{"name":126,"slug":126,"count":54},"canbus",{"name":128,"slug":128,"count":54},"docker",{"name":130,"slug":130,"count":54},"cicd",{"name":132,"slug":132,"count":54},"tdd",{"name":134,"slug":134,"count":54},"testdesign",{"name":136,"slug":136,"count":54},"laravel",{"name":138,"slug":138,"count":54},"php",{"name":140,"slug":140,"count":54},"gatekeeper",{"name":142,"slug":142,"count":54},"gitops",[144,182,217,252,287,295,303,311,329,335],{"name":9,"slug":10,"count":11,"posts":145},[146,159,171],{"id":147,"title":148,"slug":149,"lang":5,"category":9,"categorySlug":10,"summary":150,"excerpt":150,"author":151,"date":152,"readTime":153,"image":154,"tags":155,"publishedAt":156,"createdAt":156,"updatedAt":156,"filePath":157,"sourceUrl":158},"cron-1786956214008-en","I attacked my own npm package before launching it. It let the proposer approve their own writes","i-attacked-my-own-npm-package-before-launching-it-it-let-the-proposer-approve-their-own-writes-oi6y","My library exists so a human approves an LLM's UPDATE before it runs. It never checked that the approver was somebody other than the proposer — and wrote \\\"approved\\\" into the audit trail anyway.","hyuga","8\u002F17\u002F2026","6 min read","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F65yv5n4qvrgn3t6ot4gy.png",[9,32,29,10,62],"2026-08-17T08:43:34.007Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fsecurity\u002Fi-attacked-my-own-npm-package-before-launching-it-it-let-the-proposer-approve-their-own-writes-oi6y.md","https:\u002F\u002Fdev.to\u002Fhyuga611\u002Fi-attacked-my-own-npm-package-before-launching-it-it-let-the-proposer-approve-their-own-writes-4mki",{"id":160,"title":161,"slug":162,"lang":5,"category":9,"categorySlug":10,"summary":163,"excerpt":163,"author":164,"date":152,"readTime":165,"image":166,"tags":167,"publishedAt":168,"createdAt":168,"updatedAt":168,"filePath":169,"sourceUrl":170},"cron-1786955347034","The Tragedy of the Clean-Handed Auditor","the-tragedy-of-the-clean-handed-auditor-rgoz","\\\"I could save them if they'd only listen...\\\"  Hey, you. Yeah, you: the compliance or governance...","Ben Link","6 phút","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z426h3tt6e2b3sthd2f.png",[9,10,78,80,82],"2026-08-17T08:29:07.034Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fsecurity\u002Fthe-tragedy-of-the-clean-handed-auditor-rgoz.md","https:\u002F\u002Fdev.to\u002Flinkbenjamin\u002Fthe-tragedy-of-the-clean-handed-auditor-1253",{"id":172,"title":173,"slug":174,"lang":5,"category":9,"categorySlug":10,"summary":175,"excerpt":175,"author":176,"date":152,"readTime":165,"image":177,"tags":178,"publishedAt":179,"createdAt":179,"updatedAt":179,"filePath":180,"sourceUrl":181},"cron-1786954878272","I Gave My Agent One Signed Permission It Couldn’t Mint Itself","i-gave-my-agent-one-signed-permission-it-couldnt-mint-itself-nm1o","Evidence status. The supervised operator run completed on 2026-08-09. An operator-signed job...","Self-Correcting Systems","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg1gjbzx4muvma5fznpjl.png",[9,96,26,10,45],"2026-08-17T08:21:18.271Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fsecurity\u002Fi-gave-my-agent-one-signed-permission-it-couldnt-mint-itself-nm1o.md","https:\u002F\u002Fdev.to\u002Fkenielzep97\u002Fi-gave-my-agent-one-signed-permission-it-couldnt-mint-itself-2lpc",{"name":13,"slug":14,"count":15,"posts":183},[184,195,206],{"id":185,"title":186,"slug":187,"lang":5,"category":13,"categorySlug":14,"summary":188,"excerpt":188,"author":189,"date":152,"readTime":153,"image":190,"tags":191,"publishedAt":192,"createdAt":192,"updatedAt":192,"filePath":193,"sourceUrl":194},"cron-1786956216746-en","What Is the Circuit Breaker Pattern? A Practical Guide","what-is-the-circuit-breaker-pattern-a-practical-guide-4j68","What Is the Circuit Breaker Pattern? A Practical Guide for Developers   Imagine your...","Avijit Bera","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi6cy1uyqxjd14ikkveev.png",[13,14,35,38,40],"2026-08-17T08:43:36.746Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fmicroservices\u002Fwhat-is-the-circuit-breaker-pattern-a-practical-guide-4j68.md","https:\u002F\u002Fdev.to\u002Favijitbera\u002Fwhat-is-the-circuit-breaker-pattern-a-practical-guide-20i4",{"id":196,"title":197,"slug":198,"lang":5,"category":13,"categorySlug":14,"summary":199,"excerpt":199,"author":200,"date":152,"readTime":165,"image":201,"tags":202,"publishedAt":203,"createdAt":203,"updatedAt":203,"filePath":204,"sourceUrl":205},"cron-1786955347443","Real-Life Refactoring Example: ~3x Less Code to Read","real-life-refactoring-example-3x-less-code-to-read-dccm","There is a popular idea that refactoring is making code shorter. It is not entirely wrong....","Valentine Shi","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foubl9dlj23byhsak2mqy.png",[13,74,76,35,14],"2026-08-17T08:29:07.443Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fmicroservices\u002Freal-life-refactoring-example-3x-less-code-to-read-dccm.md","https:\u002F\u002Fdev.to\u002Fvalentineshi-dev\u002Freal-life-refactoring-example-3x-less-code-to-read-3mdl",{"id":207,"title":208,"slug":209,"lang":5,"category":13,"categorySlug":14,"summary":210,"excerpt":210,"author":211,"date":152,"readTime":165,"image":212,"tags":213,"publishedAt":214,"createdAt":214,"updatedAt":214,"filePath":215,"sourceUrl":216},"cron-1786954878754","Protecting Microservices: Implementing End-to-End Encryption Across REST APIs","protecting-microservices-implementing-end-to-end-encryption-across-rest-apis-gtfz","End-to-end encryption across REST APIs is the difference between a microservices architecture that...","Fu'ad Husnan","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fba3onadsxu08gb14brer.png",[13,38,14,40,53],"2026-08-17T08:21:18.754Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fmicroservices\u002Fprotecting-microservices-implementing-end-to-end-encryption-across-rest-apis-gtfz.md","https:\u002F\u002Fdev.to\u002Ffuadhusnan_f44f3e13\u002Fprotecting-microservices-implementing-end-to-end-encryption-across-rest-apis-26hb",{"name":17,"slug":18,"count":15,"posts":218},[219,230,241],{"id":220,"title":221,"slug":222,"lang":5,"category":17,"categorySlug":18,"summary":223,"excerpt":223,"author":224,"date":152,"readTime":153,"image":225,"tags":226,"publishedAt":227,"createdAt":227,"updatedAt":227,"filePath":228,"sourceUrl":229},"cron-1786956210950-en","Build an MCP Server in Go (Part 1): Designing a diagnostic-grade Kubernetes client","build-an-mcp-server-in-go-part-1-designing-a-diagnostic-grade-kubernetes-client-p1d4","This post designs the Kubernetes client. The next post wraps it as an MCP server and wires it to an...","Fer Rios","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpw4b055hh8hxl5unrmvv.png",[17,18,43,26,64],"2026-08-17T08:43:30.949Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fkubernetes\u002Fbuild-an-mcp-server-in-go-part-1-designing-a-diagnostic-grade-kubernetes-client-p1d4.md","https:\u002F\u002Fdev.to\u002Fferztyle\u002Fbuild-an-mcp-server-in-go-part-1-designing-a-diagnostic-grade-kubernetes-client-49a2",{"id":231,"title":232,"slug":233,"lang":5,"category":17,"categorySlug":18,"summary":234,"excerpt":234,"author":235,"date":152,"readTime":165,"image":236,"tags":237,"publishedAt":238,"createdAt":238,"updatedAt":238,"filePath":239,"sourceUrl":240},"cron-1786955346614","Building Sluice: QoS-Aware Capacity Governance for Self-Hosted LLM Inference","building-sluice-qos-aware-capacity-governance-for-self-hosted-llm-inference-flbu","📦 Project: https:\u002F\u002Fgithub.com\u002FVampiricCyborg\u002Fsluice           1. The Problem: When Capacity Becomes...","Madhav M S","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh3vuie9oakcn3bqzxtbh.png",[17,84,86,18,88],"2026-08-17T08:29:06.613Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fkubernetes\u002Fbuilding-sluice-qos-aware-capacity-governance-for-self-hosted-llm-inference-flbu.md","https:\u002F\u002Fdev.to\u002Fvampiriccyborg\u002Fbuilding-sluice-qos-aware-capacity-governance-for-self-hosted-llm-inference-13ja",{"id":242,"title":243,"slug":244,"lang":5,"category":17,"categorySlug":18,"summary":245,"excerpt":245,"author":246,"date":152,"readTime":165,"image":247,"tags":248,"publishedAt":249,"createdAt":249,"updatedAt":249,"filePath":250,"sourceUrl":251},"cron-1786954877848","One GPU, four ways to share it: ten scenarios, and the headline finding I had to retract","one-gpu-four-ways-to-share-it-ten-scenarios-and-the-headline-finding-i-had-to-retract-3y1v","I measured every GPU sharing mode across ten scenarios, published a headline finding that duplicate models are nearly free on unified memory, then failed to replicate it and retracted it. Here is what the controlled replication showed and how the original measurement fooled me.","Christopher Maher","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fllmkube.com%2Fog-gpu-sharing-four-ways-devto.png",[17,18,98,29,26],"2026-08-17T08:21:17.847Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fkubernetes\u002Fone-gpu-four-ways-to-share-it-ten-scenarios-and-the-headline-finding-i-had-to-retract-3y1v.md","https:\u002F\u002Fdev.to\u002Fdefilan\u002Fone-gpu-four-ways-to-share-it-ten-scenarios-and-the-one-number-that-inverts-on-your-hardware-1bih",{"name":20,"slug":21,"count":22,"posts":253},[254,265,276],{"id":255,"title":256,"slug":257,"lang":5,"category":20,"categorySlug":21,"summary":258,"excerpt":258,"author":259,"date":152,"readTime":153,"image":260,"tags":261,"publishedAt":262,"createdAt":262,"updatedAt":262,"filePath":263,"sourceUrl":264},"cron-1786956218725-en","I Thought I'd Lost the Plot. I Was Writing It.","i-thought-id-lost-the-plot-i-was-writing-it-wjvz","I Thought I'd Lost the Plot. I Was Writing It.            I set out to build autonomous...","Joe Black","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa3l9h76kr920p8bm2mjp.png",[20,56,24,58,60],"2026-08-17T08:43:38.725Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fi-thought-id-lost-the-plot-i-was-writing-it-wjvz.md","https:\u002F\u002Fdev.to\u002Fjoeblackwaslike\u002Fi-thought-id-lost-the-plot-i-was-writing-it-5fil",{"id":266,"title":267,"slug":268,"lang":5,"category":20,"categorySlug":21,"summary":269,"excerpt":269,"author":270,"date":152,"readTime":153,"image":271,"tags":272,"publishedAt":273,"createdAt":273,"updatedAt":273,"filePath":274,"sourceUrl":275},"cron-1786956117904-en","The Write Policy Is the Hard Part: Promotion Pipelines for Agent Memory","the-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory-4qv9","Storing agent memory is easy. Deciding what earns a permanent write, and keeping the write-path alive through RBAC and network policy, is the real work.","Guatu","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fguatulabs.dev%2Fog%2Fthe-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory.png",[20,24,66,68,70],"2026-08-17T08:41:57.903Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fthe-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory-4qv9.md","https:\u002F\u002Fdev.to\u002Ffuthgar\u002Fthe-write-policy-is-the-hard-part-promotion-pipelines-for-agent-memory-5mc",{"id":277,"title":278,"slug":279,"lang":5,"category":20,"categorySlug":21,"summary":280,"excerpt":280,"author":281,"date":152,"readTime":165,"image":282,"tags":283,"publishedAt":284,"createdAt":284,"updatedAt":284,"filePath":285,"sourceUrl":286},"cron-1786955347611","I Changed How I Think About AI Memory","i-changed-how-i-think-about-ai-memory-fnpm","I Changed How I Think About AI Memory   When I first built Lean AI Memory, I focused too...","Phúc Phùng","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0oqod5zshdan74573bau.png",[20,29,24,32,72],"2026-08-17T08:29:07.610Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fi-changed-how-i-think-about-ai-memory-fnpm.md","https:\u002F\u002Fdev.to\u002Fphucphungbk\u002Fi-changed-how-i-think-about-ai-memory-4mkd",{"name":24,"slug":24,"count":22,"posts":288},[289,291,293],{"id":255,"title":256,"slug":257,"lang":5,"category":20,"categorySlug":21,"summary":258,"excerpt":258,"author":259,"date":152,"readTime":153,"image":260,"tags":290,"publishedAt":262,"createdAt":262,"updatedAt":262,"filePath":263,"sourceUrl":264},[20,56,24,58,60],{"id":266,"title":267,"slug":268,"lang":5,"category":20,"categorySlug":21,"summary":269,"excerpt":269,"author":270,"date":152,"readTime":153,"image":271,"tags":292,"publishedAt":273,"createdAt":273,"updatedAt":273,"filePath":274,"sourceUrl":275},[20,24,66,68,70],{"id":277,"title":278,"slug":279,"lang":5,"category":20,"categorySlug":21,"summary":280,"excerpt":280,"author":281,"date":152,"readTime":165,"image":282,"tags":294,"publishedAt":284,"createdAt":284,"updatedAt":284,"filePath":285,"sourceUrl":286},[20,29,24,32,72],{"name":26,"slug":26,"count":27,"posts":296},[297,299,301],{"id":220,"title":221,"slug":222,"lang":5,"category":17,"categorySlug":18,"summary":223,"excerpt":223,"author":224,"date":152,"readTime":153,"image":225,"tags":298,"publishedAt":227,"createdAt":227,"updatedAt":227,"filePath":228,"sourceUrl":229},[17,18,43,26,64],{"id":172,"title":173,"slug":174,"lang":5,"category":9,"categorySlug":10,"summary":175,"excerpt":175,"author":176,"date":152,"readTime":165,"image":177,"tags":300,"publishedAt":179,"createdAt":179,"updatedAt":179,"filePath":180,"sourceUrl":181},[9,96,26,10,45],{"id":242,"title":243,"slug":244,"lang":5,"category":17,"categorySlug":18,"summary":245,"excerpt":245,"author":246,"date":152,"readTime":165,"image":247,"tags":302,"publishedAt":249,"createdAt":249,"updatedAt":249,"filePath":250,"sourceUrl":251},[17,18,98,29,26],{"name":29,"slug":29,"count":30,"posts":304},[305,307,309],{"id":147,"title":148,"slug":149,"lang":5,"category":9,"categorySlug":10,"summary":150,"excerpt":150,"author":151,"date":152,"readTime":153,"image":154,"tags":306,"publishedAt":156,"createdAt":156,"updatedAt":156,"filePath":157,"sourceUrl":158},[9,32,29,10,62],{"id":277,"title":278,"slug":279,"lang":5,"category":20,"categorySlug":21,"summary":280,"excerpt":280,"author":281,"date":152,"readTime":165,"image":282,"tags":308,"publishedAt":284,"createdAt":284,"updatedAt":284,"filePath":285,"sourceUrl":286},[20,29,24,32,72],{"id":242,"title":243,"slug":244,"lang":5,"category":17,"categorySlug":18,"summary":245,"excerpt":245,"author":246,"date":152,"readTime":165,"image":247,"tags":310,"publishedAt":249,"createdAt":249,"updatedAt":249,"filePath":250,"sourceUrl":251},[17,18,98,29,26],{"name":32,"slug":32,"count":33,"posts":312},[313,315,317],{"id":147,"title":148,"slug":149,"lang":5,"category":9,"categorySlug":10,"summary":150,"excerpt":150,"author":151,"date":152,"readTime":153,"image":154,"tags":314,"publishedAt":156,"createdAt":156,"updatedAt":156,"filePath":157,"sourceUrl":158},[9,32,29,10,62],{"id":277,"title":278,"slug":279,"lang":5,"category":20,"categorySlug":21,"summary":280,"excerpt":280,"author":281,"date":152,"readTime":165,"image":282,"tags":316,"publishedAt":284,"createdAt":284,"updatedAt":284,"filePath":285,"sourceUrl":286},[20,29,24,32,72],{"id":318,"title":319,"slug":320,"lang":5,"category":17,"categorySlug":18,"summary":321,"excerpt":321,"author":322,"date":323,"readTime":165,"image":324,"tags":325,"publishedAt":326,"createdAt":326,"updatedAt":326,"filePath":327,"sourceUrl":328},"cron-1786954562468","I got tired of SSHing into 10 VMs a day, so I built a live map of my whole infrastructure","i-got-tired-of-sshing-into-10-vms-a-day-so-i-built-a-live-map-of-my-whole-infrastructure-iqz9","Every day at work looked the same. Something breaks, or I need to push a new image, and I'm SSHing...","ByteStrix","17\u002F8\u002F2026","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4xdxpc7fsu7nv8usri7a.png",[17,112,26,32,18],"2026-08-17T08:16:02.468Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fkubernetes\u002Fi-got-tired-of-sshing-into-10-vms-a-day-so-i-built-a-live-map-of-my-whole-infrastructure-iqz9.md","https:\u002F\u002Fdev.to\u002Fbytestrix\u002Fi-got-tired-of-sshing-into-10-vms-a-day-so-i-built-a-live-map-of-my-whole-infrastructure-2iil",{"name":35,"slug":35,"count":36,"posts":330},[331,333],{"id":185,"title":186,"slug":187,"lang":5,"category":13,"categorySlug":14,"summary":188,"excerpt":188,"author":189,"date":152,"readTime":153,"image":190,"tags":332,"publishedAt":192,"createdAt":192,"updatedAt":192,"filePath":193,"sourceUrl":194},[13,14,35,38,40],{"id":196,"title":197,"slug":198,"lang":5,"category":13,"categorySlug":14,"summary":199,"excerpt":199,"author":200,"date":152,"readTime":165,"image":201,"tags":334,"publishedAt":203,"createdAt":203,"updatedAt":203,"filePath":204,"sourceUrl":205},[13,74,76,35,14],{"name":38,"slug":38,"count":36,"posts":336},[337,339],{"id":185,"title":186,"slug":187,"lang":5,"category":13,"categorySlug":14,"summary":188,"excerpt":188,"author":189,"date":152,"readTime":153,"image":190,"tags":338,"publishedAt":192,"createdAt":192,"updatedAt":192,"filePath":193,"sourceUrl":194},[13,14,35,38,40],{"id":207,"title":208,"slug":209,"lang":5,"category":13,"categorySlug":14,"summary":210,"excerpt":210,"author":211,"date":152,"readTime":165,"image":212,"tags":340,"publishedAt":214,"createdAt":214,"updatedAt":214,"filePath":215,"sourceUrl":216},[13,38,14,40,53],1786961340742]