{
  "site": "join.dev",
  "episodes": [
    {
      "slug": "agent-runaway-cost",
      "series": "visual-shorts",
      "format": "short",
      "style": "cinematic",
      "kind": "failure",
      "track": "agents",
      "title": "The Runaway Agent",
      "hook": "Your agent looped all night. $10k gone.",
      "oneLiner": "An agent loop with no step cap and no budget can retry a failing tool all night, and because every call resends a growing context, the bill grows faster than the number of steps.",
      "length": "52 sec",
      "published": "2026-09-27",
      "url": "https://join.dev/episodes/agent-runaway-cost/",
      "image": "https://join.dev/images/episodes/agent-runaway-cost.webp",
      "youtube": "https://youtu.be/xMhIhEBypqo"
    },
    {
      "slug": "agent-memory-deep-dive",
      "series": "visual-deep-dive",
      "format": "deep-dive",
      "style": "cinematic",
      "kind": "failure",
      "track": "agents",
      "title": "Building Memory for AI Agents",
      "hook": "Your agent remembered the wrong version of you.",
      "oneLiner": "Useful agent memory is a small, scoped, revisable set of evidence: capture what matters, retrieve it when relevant, and retire it when the world changes.",
      "length": "6 min",
      "published": "2026-09-27",
      "url": "https://join.dev/episodes/agent-memory-deep-dive/",
      "image": "https://join.dev/images/episodes/agent-memory-deep-dive.webp",
      "youtube": "https://youtu.be/UX0h6DmnShE"
    },
    {
      "slug": "autonomous-coding-agent-workspace-deep-dive",
      "series": "deep-dive",
      "format": "deep-dive",
      "style": "diagram",
      "kind": "failure",
      "track": "agents",
      "title": "Autonomous Coding Agents",
      "hook": "The hard part is not writing code. It is proving the change is safe.",
      "oneLiner": "An autonomous coding agent is a controlled loop: it reads a bounded task, observes a real repository, makes small changes, proves them with tests, and hands a reviewable pull request back to a human.",
      "length": "4 min",
      "published": "2026-09-27",
      "url": "https://join.dev/episodes/autonomous-coding-agent-workspace-deep-dive/",
      "image": "https://join.dev/images/episodes/autonomous-coding-agent-workspace-deep-dive.webp",
      "youtube": "https://youtu.be/TVGdSsxQ1Mc"
    },
    {
      "slug": "durable-agent-actions-deep-dive",
      "series": "visual-deep-dive",
      "format": "deep-dive",
      "style": "cinematic",
      "kind": "failure",
      "track": "agents",
      "title": "Why AI Agents Act Twice",
      "hook": "The tool succeeded. Your agent did it again.",
      "oneLiner": "Recover recorded progress, reuse the business action identity, and enforce deduplication where the effect happens.",
      "length": "5 min",
      "published": "2026-09-27",
      "url": "https://join.dev/episodes/durable-agent-actions-deep-dive/",
      "image": "https://join.dev/images/hero.webp",
      "youtube": null
    },
    {
      "slug": "mcp-tool-poisoning",
      "series": "visual-shorts",
      "format": "short",
      "style": "cinematic",
      "kind": "failure",
      "track": "security",
      "title": "MCP Tool Poisoning",
      "hook": "One bad tool can leak all your keys.",
      "oneLiner": "An MCP tool's description is part of the prompt, so a poisoned description can order your agent to leak your secrets.",
      "length": "45 sec",
      "published": "2026-09-26",
      "url": "https://join.dev/episodes/mcp-tool-poisoning/",
      "image": "https://join.dev/images/episodes/mcp-tool-poisoning.webp",
      "youtube": "https://youtu.be/P_rjxXiqovc"
    },
    {
      "slug": "jev-vs-laya",
      "series": "visual-shorts",
      "format": "short",
      "style": "cinematic",
      "kind": "advantages",
      "track": "decisions",
      "title": "Jev vs Laya",
      "hook": "Same idea. One closed, one open.",
      "oneLiner": "Jev and Laya both return typed decisions instead of text; pick Laya when labels are few, latency is tight and data must stay home, pick Jev when label sets are large and you want zero ops, and keep an LLM for open-ended work.",
      "length": "56 sec",
      "published": "2026-09-26",
      "url": "https://join.dev/episodes/jev-vs-laya/",
      "image": "https://join.dev/images/episodes/jev-vs-laya.webp",
      "youtube": "https://youtu.be/Kp22EHJpnts"
    },
    {
      "slug": "jev-decision-model",
      "series": "shorts",
      "format": "short",
      "style": "diagram",
      "kind": "advantages",
      "track": "decisions",
      "title": "Jev: Decisions, Not Text",
      "hook": "Stop parsing LLM prose just to get a yes or no.",
      "oneLiner": "When the answer set is known in advance, a decision model like Jev returns a typed, confident pick your code can branch on directly, faster and cheaper than an LLM, which leaves the LLM free for real reasoning.",
      "length": "54 sec",
      "published": "2026-09-26",
      "url": "https://join.dev/episodes/jev-decision-model/",
      "image": "https://join.dev/images/episodes/jev-decision-model.webp",
      "youtube": "https://youtu.be/B0rHJLILx_8"
    },
    {
      "slug": "context-engineering-deep-dive",
      "series": "visual-deep-dive",
      "format": "deep-dive",
      "style": "cinematic",
      "kind": "failure",
      "track": "agents",
      "title": "Context Engineering for AI Agents",
      "hook": "Brilliant at step one. By step forty, your agent forgot the task.",
      "oneLiner": "An agent is only as smart as its context window: treat the window as a budget, and write, select, compress and isolate what goes into it at every step.",
      "length": "7 min",
      "published": "2026-09-26",
      "url": "https://join.dev/episodes/context-engineering-deep-dive/",
      "image": "https://join.dev/images/episodes/context-engineering-deep-dive.webp",
      "youtube": "https://youtu.be/qODoxvg6gig"
    },
    {
      "slug": "jev-vs-llm-deep-dive",
      "series": "deep-dive",
      "format": "deep-dive",
      "style": "diagram",
      "kind": "failure",
      "track": "decisions",
      "title": "Jev vs LLM: Decide or Generate",
      "hook": "Many LLM calls are decisions dressed up as text.",
      "oneLiner": "If you can list every valid answer in advance, make it a typed decision from a decision model, and save the LLM for work that needs open-ended reasoning or writing.",
      "length": "8 min",
      "published": "2026-09-26",
      "url": "https://join.dev/episodes/jev-vs-llm-deep-dive/",
      "image": "https://join.dev/images/episodes/jev-vs-llm-deep-dive.webp",
      "youtube": "https://youtu.be/CZQ1RwO0coQ"
    },
    {
      "slug": "refresh-token-replay",
      "series": "shorts",
      "format": "short",
      "style": "diagram",
      "kind": "failure",
      "track": "security",
      "title": "Refresh Token Replay",
      "hook": "Someone else is using your AI agent's keys.",
      "oneLiner": "A stolen refresh token is a working copy of your agent's identity — rotate on every use, revoke the family on reuse, and bind tokens to the client.",
      "length": "50 sec",
      "published": "2026-09-24",
      "url": "https://join.dev/episodes/refresh-token-replay/",
      "image": "https://join.dev/images/episodes/refresh-token-replay.webp",
      "youtube": null
    },
    {
      "slug": "post-filter-rag-leaks",
      "series": "shorts",
      "format": "short",
      "style": "diagram",
      "kind": "failure",
      "track": "rag",
      "title": "Post-Filter RAG Leaks",
      "hook": "Your RAG bot just leaked salaries.",
      "oneLiner": "If you check permissions *after* retrieval, the LLM has already read the secret — pre-filter by ACL inside the search.",
      "length": "45 sec",
      "published": "2026-09-24",
      "url": "https://join.dev/episodes/post-filter-rag-leaks/",
      "image": "https://join.dev/images/episodes/post-filter-rag-leaks.webp",
      "youtube": null
    },
    {
      "slug": "nextjs-edge-rendering-trap",
      "series": "shorts",
      "format": "short",
      "style": "diagram",
      "kind": "failure",
      "track": "edge",
      "title": "Edge Rendering Trap",
      "hook": "Edge rendering made your AI app slower.",
      "oneLiner": "Edge rendering is only fast when the data is at the edge too. If every render awaits a database and an LLM in one far-away region, render next to the data instead.",
      "length": "56 sec",
      "published": "2026-09-24",
      "url": "https://join.dev/episodes/nextjs-edge-rendering-trap/",
      "image": "https://join.dev/images/episodes/nextjs-edge-rendering-trap.webp",
      "youtube": null
    },
    {
      "slug": "cdn-cache-stampede",
      "series": "shorts",
      "format": "short",
      "style": "diagram",
      "kind": "failure",
      "track": "edge",
      "title": "CDN Cache Stampede",
      "hook": "One cache expiry just took down your AI app.",
      "oneLiner": "A CDN protects your expensive origin only while the cache is warm. When a hot key expires, collapse the misses into one fetch and serve stale content while it refreshes.",
      "length": "55 sec",
      "published": "2026-09-24",
      "url": "https://join.dev/episodes/cdn-cache-stampede/",
      "image": "https://join.dev/images/episodes/cdn-cache-stampede.webp",
      "youtube": "https://youtu.be/4afI6N0HKcY"
    },
    {
      "slug": "cdn-edge-latency-deep-dive",
      "series": "deep-dive",
      "format": "deep-dive",
      "style": "diagram",
      "kind": "failure",
      "track": "edge",
      "title": "Why CDNs Make Far Servers Fast",
      "hook": "Your server is 13,000 km away. Every hello pays for it.",
      "oneLiner": "Light can't go faster, so a CDN makes the trips across the planet shorter and fewer.",
      "length": "7 min",
      "published": "2026-09-24",
      "url": "https://join.dev/episodes/cdn-edge-latency-deep-dive/",
      "image": "https://join.dev/images/episodes/cdn-edge-latency-deep-dive.webp",
      "youtube": "https://youtu.be/AZv7A2_AQIE"
    },
    {
      "slug": "semantic-cache-deep-dive",
      "series": "deep-dive",
      "format": "deep-dive",
      "style": "diagram",
      "kind": "failure",
      "track": "rag",
      "title": "Semantic Caching for LLMs",
      "hook": "Your AI cache just answered the wrong customer.",
      "oneLiner": "A semantic cache is only as safe as its key: key on meaning alone and it serves wrong answers and leaks data across tenants.",
      "length": "6 min",
      "published": "2026-09-24",
      "url": "https://join.dev/episodes/semantic-cache-deep-dive/",
      "image": "https://join.dev/images/episodes/semantic-cache-deep-dive.webp",
      "youtube": null
    }
  ]
}