[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-kubernetes-turns-container-chaos-into-operations-en":3,"article-related-kubernetes-turns-container-chaos-into-operations-en":30,"series-tools-0abd6ddf-cb83-497b-a70b-9b559356970f":81},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"0abd6ddf-cb83-497b-a70b-9b559356970f","kubernetes-turns-container-chaos-into-operations-en","Kubernetes turns container chaos into operations","\u003Cp data-speakable=\"summary\">Kubernetes won by automating the ops pain that containers exposed.\u003C\u002Fp>\u003Cp>I've been using container platforms long enough to remember when the whole thing felt weirdly unfinished. \u003Ca href=\"\u002Ftag\u002Fdocker\">Docker\u003C\u002Fa> made packaging easy, sure, but the minute you tried to run real traffic, the cracks showed. One node dies and you're babysitting it. Traffic spikes and you're hand-waving at autoscaling rules. Services need to find each other and suddenly you're duct-taping DNS, load balancers, and restart scripts together like it's 2009 again.\u003C\u002Fp>\u003Cp>That was the part that always annoyed me. Containers solved the “ship it” problem, but not the “keep it alive at 3 a.m.” problem. I kept seeing teams treat orchestration like an optional layer they could postpone until later. Then later arrived, and it was a mess. Kubernetes ended up winning because it didn't pretend that \u003Ca href=\"\u002Ftag\u002Fdistributed-systems\">distributed systems\u003C\u002Fa> were simple. It just attacked the boring, expensive, failure-prone parts that every team eventually trips over.\u003C\u002Fp>\u003Cp>This article from \u003Ca href=\"https:\u002F\u002Fwww.lpi.org\u002Fblog\u002F2026\u002F06\u002F05\u002Fhow-kubernetes-came-to-dominate-large-scale-computing-part-2\u002F\">Linux Professional Institute\u003C\u002Fa> made that click for me again. The piece is by \u003Ca href=\"https:\u002F\u002Fwww.lpi.org\u002Fblog\u002Fauthor\u002Fandrew-oram\u002F\">Andrew Oram\u003C\u002Fa>, and it traces how \u003Ca href=\"\u002Ftag\u002Fgoogle\">Google\u003C\u002Fa>’s internal container work, Docker’s timing, and the CNCF’s backing pushed Kubernetes into the center of large-scale computing. The article doesn’t give social numbers, so I’m not inventing any. What it does give is a clean explanation of why Kubernetes beat the alternatives: it solved the operational chores people actually had.\u003C\u002Fp>\u003Ch2>Kubernetes won because it attacked the ugly middle\u003C\u002Fh2>\u003Cblockquote>“The developers of Kubernetes didn’t solve all the problems—they weren’t about to invent another CORBA, DCE, or OpenStack. But they set the stage for solutions that were quick to come.”\u003C\u002Fblockquote>\u003Cp>What this actually means is Kubernetes didn’t try to be the whole platform. It focused on the control plane problems that every distributed system needs: scheduling, restarts, service discovery, updates, and scaling. That sounds modest until you realize how many tools fail by trying to do everything at once.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781285606704-qzol.png\" alt=\"Kubernetes turns container chaos into operations\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>I’ve seen teams burn months building a custom platform layer because they wanted a “simple” internal abstraction. Then they discover they’ve recreated half of Kubernetes badly, without the ecosystem, without the docs, and without the battle scars. Kubernetes won because it stayed narrow enough to be useful and broad enough to be the default coordinator.\u003C\u002Fp>\u003Cp>How to apply it: if you’re designing platform tooling, start by listing the operational tasks you repeat every week. If your tool doesn’t reduce those tasks, it’s probably decorative. Don’t build a platform for the demo. Build it for the pager.\u003C\u002Fp>\u003Cp>There’s a useful discipline here. I like to ask three questions before I adopt or design anything in this space:\u003C\u002Fp>\u003Cul>\u003Cli>What failure mode does this remove from human hands?\u003C\u002Fli>\u003Cli>What state does it preserve when a node disappears?\u003C\u002Fli>\u003Cli>What can it do automatically in under a minute that I would otherwise do manually?\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If a tool can’t answer those cleanly, I’m skeptical. Kubernetes answered them early, which is a big reason it stuck.\u003C\u002Fp>\u003Ch2>Autoscaling only matters when traffic gets rude\u003C\u002Fh2>\u003Cblockquote>“Automatic scaling… add new nodes in the cloud as needed, and quickly release them when no longer needed.”\u003C\u002Fblockquote>\u003Cp>What this actually means is your system needs to react to demand without waiting for a human to notice the graph. The article points out the old SlashDot effect, and that’s still the same story today: traffic comes in bursts, and bursty traffic ruins static capacity planning.\u003C\u002Fp>\u003Cp>I ran into this repeatedly on services that were technically “containerized” but operationally dumb. The app was in a container, yes, but scaling it still meant someone had to adjust deployment counts, check whether the load balancer had caught up, and hope the new pods were actually ready. That’s not automation. That’s a checklist with nicer branding.\u003C\u002Fp>\u003Cp>Kubernetes made autoscaling feel like a first-class behavior rather than a side quest. It also made the underlying state explicit, which matters more than people admit. If the desired state says 12 replicas and you only have 9, the platform should be embarrassed on your behalf and fix it.\u003C\u002Fp>\u003Cp>How to apply it: define scaling on metrics you can defend. CPU is common, but it’s not always the right signal. Queue depth, request latency, and concurrent sessions are often better. Then make sure your deployment model can actually absorb new instances without manual babysitting. If a scale-up still requires a human to rewire traffic, you haven’t finished the job.\u003C\u002Fp>\u003Cp>One more thing: autoscaling is not a license to ignore capacity planning. It’s a way to absorb variability, not a substitute for understanding your baseline load. I’ve seen people confuse those two and pay for it later in cloud bills and bad incident reviews.\u003C\u002Fp>\u003Ch2>Restarting failed nodes is not a feature, it’s table stakes\u003C\u002Fh2>\u003Cblockquote>“Automatic restart and maintaining state… replace one when it fails.”\u003C\u002Fblockquote>\u003Cp>What this actually means is Kubernetes treats failure as normal. That sounds obvious, but a lot of systems still behave like failure is a rare exception. It isn’t. Nodes die, processes crash, kernels panic, networks flap, and someone accidentally deploys a broken image right before lunch.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781285599756-a183.png\" alt=\"Kubernetes turns container chaos into operations\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>The article makes a point I think gets missed too often: the cluster should restore the desired state while someone investigates the root cause. That’s the whole game. You don’t wait for perfect understanding before you recover service. You recover service first, then you figure out why the thing broke.\u003C\u002Fp>\u003Cp>I’ve watched teams lose hours because they had monitoring but no replacement policy. Everyone knew the node was dead. Everyone also knew the replacement had to be done by hand, in the right order, with the right config, and with the right blessing from whoever owned the legacy script. That is an ops tax, and Kubernetes was basically built to crush that tax.\u003C\u002Fp>\u003Cp>How to apply it: make sure every workload has a declared desired state, health checks, and a restart policy you actually trust. Then test failure in staging by killing pods and nodes on purpose. If your “self-healing” setup only works in slide decks, it’s not self-healing.\u003C\u002Fp>\u003Cp>Also, don’t confuse restart with recovery. Restarting a bad process is not enough if the process depends on broken external state. Which brings me to the part Kubernetes handled better than most people expected: storage.\u003C\u002Fp>\u003Ch2>Persistent volumes are why containers stopped feeling disposable\u003C\u002Fh2>\u003Cblockquote>“Persistent Volumes fill that need fairly elegantly, and are tightly bound into Kubernetes.”\u003C\u002Fblockquote>\u003Cp>What this actually means is Kubernetes acknowledged a nasty truth: containers are supposed to be ephemeral, but applications are often not. Your app can restart whenever it wants. Your customer data cannot. Your session state, uploads, indexes, and queues also tend to be less enthusiastic about disappearing.\u003C\u002Fp>\u003Cp>This is where a lot of early container thinking got sloppy. People loved the idea of stateless everything, then quietly reintroduced state through sidecars, bind mounts, external scripts, and “temporary” hacks that became permanent. Kubernetes gave a cleaner answer by separating compute from storage in a way operators could reason about.\u003C\u002Fp>\u003Cp>I’ve had to untangle setups where a team treated container rescheduling as if it were just an implementation detail. Then a node failed and suddenly the app “worked” but the data was gone, or worse, half-moved. Persistent volumes are boring in the best possible way. They make the data path explicit.\u003C\u002Fp>\u003Cp>How to apply it: if a service needs state, identify exactly where that state lives and how it survives pod replacement. Use persistent volumes, external databases, or managed storage with a clear recovery story. And if you can make a service stateless, do it. Stateless services are easier to move, replace, and scale. But don’t fake statelessness by ignoring data.\u003C\u002Fp>\u003Cp>Here’s the practical test I use:\u003C\u002Fp>\u003Cul>\u003Cli>If the pod disappears, what data must still exist?\u003C\u002Fli>\u003Cli>If the node disappears, what mounts come back automatically?\u003C\u002Fli>\u003Cli>If the application version changes, what migration step protects the data?\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If those answers are vague, your storage design is still hand-wavy.\u003C\u002Fp>\u003Ch2>Google’s internal pressure explains the timing better than hype does\u003C\u002Fh2>\u003Cblockquote>“Google based Kubernetes on internal projects, investing so much in it that management resisted making it open source.”\u003C\u002Fblockquote>\u003Cp>What this actually means is Kubernetes wasn’t born as a community toy. It came out of a company that had already hit the wall of inefficient utilization at huge scale. The LPI article quotes the key idea: customers were paying for lots of CPUs, but using them poorly because they were running VMs. That is the kind of economic pain that gets engineering attention very fast.\u003C\u002Fp>\u003Cp>I think this is the part people flatten into a feel-good open-source story, and that misses the real lesson. Google didn’t open-source Kubernetes because it was being generous in a vacuum. It did it because a free, trusted orchestration layer could pull more workloads into its cloud and strengthen the ecosystem around its own infrastructure business. That’s not cynical. That’s strategy.\u003C\u002Fp>\u003Cp>How to apply it: when you evaluate a platform, ask what business pressure created it. Tools built to solve an actual scaling or cost problem usually have sharper edges and better defaults than tools built to impress a conference audience. You want the thing that survived contact with real budgets.\u003C\u002Fp>\u003Cp>This also explains why Kubernetes got traction so quickly with cloud and platform vendors. It wasn’t just another abstraction. It was the shared coordination layer everyone could rally around without handing the entire stack to one vendor.\u003C\u002Fp>\u003Ch2>The CNCF mattered because it made Kubernetes feel less captive\u003C\u002Fh2>\u003Cblockquote>“Within a year—in July 2015—Google partnered with another leviathan of open source computing, the Linux Foundation, to start the vendor-neutral Cloud Native Computing Foundation (CNCF).”\u003C\u002Fblockquote>\u003Cp>What this actually means is Kubernetes needed institutional trust, not just code. A lot of teams will not bet their infrastructure on a project that feels like one company’s pet. The CNCF changed that perception by giving Kubernetes a neutral home and surrounding it with related projects.\u003C\u002Fp>\u003Cp>I’ve seen this exact trust problem in enterprise adoption. Engineers might like a tool, but procurement and platform leadership want to know what happens if the original vendor changes direction. The CNCF answered that concern by making the ecosystem feel wider than Google. That matters more than people like to admit.\u003C\u002Fp>\u003Cp>How to apply it: if you’re choosing between two similar systems, check who governs them, who contributes, and how easy it is to move away later. Governance is not a side note. It affects roadmap stability, support, and how scared your org will be when it signs the contract.\u003C\u002Fp>\u003Cp>The article’s point about the “K” ecosystem is also spot on. Once Kubernetes became the center of gravity, a whole family of tools formed around it. That’s not an accident. It’s what happens when a platform becomes the thing other tools assume exists.\u003C\u002Fp>\u003Ch2>Most Kubernetes pain comes from the fact that it works\u003C\u002Fh2>\u003Cblockquote>“And even without Red Hat and CNCF pouring resources into Kubernetes, the community would create all the tools that ease the pain of Kubernetes’s notoriously complex management.”\u003C\u002Fblockquote>\u003Cp>What this actually means is Kubernetes created its own gravity well. Once it became the default, people had to build tooling around it because the platform was now where the work lived. That’s why the ecosystem is so crowded with dashboards, operators, policy engines, ingress controllers, and helpers whose names all start with K.\u003C\u002Fp>\u003Cp>I’ve been around enough platform teams to know the pattern. The platform becomes popular, then the complexity shows up, then the ecosystem blooms around the complexity. That doesn’t mean the platform failed. It means it got adopted by real systems, which are always messier than the happy path.\u003C\u002Fp>\u003Cp>How to apply it: don’t expect Kubernetes to be simple. Expect it to be central. Then build guardrails. Use opinionated deployment standards, resource requests and limits, observability from day one, and a small set of blessed add-ons. The more freedom you give every team, the faster your cluster turns into a junk drawer.\u003C\u002Fp>\u003Cp>And yes, this is where I get a little frustrated with people who sell Kubernetes as if it removes ops work. It doesn’t. It shifts the work upward into policy, platform design, and cluster discipline. That’s still better than hand-managed fleets, but it is not magic.\u003C\u002Fp>\u003Ch2>The template you can copy\u003C\u002Fh2>\u003Cpre>\u003Ccode># Kubernetes adoption checklist for large-scale services\n\n## 1) Decide what state belongs in the cluster\n- Stateless app containers: yes\u002Fno\n- Persistent data: database, volume, object storage, or external service\n- Session state: cookie, cache, or shared store\n\n## 2) Define the desired state\n- Replicas: __\n- CPU request\u002Flimit: __ \u002F __\n- Memory request\u002Flimit: __ \u002F __\n- Pod disruption tolerance: __\n\n## 3) Add health and recovery rules\n- Liveness probe: __\n- Readiness probe: __\n- Restart policy: Always \u002F OnFailure \u002F Never\n- Pod replacement behavior: __\n\n## 4) Make scaling explicit\n- Scale metric: CPU \u002F memory \u002F queue depth \u002F latency \u002F custom metric\n- Scale-up threshold: __\n- Scale-down threshold: __\n- Minimum replicas: __\n- Maximum replicas: __\n\n## 5) Preserve data correctly\n- PersistentVolumeClaim name: __\n- Storage class: __\n- Backup method: __\n- Restore test frequency: __\n\n## 6) Keep service discovery boring\n- Service name: __\n- Port mapping: __\n- Internal DNS name: __\n- External ingress or load balancer: __\n\n## 7) Roll out changes safely\n- Deployment strategy: RollingUpdate \u002F BlueGreen \u002F Canary\n- Max unavailable: __\n- Max surge: __\n- Rollback trigger: __\n\n## 8) Add observability before traffic\n- Logs: __\n- Metrics: __\n- Alerts: __\n- Dashboard owner: __\n\n## 9) Enforce platform rules\n- Namespace policy: __\n- Resource quotas: __\n- Image source policy: __\n- Secret handling: __\n\n## 10) Test failure on purpose\n- Kill a pod: yes\u002Fno\n- Drain a node: yes\u002Fno\n- Break a dependency: yes\u002Fno\n- Verify recovery time: __\n\n## Short version\nIf the pod dies, the service stays up.\nIf traffic spikes, the cluster scales.\nIf data matters, it lives outside the pod.\nIf a release fails, rollback is automatic.\nIf someone asks how it works, the answer is in the manifest.\n\n## Minimal Kubernetes deployment skeleton\napiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: app\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: app\n  template:\n    metadata:\n      labels:\n        app: app\n    spec:\n      containers:\n        - name: app\n          image: your-registry\u002Fyour-image:tag\n          ports:\n            - containerPort: 8080\n          resources:\n            requests:\n              cpu: \"250m\"\n              memory: \"256Mi\"\n            limits:\n              cpu: \"500m\"\n              memory: \"512Mi\"\n          readinessProbe:\n            httpGet:\n              path: \u002Fhealthz\n              port: 8080\n            initialDelaySeconds: 5\n            periodSeconds: 10\n          livenessProbe:\n            httpGet:\n              path: \u002Flivez\n              port: 8080\n            initialDelaySeconds: 15\n            periodSeconds: 20\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>This is the version I wish more teams wrote down before they started “doing Kubernetes.” It forces the real decisions onto paper: what scales, what survives failure, what stores data, and what changes safely.\u003C\u002Fp>\u003Cp>Source note: the breakdown above is based on \u003Ca href=\"https:\u002F\u002Fwww.lpi.org\u002Fblog\u002F2026\u002F06\u002F05\u002Fhow-kubernetes-came-to-dominate-large-scale-computing-part-2\u002F\">Andrew Oram’s LPI article\u003C\u002Fa>, with my own operational commentary layered on top. The template is original and meant to be adapted, not copied as a claim about LPI’s wording or recommendations.\u003C\u002Fp>\u003Cp>If you want the original context, start with the LPI post and then trace the linked history around Docker, Google’s internal container work, and the CNCF. That trail tells the real story better than any slogan ever will.\u003C\u002Fp>","I break down how Kubernetes won by solving real ops pain, and give you a copy-ready orchestration template.","www.lpi.org","https:\u002F\u002Fwww.lpi.org\u002Fblog\u002F2026\u002F06\u002F05\u002Fhow-kubernetes-came-to-dominate-large-scale-computing-part-2\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781285606704-qzol.png","tools","en","a1e6c4e5-e265-4cdd-ad53-da0204132f44",[17,18,19,20,21],"kubernetes","containers","orchestration","cncf","devops",[23,24,25],"Kubernetes won by automating the operational chores containers exposed.","State, scaling, and failure handling matter more than container packaging.","A good Kubernetes setup is mostly policy, recovery, and storage discipline.",1,"2026-06-12T17:32:53.646476+00:00","2026-06-12T17:32:53.633+00:00","80003b4a-06cf-4058-b115-d1635e5b9eb2",{"tags":31,"relatedLang":40,"relatedPosts":44},[32,33,35,37,38],{"name":19,"slug":19},{"name":34,"slug":17},"Kubernetes",{"name":36,"slug":21},"DevOps",{"name":18,"slug":18},{"name":39,"slug":20},"CNCF",{"id":15,"slug":41,"title":42,"language":43},"kubernetes-turns-container-chaos-into-operations-zh","Kubernetes 把容器混亂變成營運","zh",[45,51,57,63,69,75],{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":13},"4543733b-22c2-4f7d-a115-038d4c542cd2","microsoft-build-2026-agents-into-systems-en","Microsoft Build 2026 turns agents into systems","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781329728835-fcsi.png","2026-06-13T05:48:22.073787+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"072db467-c073-42e5-b723-5b1888304902","mimo-v25-pro-turns-agent-work-into-one-api-call-en","MiMo-V2.5-Pro turns agent work into one API call","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781320696191-vzza.png","2026-06-13T03:17:48.852122+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"1e01a6f4-3f54-407d-a775-f9147de8b911","8-cursor-alternatives-that-fit-how-you-work-en","8 Cursor alternatives that fit how you work","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781312598893-8ox5.png","2026-06-13T01:02:56.581668+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"1a47f4ce-884c-4c5f-b5e1-2b117799fcce","ollama-default-local-ai-layer-en","Ollama is becoming the default local AI layer","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781310763401-cv9v.png","2026-06-13T00:32:16.812947+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"105a8ad6-b183-47dd-9a1d-536c6ba89371","songscription-turns-piano-audio-into-editable-sheet-music-en","Songscription turns piano audio into editable sheet music","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781288304586-nos2.png","2026-06-12T18:17:56.189061+00:00",{"id":76,"slug":77,"title":78,"cover_image":79,"image_url":79,"created_at":80,"category":13},"9732ff57-20bf-4d96-aab9-6433cf93a6fc","ios-27-turns-apple-music-into-smarter-player-en","iOS 27 turns Apple Music into a smarter player","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781287409882-9rve.png","2026-06-12T18:02:58.670536+00:00",[82,87,92,97,102,107,112,117,122,127],{"id":83,"slug":84,"title":85,"created_at":86},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":88,"slug":89,"title":90,"created_at":91},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"6d1bf3f6-e191-4d30-b55b-8a0722fa6afe","ai-trending-github-repos-and-research-feeds-en","AI Trending Tracks Repos and Research Feeds","2026-03-27T01:31:35.709532+00:00",{"id":128,"slug":129,"title":130,"created_at":131},"010539a1-4c3a-4bd3-937a-26616422ee0d","awesome-ai-for-science-research-tools-map-en","Awesome AI for Science Is Becoming a Real Research Map","2026-03-27T01:46:50.89513+00:00"]