[{"data":1,"prerenderedAt":529},["ShallowReactive",2],{"blogs-all-50-posts-data-en":3,"blogs-tags-marquee-list-en":385},{"items":4,"total":348,"page":349,"totalPages":349,"limit":350,"lang":9,"categories":351,"popularTags":365},[5,25,41,57,73,87,100,113,127,141,155,167,180,192,206,219,233,245,259,272,286,299,311,324,336],{"id":6,"title":7,"slug":8,"lang":9,"category":10,"categorySlug":11,"summary":12,"excerpt":12,"author":13,"date":14,"readTime":15,"image":16,"tags":17,"publishedAt":22,"createdAt":22,"updatedAt":22,"filePath":23,"sourceUrl":24},"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","en","AI Agents","ai-agents","I Thought I'd Lost the Plot. I Was Writing It.            I set out to build autonomous...","Joe Black","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%2Fa3l9h76kr920p8bm2mjp.png",[10,18,19,20,21],"claudecode","aiagents","developmenttools","autonomousagents","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":26,"title":27,"slug":28,"lang":9,"category":29,"categorySlug":30,"summary":31,"excerpt":31,"author":32,"date":14,"readTime":15,"image":33,"tags":34,"publishedAt":38,"createdAt":38,"updatedAt":38,"filePath":39,"sourceUrl":40},"cron-1786956216746-en","What Is the Circuit Breaker Pattern? A Practical Guide","what-is-the-circuit-breaker-pattern-a-practical-guide-4j68","Microservices","microservices","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",[29,30,35,36,37],"backend","api","Trending","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":42,"title":43,"slug":44,"lang":9,"category":45,"categorySlug":46,"summary":47,"excerpt":47,"author":48,"date":14,"readTime":15,"image":49,"tags":50,"publishedAt":54,"createdAt":54,"updatedAt":54,"filePath":55,"sourceUrl":56},"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","Security","security","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","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",[45,51,52,46,53],"opensource","ai","database","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":58,"title":59,"slug":60,"lang":9,"category":61,"categorySlug":62,"summary":63,"excerpt":63,"author":64,"date":14,"readTime":15,"image":65,"tags":66,"publishedAt":70,"createdAt":70,"updatedAt":70,"filePath":71,"sourceUrl":72},"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","Kubernetes","kubernetes","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",[61,62,67,68,69],"go","devops","mcp","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":74,"title":75,"slug":76,"lang":9,"category":10,"categorySlug":11,"summary":77,"excerpt":77,"author":78,"date":14,"readTime":15,"image":79,"tags":80,"publishedAt":84,"createdAt":84,"updatedAt":84,"filePath":85,"sourceUrl":86},"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",[10,19,81,82,83],"agentmemory","rbac","networkpolicies","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":88,"title":89,"slug":90,"lang":9,"category":10,"categorySlug":11,"summary":91,"excerpt":91,"author":92,"date":14,"readTime":93,"image":94,"tags":95,"publishedAt":97,"createdAt":97,"updatedAt":97,"filePath":98,"sourceUrl":99},"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","6 phút","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",[10,52,19,51,96],"git","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",{"id":101,"title":102,"slug":103,"lang":9,"category":29,"categorySlug":30,"summary":104,"excerpt":104,"author":105,"date":14,"readTime":93,"image":106,"tags":107,"publishedAt":110,"createdAt":110,"updatedAt":110,"filePath":111,"sourceUrl":112},"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",[29,108,109,35,30],"node","software","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":114,"title":115,"slug":116,"lang":9,"category":45,"categorySlug":46,"summary":117,"excerpt":117,"author":118,"date":14,"readTime":93,"image":119,"tags":120,"publishedAt":124,"createdAt":124,"updatedAt":124,"filePath":125,"sourceUrl":126},"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","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",[45,46,121,122,123],"compliance","developers","careerdevelopment","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":128,"title":129,"slug":130,"lang":9,"category":61,"categorySlug":62,"summary":131,"excerpt":131,"author":132,"date":14,"readTime":93,"image":133,"tags":134,"publishedAt":138,"createdAt":138,"updatedAt":138,"filePath":139,"sourceUrl":140},"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",[61,135,136,62,137],"distributedsystems","llm","systemdesign","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":142,"title":143,"slug":144,"lang":9,"category":10,"categorySlug":11,"summary":145,"excerpt":145,"author":146,"date":14,"readTime":93,"image":147,"tags":148,"publishedAt":152,"createdAt":152,"updatedAt":152,"filePath":153,"sourceUrl":154},"cron-1786954879160","Test What Your AI Agents Must Not Do","test-what-your-ai-agents-must-not-do-fj6y","A Guardrail Without A Negative Test Is Still An Assumption   Most AI agent governance starts...","Bobai Kato","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fres.cloudinary.com%2Fota-run%2Fimage%2Fupload%2Fq_auto%2Ftest-what-your-ai-agents-must-not-do.png",[10,19,149,150,151],"agentsafety","negativetesting","executiongovernance","2026-08-17T08:21:19.160Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Ftest-what-your-ai-agents-must-not-do-fj6y.md","https:\u002F\u002Fdev.to\u002Fotaready\u002Ftest-what-your-ai-agents-must-not-do-3e1a",{"id":156,"title":157,"slug":158,"lang":9,"category":29,"categorySlug":30,"summary":159,"excerpt":159,"author":160,"date":14,"readTime":93,"image":161,"tags":162,"publishedAt":164,"createdAt":164,"updatedAt":164,"filePath":165,"sourceUrl":166},"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",[29,36,30,37,163],"2026","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",{"id":168,"title":169,"slug":170,"lang":9,"category":45,"categorySlug":46,"summary":171,"excerpt":171,"author":172,"date":14,"readTime":93,"image":173,"tags":174,"publishedAt":177,"createdAt":177,"updatedAt":177,"filePath":178,"sourceUrl":179},"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",[45,175,68,46,176],"machinelearning","agents","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",{"id":181,"title":182,"slug":183,"lang":9,"category":61,"categorySlug":62,"summary":184,"excerpt":184,"author":185,"date":14,"readTime":93,"image":186,"tags":187,"publishedAt":189,"createdAt":189,"updatedAt":189,"filePath":190,"sourceUrl":191},"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",[61,62,188,52,68],"gpu","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",{"id":193,"title":194,"slug":195,"lang":9,"category":10,"categorySlug":11,"summary":196,"excerpt":196,"author":78,"date":197,"readTime":93,"image":198,"tags":199,"publishedAt":203,"createdAt":203,"updatedAt":203,"filePath":204,"sourceUrl":205},"cron-1786954563310","FastMCP Agent Mail: RBAC Tokens vs Anonymous Access, and the 403 Errors in Between","fastmcp-agent-mail-rbac-tokens-vs-anonymous-access-and-the-403-errors-in-between-ef0p","Why a FastMCP agent mail server that works anonymously in dev returns 403 behind TLS ingress, and how to wire bearer tokens without leaking them.","17\u002F8\u002F2026","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fguatulabs.dev%2Fog%2Ffastmcp-agent-mail-rbac-token-vs-anonymous-lessons-from-403-errors.png",[10,200,201,19,202],"fastmcp","mcpservers","authentication","2026-08-17T08:16:03.310Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Ffastmcp-agent-mail-rbac-tokens-vs-anonymous-access-and-the-403-errors-in-between-ef0p.md","https:\u002F\u002Fdev.to\u002Ffuthgar\u002Ffastmcp-agent-mail-rbac-tokens-vs-anonymous-access-and-the-403-errors-in-between-22pk",{"id":207,"title":208,"slug":209,"lang":9,"category":29,"categorySlug":30,"summary":210,"excerpt":210,"author":211,"date":197,"readTime":93,"image":212,"tags":213,"publishedAt":216,"createdAt":216,"updatedAt":216,"filePath":217,"sourceUrl":218},"cron-1786954562962","eBPF-Powered Request Tracing in Go Microservices Without Instrumentation Tax","ebpf-powered-request-tracing-in-go-microservices-without-instrumentation-tax-k53p","How eBPF uprobes and ring buffers replace manual trace propagation in Go services—mechanics, tradeoffs, and failure modes.","Neeraj Singhi","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%2Fws515jitp8rvalxr8d63.png",[29,214,67,30,215],"architecture","performance","2026-08-17T08:16:02.962Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fmicroservices\u002Febpf-powered-request-tracing-in-go-microservices-without-instrumentation-tax-k53p.md","https:\u002F\u002Fdev.to\u002Fneeraj_singhi_golang\u002Febpf-powered-request-tracing-in-go-microservices-without-instrumentation-tax-34kf",{"id":220,"title":221,"slug":222,"lang":9,"category":45,"categorySlug":46,"summary":223,"excerpt":223,"author":224,"date":197,"readTime":93,"image":225,"tags":226,"publishedAt":230,"createdAt":230,"updatedAt":230,"filePath":231,"sourceUrl":232},"cron-1786954562825","How Dopamine Works: The Architecture of a Modern iOS Jailbreak","how-dopamine-works-the-architecture-of-a-modern-ios-jailbreak-woxq","Most developers will never jailbreak a phone. That is fine. This article is not a how-to, and there...","ArshTechPro","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%2F0gnfjvl3fzvb1r1rpvci.png",[45,227,228,46,229],"ios","mobile","programming","2026-08-17T08:16:02.825Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fsecurity\u002Fhow-dopamine-works-the-architecture-of-a-modern-ios-jailbreak-woxq.md","https:\u002F\u002Fdev.to\u002Farshtechpro\u002Fhow-dopamine-works-the-architecture-of-a-modern-ios-jailbreak-2hj3",{"id":234,"title":235,"slug":236,"lang":9,"category":61,"categorySlug":62,"summary":237,"excerpt":237,"author":238,"date":197,"readTime":93,"image":239,"tags":240,"publishedAt":242,"createdAt":242,"updatedAt":242,"filePath":243,"sourceUrl":244},"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","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",[61,241,68,51,62],"productivity","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",{"id":246,"title":247,"slug":248,"lang":9,"category":10,"categorySlug":11,"summary":249,"excerpt":249,"author":250,"date":197,"readTime":93,"image":251,"tags":252,"publishedAt":256,"createdAt":256,"updatedAt":256,"filePath":257,"sourceUrl":258},"cron-1786954558132","The Coordinated Rename Is the Agent's Most Dangerous Refactor","the-coordinated-rename-is-the-agents-most-dangerous-refactor-iazu","Multi-agent rename tooling rewrites two hundred files in ten seconds because it noticed the drift. Half the time the drift was a load-bearing distinction the team encoded on purpose. Vocabulary curation is a real-time review surface now, and senior includes refusing changes that would be technically more consistent because the domain has two concepts the agent has no way to see.","Travis Frisinger","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fwww.tddbuddy.com%2Fimages%2Fcovers%2Fthe-coordinated-rename-is-the-dangerous-refactor.png",[10,253,19,254,255],"vocabulary","domainmodeling","codereview","2026-08-17T08:15:58.132Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Fthe-coordinated-rename-is-the-agents-most-dangerous-refactor-iazu.md","https:\u002F\u002Fdev.to\u002Ftmfrisinger\u002Fthe-coordinated-rename-is-the-agents-most-dangerous-refactor-6a",{"id":260,"title":261,"slug":262,"lang":9,"category":29,"categorySlug":30,"summary":263,"excerpt":263,"author":264,"date":197,"readTime":93,"image":265,"tags":266,"publishedAt":269,"createdAt":269,"updatedAt":269,"filePath":270,"sourceUrl":271},"cron-1786954557526","Microservices: Building Applications as Independent, Communicating Services","microservices-building-applications-as-independent-communicating-services-c45k","Microservices: Building Applications as Independent, Communicating Services   A practical,...","Rhuturaj Takle","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%2F8puio1c7flrtyivr04hl.png",[29,30,267,229,268],"dotnet","learning","2026-08-17T08:15:57.526Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fmicroservices\u002Fmicroservices-building-applications-as-independent-communicating-services-c45k.md","https:\u002F\u002Fdev.to\u002Frhuturaj_takle\u002Fmicroservices-building-applications-as-independent-communicating-services-2eo8",{"id":273,"title":274,"slug":275,"lang":9,"category":45,"categorySlug":46,"summary":276,"excerpt":276,"author":277,"date":197,"readTime":93,"image":278,"tags":279,"publishedAt":283,"createdAt":283,"updatedAt":283,"filePath":284,"sourceUrl":285},"cron-1786954556056","From Arduino To Automotive: How I Escaped The IDE And Owned The Bus","from-arduino-to-automotive-how-i-escaped-the-ide-and-owned-the-bus-hj7g","Arduino taught me how to build. Bare metal taught me how the build actually works.  I have a lot of...","v. Splicer","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%2Fabn3138rnp9vm0nyk54b.jpg",[45,280,281,282,46],"esp32","arduino","canbus","2026-08-17T08:15:56.056Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fsecurity\u002Ffrom-arduino-to-automotive-how-i-escaped-the-ide-and-owned-the-bus-hj7g.md","https:\u002F\u002Fdev.to\u002Fnumbpill3d\u002Ffrom-arduino-to-automotive-how-i-escaped-the-ide-and-owned-the-bus-f8f",{"id":287,"title":288,"slug":289,"lang":9,"category":61,"categorySlug":62,"summary":290,"excerpt":290,"author":291,"date":197,"readTime":93,"image":292,"tags":293,"publishedAt":296,"createdAt":296,"updatedAt":296,"filePath":297,"sourceUrl":298},"cron-1786954555663","The Backup Awakens: A Star Wars Story","the-backup-awakens-a-star-wars-story-jzpq","The Quest Begins (The \\\"Why\\\")   Honestly, I used to think backups were the boring chores you...","Timevolt","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%2F4ynsfxiz14nn4b9ylhn6.png",[61,68,294,62,295],"docker","cicd","2026-08-17T08:15:55.662Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fkubernetes\u002Fthe-backup-awakens-a-star-wars-story-jzpq.md","https:\u002F\u002Fdev.to\u002Ftimevolt\u002Fthe-backup-awakens-a-star-wars-story-1616",{"id":300,"title":301,"slug":302,"lang":9,"category":10,"categorySlug":11,"summary":303,"excerpt":303,"author":250,"date":197,"readTime":93,"image":304,"tags":305,"publishedAt":308,"createdAt":308,"updatedAt":308,"filePath":309,"sourceUrl":310},"cron-1786954321408","Test Deletion Is a Privileged Operation","test-deletion-is-a-privileged-operation-2pfz","The cheapest way for an agent to make a failing test pass is to delete it. That is logical for the agent and catastrophic for the codebase. Tests are append-only by default. Deletion needs a human author, a separate commit, and a separate review.","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1000,height=420,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fwww.tddbuddy.com%2Fimages%2Fcovers%2Ftest-deletion-is-a-privileged-operation.png",[10,306,19,307,255],"tdd","testdesign","2026-08-17T08:12:01.408Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fai-agents\u002Ftest-deletion-is-a-privileged-operation-2pfz.md","https:\u002F\u002Fdev.to\u002Ftmfrisinger\u002Ftest-deletion-is-a-privileged-operation-264a",{"id":312,"title":313,"slug":314,"lang":9,"category":29,"categorySlug":30,"summary":315,"excerpt":315,"author":316,"date":197,"readTime":93,"image":317,"tags":318,"publishedAt":321,"createdAt":321,"updatedAt":321,"filePath":322,"sourceUrl":323},"cron-1786954321239","You Don't Always Need a Workflow Engine to Roll Back a Failed Checkout","you-dont-always-need-a-workflow-engine-to-roll-back-a-failed-checkout-1iwf","Here's a sequence that shows up in almost every Laravel app that talks to the outside world:   Charge...","Sient","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%2Fu6g3j4z4af9tbuozbz2v.png",[29,319,320,214,30],"laravel","php","2026-08-17T08:12:01.239Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fmicroservices\u002Fyou-dont-always-need-a-workflow-engine-to-roll-back-a-failed-checkout-1iwf.md","https:\u002F\u002Fdev.to\u002Fsient\u002Fyou-dont-always-need-a-workflow-engine-to-roll-back-a-failed-checkout-5gop",{"id":325,"title":326,"slug":327,"lang":9,"category":45,"categorySlug":46,"summary":328,"excerpt":328,"author":329,"date":197,"readTime":93,"image":330,"tags":331,"publishedAt":333,"createdAt":333,"updatedAt":333,"filePath":334,"sourceUrl":335},"cron-1786954321092","I Stopped Trusting AI Agents With Tools. So I Built a Gatekeeper.","i-stopped-trusting-ai-agents-with-tools-so-i-built-a-gatekeeper-9i2m","Update 08\u002F15 0.2.0 Released   github.com\u002Fdeghosal-2026\u002Fagent-tooltrust · pip install agent-tooltrust...","Debashish Ghosal","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%2Fr97gsrqar0qk7ejjibih.png",[45,52,176,46,332],"gatekeeper","2026-08-17T08:12:01.092Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fsecurity\u002Fi-stopped-trusting-ai-agents-with-tools-so-i-built-a-gatekeeper-9i2m.md","https:\u002F\u002Fdev.to\u002Fdebashish_ghosal\u002Fi-stopped-trusting-ai-agents-with-tools-so-i-built-a-gatekeeper-26fb",{"id":337,"title":338,"slug":339,"lang":9,"category":61,"categorySlug":62,"summary":340,"excerpt":340,"author":341,"date":197,"readTime":93,"image":342,"tags":343,"publishedAt":345,"createdAt":345,"updatedAt":345,"filePath":346,"sourceUrl":347},"cron-1786954320913","I Automated My Entire GitOps Security Stack. The First Thing It Blocked Was My Own Salary.","i-automated-my-entire-gitops-security-stack-the-first-thing-it-blocked-was-my-own-salary-pko8","I Automated My Entire GitOps Security Stack. The First Thing It Blocked Was My Own...","Le Beltagy","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%2Frvjfi7ee0tmi1xp1mem5.png",[61,62,46,344,68],"gitops","2026-08-17T08:12:00.911Z","\u002FUsers\u002Fnguyenanhtuan\u002FCode\u002FNuxtjs\u002Fnextpress\u002Fintlight\u002Fpublic\u002Fcontents\u002Fkubernetes\u002Fi-automated-my-entire-gitops-security-stack-the-first-thing-it-blocked-was-my-own-salary-pko8.md","https:\u002F\u002Fdev.to\u002Fle_beltagy\u002Fi-automated-my-entire-gitops-security-stack-the-first-thing-it-blocked-was-my-own-salary-227e",25,1,50,[352,355,359,361,362,363],{"name":353,"slug":354,"count":348},"All","all",{"name":356,"slug":357,"count":358},"Nuxt 4","nuxt-4",0,{"name":61,"slug":62,"count":360},6,{"name":45,"slug":46,"count":360},{"name":29,"slug":30,"count":360},{"name":10,"slug":11,"count":364},7,[366,367,368,369,370,371,372,373,374,375,377,379,381,382,384],{"name":10,"slug":11,"count":364},{"name":19,"slug":19,"count":364},{"name":46,"slug":46,"count":364},{"name":29,"slug":30,"count":360},{"name":30,"slug":30,"count":360},{"name":45,"slug":46,"count":360},{"name":61,"slug":62,"count":360},{"name":62,"slug":62,"count":360},{"name":68,"slug":68,"count":360},{"name":52,"slug":52,"count":376},4,{"name":51,"slug":51,"count":378},3,{"name":35,"slug":35,"count":380},2,{"name":36,"slug":36,"count":380},{"name":37,"slug":383,"count":380},"trending",{"name":67,"slug":67,"count":380},{"status":386,"lang":9,"totalTags":387,"tags":388,"topFeaturedTags":452},"success",61,[389,391,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],{"name":45,"slug":46,"count":390},13,{"name":29,"slug":30,"count":392},12,{"name":61,"slug":62,"count":392},{"name":10,"slug":11,"count":364},{"name":19,"slug":19,"count":364},{"name":68,"slug":68,"count":360},{"name":52,"slug":52,"count":376},{"name":51,"slug":51,"count":378},{"name":35,"slug":35,"count":380},{"name":36,"slug":36,"count":380},{"name":37,"slug":383,"count":380},{"name":67,"slug":67,"count":380},{"name":176,"slug":176,"count":380},{"name":214,"slug":214,"count":380},{"name":229,"slug":229,"count":380},{"name":255,"slug":255,"count":380},{"name":163,"slug":163,"count":349},{"name":18,"slug":18,"count":349},{"name":20,"slug":20,"count":349},{"name":21,"slug":21,"count":349},{"name":53,"slug":53,"count":349},{"name":69,"slug":69,"count":349},{"name":81,"slug":81,"count":349},{"name":82,"slug":82,"count":349},{"name":83,"slug":83,"count":349},{"name":96,"slug":96,"count":349},{"name":108,"slug":108,"count":349},{"name":109,"slug":109,"count":349},{"name":121,"slug":121,"count":349},{"name":122,"slug":122,"count":349},{"name":123,"slug":123,"count":349},{"name":135,"slug":135,"count":349},{"name":136,"slug":136,"count":349},{"name":137,"slug":137,"count":349},{"name":149,"slug":149,"count":349},{"name":150,"slug":150,"count":349},{"name":151,"slug":151,"count":349},{"name":175,"slug":175,"count":349},{"name":188,"slug":188,"count":349},{"name":200,"slug":200,"count":349},{"name":201,"slug":201,"count":349},{"name":202,"slug":202,"count":349},{"name":215,"slug":215,"count":349},{"name":227,"slug":227,"count":349},{"name":228,"slug":228,"count":349},{"name":241,"slug":241,"count":349},{"name":253,"slug":253,"count":349},{"name":254,"slug":254,"count":349},{"name":267,"slug":267,"count":349},{"name":268,"slug":268,"count":349},{"name":280,"slug":280,"count":349},{"name":281,"slug":281,"count":349},{"name":282,"slug":282,"count":349},{"name":294,"slug":294,"count":349},{"name":295,"slug":295,"count":349},{"name":306,"slug":306,"count":349},{"name":307,"slug":307,"count":349},{"name":319,"slug":319,"count":349},{"name":320,"slug":320,"count":349},{"name":332,"slug":332,"count":349},{"name":344,"slug":344,"count":349},[453,461,469,477,485,493,501,509,517,523],{"name":45,"slug":46,"count":390,"posts":454},[455,457,459],{"id":42,"title":43,"slug":44,"lang":9,"category":45,"categorySlug":46,"summary":47,"excerpt":47,"author":48,"date":14,"readTime":15,"image":49,"tags":456,"publishedAt":54,"createdAt":54,"updatedAt":54,"filePath":55,"sourceUrl":56},[45,51,52,46,53],{"id":114,"title":115,"slug":116,"lang":9,"category":45,"categorySlug":46,"summary":117,"excerpt":117,"author":118,"date":14,"readTime":93,"image":119,"tags":458,"publishedAt":124,"createdAt":124,"updatedAt":124,"filePath":125,"sourceUrl":126},[45,46,121,122,123],{"id":168,"title":169,"slug":170,"lang":9,"category":45,"categorySlug":46,"summary":171,"excerpt":171,"author":172,"date":14,"readTime":93,"image":173,"tags":460,"publishedAt":177,"createdAt":177,"updatedAt":177,"filePath":178,"sourceUrl":179},[45,175,68,46,176],{"name":29,"slug":30,"count":392,"posts":462},[463,465,467],{"id":26,"title":27,"slug":28,"lang":9,"category":29,"categorySlug":30,"summary":31,"excerpt":31,"author":32,"date":14,"readTime":15,"image":33,"tags":464,"publishedAt":38,"createdAt":38,"updatedAt":38,"filePath":39,"sourceUrl":40},[29,30,35,36,37],{"id":101,"title":102,"slug":103,"lang":9,"category":29,"categorySlug":30,"summary":104,"excerpt":104,"author":105,"date":14,"readTime":93,"image":106,"tags":466,"publishedAt":110,"createdAt":110,"updatedAt":110,"filePath":111,"sourceUrl":112},[29,108,109,35,30],{"id":156,"title":157,"slug":158,"lang":9,"category":29,"categorySlug":30,"summary":159,"excerpt":159,"author":160,"date":14,"readTime":93,"image":161,"tags":468,"publishedAt":164,"createdAt":164,"updatedAt":164,"filePath":165,"sourceUrl":166},[29,36,30,37,163],{"name":61,"slug":62,"count":392,"posts":470},[471,473,475],{"id":58,"title":59,"slug":60,"lang":9,"category":61,"categorySlug":62,"summary":63,"excerpt":63,"author":64,"date":14,"readTime":15,"image":65,"tags":472,"publishedAt":70,"createdAt":70,"updatedAt":70,"filePath":71,"sourceUrl":72},[61,62,67,68,69],{"id":128,"title":129,"slug":130,"lang":9,"category":61,"categorySlug":62,"summary":131,"excerpt":131,"author":132,"date":14,"readTime":93,"image":133,"tags":474,"publishedAt":138,"createdAt":138,"updatedAt":138,"filePath":139,"sourceUrl":140},[61,135,136,62,137],{"id":181,"title":182,"slug":183,"lang":9,"category":61,"categorySlug":62,"summary":184,"excerpt":184,"author":185,"date":14,"readTime":93,"image":186,"tags":476,"publishedAt":189,"createdAt":189,"updatedAt":189,"filePath":190,"sourceUrl":191},[61,62,188,52,68],{"name":10,"slug":11,"count":364,"posts":478},[479,481,483],{"id":6,"title":7,"slug":8,"lang":9,"category":10,"categorySlug":11,"summary":12,"excerpt":12,"author":13,"date":14,"readTime":15,"image":16,"tags":480,"publishedAt":22,"createdAt":22,"updatedAt":22,"filePath":23,"sourceUrl":24},[10,18,19,20,21],{"id":74,"title":75,"slug":76,"lang":9,"category":10,"categorySlug":11,"summary":77,"excerpt":77,"author":78,"date":14,"readTime":15,"image":79,"tags":482,"publishedAt":84,"createdAt":84,"updatedAt":84,"filePath":85,"sourceUrl":86},[10,19,81,82,83],{"id":88,"title":89,"slug":90,"lang":9,"category":10,"categorySlug":11,"summary":91,"excerpt":91,"author":92,"date":14,"readTime":93,"image":94,"tags":484,"publishedAt":97,"createdAt":97,"updatedAt":97,"filePath":98,"sourceUrl":99},[10,52,19,51,96],{"name":19,"slug":19,"count":364,"posts":486},[487,489,491],{"id":6,"title":7,"slug":8,"lang":9,"category":10,"categorySlug":11,"summary":12,"excerpt":12,"author":13,"date":14,"readTime":15,"image":16,"tags":488,"publishedAt":22,"createdAt":22,"updatedAt":22,"filePath":23,"sourceUrl":24},[10,18,19,20,21],{"id":74,"title":75,"slug":76,"lang":9,"category":10,"categorySlug":11,"summary":77,"excerpt":77,"author":78,"date":14,"readTime":15,"image":79,"tags":490,"publishedAt":84,"createdAt":84,"updatedAt":84,"filePath":85,"sourceUrl":86},[10,19,81,82,83],{"id":88,"title":89,"slug":90,"lang":9,"category":10,"categorySlug":11,"summary":91,"excerpt":91,"author":92,"date":14,"readTime":93,"image":94,"tags":492,"publishedAt":97,"createdAt":97,"updatedAt":97,"filePath":98,"sourceUrl":99},[10,52,19,51,96],{"name":68,"slug":68,"count":360,"posts":494},[495,497,499],{"id":58,"title":59,"slug":60,"lang":9,"category":61,"categorySlug":62,"summary":63,"excerpt":63,"author":64,"date":14,"readTime":15,"image":65,"tags":496,"publishedAt":70,"createdAt":70,"updatedAt":70,"filePath":71,"sourceUrl":72},[61,62,67,68,69],{"id":168,"title":169,"slug":170,"lang":9,"category":45,"categorySlug":46,"summary":171,"excerpt":171,"author":172,"date":14,"readTime":93,"image":173,"tags":498,"publishedAt":177,"createdAt":177,"updatedAt":177,"filePath":178,"sourceUrl":179},[45,175,68,46,176],{"id":181,"title":182,"slug":183,"lang":9,"category":61,"categorySlug":62,"summary":184,"excerpt":184,"author":185,"date":14,"readTime":93,"image":186,"tags":500,"publishedAt":189,"createdAt":189,"updatedAt":189,"filePath":190,"sourceUrl":191},[61,62,188,52,68],{"name":52,"slug":52,"count":376,"posts":502},[503,505,507],{"id":42,"title":43,"slug":44,"lang":9,"category":45,"categorySlug":46,"summary":47,"excerpt":47,"author":48,"date":14,"readTime":15,"image":49,"tags":504,"publishedAt":54,"createdAt":54,"updatedAt":54,"filePath":55,"sourceUrl":56},[45,51,52,46,53],{"id":88,"title":89,"slug":90,"lang":9,"category":10,"categorySlug":11,"summary":91,"excerpt":91,"author":92,"date":14,"readTime":93,"image":94,"tags":506,"publishedAt":97,"createdAt":97,"updatedAt":97,"filePath":98,"sourceUrl":99},[10,52,19,51,96],{"id":181,"title":182,"slug":183,"lang":9,"category":61,"categorySlug":62,"summary":184,"excerpt":184,"author":185,"date":14,"readTime":93,"image":186,"tags":508,"publishedAt":189,"createdAt":189,"updatedAt":189,"filePath":190,"sourceUrl":191},[61,62,188,52,68],{"name":51,"slug":51,"count":378,"posts":510},[511,513,515],{"id":42,"title":43,"slug":44,"lang":9,"category":45,"categorySlug":46,"summary":47,"excerpt":47,"author":48,"date":14,"readTime":15,"image":49,"tags":512,"publishedAt":54,"createdAt":54,"updatedAt":54,"filePath":55,"sourceUrl":56},[45,51,52,46,53],{"id":88,"title":89,"slug":90,"lang":9,"category":10,"categorySlug":11,"summary":91,"excerpt":91,"author":92,"date":14,"readTime":93,"image":94,"tags":514,"publishedAt":97,"createdAt":97,"updatedAt":97,"filePath":98,"sourceUrl":99},[10,52,19,51,96],{"id":234,"title":235,"slug":236,"lang":9,"category":61,"categorySlug":62,"summary":237,"excerpt":237,"author":238,"date":197,"readTime":93,"image":239,"tags":516,"publishedAt":242,"createdAt":242,"updatedAt":242,"filePath":243,"sourceUrl":244},[61,241,68,51,62],{"name":35,"slug":35,"count":380,"posts":518},[519,521],{"id":26,"title":27,"slug":28,"lang":9,"category":29,"categorySlug":30,"summary":31,"excerpt":31,"author":32,"date":14,"readTime":15,"image":33,"tags":520,"publishedAt":38,"createdAt":38,"updatedAt":38,"filePath":39,"sourceUrl":40},[29,30,35,36,37],{"id":101,"title":102,"slug":103,"lang":9,"category":29,"categorySlug":30,"summary":104,"excerpt":104,"author":105,"date":14,"readTime":93,"image":106,"tags":522,"publishedAt":110,"createdAt":110,"updatedAt":110,"filePath":111,"sourceUrl":112},[29,108,109,35,30],{"name":36,"slug":36,"count":380,"posts":524},[525,527],{"id":26,"title":27,"slug":28,"lang":9,"category":29,"categorySlug":30,"summary":31,"excerpt":31,"author":32,"date":14,"readTime":15,"image":33,"tags":526,"publishedAt":38,"createdAt":38,"updatedAt":38,"filePath":39,"sourceUrl":40},[29,30,35,36,37],{"id":156,"title":157,"slug":158,"lang":9,"category":29,"categorySlug":30,"summary":159,"excerpt":159,"author":160,"date":14,"readTime":93,"image":161,"tags":528,"publishedAt":164,"createdAt":164,"updatedAt":164,"filePath":165,"sourceUrl":166},[29,36,30,37,163],1786961340742]