{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "krowdev",
  "home_page_url": "https://krowdev.com/",
  "feed_url": "https://krowdev.com/feed.json",
  "description": "Dev notes, Astro tutorials, and agentic coding patterns.",
  "language": "en",
  "authors": [
    {
      "name": "krow",
      "url": "https://krowdev.com/about/"
    }
  ],
  "items": [
    {
      "id": "https://krowdev.com/snippet/pipeline-stage-communication/",
      "url": "https://krowdev.com/snippet/pipeline-stage-communication/",
      "title": "Pipeline Stage Communication",
      "summary": "Patterns for connecting independent pipeline stages via message queues — decoupled producers and consumers with batch collection and backpressure.",
      "date_published": "2026-04-07T00:00:00.000Z",
      "date_modified": "2026-04-10T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "architecture",
        "patterns"
      ],
      "_krowdev": {
        "kind": "snippet",
        "origin": "ai-drafted",
        "maturity": "seedling",
        "markdown_url": "https://krowdev.com/snippet/pipeline-stage-communication.md"
      }
    },
    {
      "id": "https://krowdev.com/snippet/worker-pool-isolation/",
      "url": "https://krowdev.com/snippet/worker-pool-isolation/",
      "title": "Worker Pool Isolation Pattern",
      "summary": "Separate worker pools per task type so a slow or failing dependency can't starve unrelated work — the bulkhead pattern applied to concurrent processing.",
      "date_published": "2026-04-07T00:00:00.000Z",
      "date_modified": "2026-04-10T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "architecture",
        "concurrency"
      ],
      "_krowdev": {
        "kind": "snippet",
        "origin": "ai-drafted",
        "maturity": "seedling",
        "markdown_url": "https://krowdev.com/snippet/worker-pool-isolation.md"
      }
    },
    {
      "id": "https://krowdev.com/note/domain-registration-icann-to-browser/",
      "url": "https://krowdev.com/note/domain-registration-icann-to-browser/",
      "title": "Domain Registration: From ICANN to Your Browser",
      "summary": "How domains move from ICANN through registries and registrars — the three-tier model, EPP, lifecycle states, and what happens when a domain drops.",
      "date_published": "2026-03-29T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "dns",
        "web-infrastructure",
        "fundamentals"
      ],
      "_krowdev": {
        "kind": "note",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/note/domain-registration-icann-to-browser.md"
      }
    },
    {
      "id": "https://krowdev.com/article/go-dns-scanner-4000qps/",
      "url": "https://krowdev.com/article/go-dns-scanner-4000qps/",
      "title": "Building a High-Throughput DNS Scanner in Go",
      "summary": "From 160 qps to 4000+ by moving the hot path into Go — eliminating shared state, per-goroutine connections, and lessons from massdns and zdns.",
      "date_published": "2026-03-29T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "go",
        "dns",
        "architecture",
        "performance"
      ],
      "_krowdev": {
        "kind": "article",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/article/go-dns-scanner-4000qps.md"
      }
    },
    {
      "id": "https://krowdev.com/note/multi-agent-coordination-without-llm/",
      "url": "https://krowdev.com/note/multi-agent-coordination-without-llm/",
      "title": "Multi-Agent Coordination Without an LLM",
      "summary": "A deterministic coordinator for parallel AI agents — goals, budgets, feedback loops, and redirect signals without LLM judgment in the control plane.",
      "date_published": "2026-03-29T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "ai",
        "agents",
        "architecture"
      ],
      "_krowdev": {
        "kind": "note",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/note/multi-agent-coordination-without-llm.md"
      }
    },
    {
      "id": "https://krowdev.com/note/tls-fingerprinting-curl-cffi/",
      "url": "https://krowdev.com/note/tls-fingerprinting-curl-cffi/",
      "title": "TLS Fingerprinting with curl_cffi",
      "summary": "How curl_cffi impersonates browser TLS and HTTP/2 fingerprints in Python — what it handles automatically and the one header you still need to set.",
      "date_published": "2026-03-29T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "python",
        "security",
        "fingerprinting"
      ],
      "_krowdev": {
        "kind": "note",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/note/tls-fingerprinting-curl-cffi.md"
      }
    },
    {
      "id": "https://krowdev.com/note/aimd-rate-limiting/",
      "url": "https://krowdev.com/note/aimd-rate-limiting/",
      "title": "AIMD Rate Limiting for API Clients",
      "summary": "TCP congestion control applied to API rate limiting — additive increase on success, multiplicative decrease on errors. Finds the limit automatically.",
      "date_published": "2026-03-28T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-assisted, by krow"
        }
      ],
      "tags": [
        "networking",
        "rate-limiting",
        "algorithms"
      ],
      "_krowdev": {
        "kind": "note",
        "origin": "ai-assisted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/note/aimd-rate-limiting.md"
      }
    },
    {
      "id": "https://krowdev.com/article/bot-detection-2026/",
      "url": "https://krowdev.com/article/bot-detection-2026/",
      "title": "How Websites Detect Bots in 2026",
      "summary": "How Cloudflare, Akamai, and DataDome detect bots — from TCP SYN fingerprints through TLS handshakes to HTTP/2 SETTINGS. Based on empirical captures.",
      "date_published": "2026-03-28T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "security",
        "web",
        "fingerprinting",
        "anti-detection"
      ],
      "_krowdev": {
        "kind": "article",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/article/bot-detection-2026.md"
      }
    },
    {
      "id": "https://krowdev.com/guide/dns-resolution-full-picture/",
      "url": "https://krowdev.com/guide/dns-resolution-full-picture/",
      "title": "DNS Resolution: The Full Picture",
      "summary": "How DNS resolution works — root servers, TLD nameservers, record types, response codes, zone files, and why queries are nearly invisible.",
      "date_published": "2026-03-28T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "dns",
        "networking",
        "fundamentals"
      ],
      "_krowdev": {
        "kind": "guide",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/guide/dns-resolution-full-picture.md"
      }
    },
    {
      "id": "https://krowdev.com/article/parallel-ai-research-pipelines/",
      "url": "https://krowdev.com/article/parallel-ai-research-pipelines/",
      "title": "Parallel AI Research Pipelines",
      "summary": "Three systems for orchestrating parallel AI agents — JSONL work items, declarative workspaces, and phased research pipelines.",
      "date_published": "2026-03-28T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-assisted, by krow"
        }
      ],
      "tags": [
        "agentic-coding",
        "patterns",
        "templates"
      ],
      "_krowdev": {
        "kind": "article",
        "origin": "ai-assisted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/article/parallel-ai-research-pipelines.md"
      }
    },
    {
      "id": "https://krowdev.com/note/whois-dead-long-live-rdap/",
      "url": "https://krowdev.com/note/whois-dead-long-live-rdap/",
      "title": "WHOIS Is Dead, Long Live RDAP",
      "summary": "ICANN sunsetted WHOIS in January 2025. RDAP replaced it — structured JSON over HTTPS instead of plaintext over TCP. Here's what changed and why it matters.",
      "date_published": "2026-03-28T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "dns",
        "protocols",
        "web-infrastructure"
      ],
      "_krowdev": {
        "kind": "note",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/note/whois-dead-long-live-rdap.md"
      }
    },
    {
      "id": "https://krowdev.com/guide/claude-md-patterns/",
      "url": "https://krowdev.com/guide/claude-md-patterns/",
      "title": "Writing an Effective CLAUDE.md",
      "summary": "Patterns for project instruction files that actually change how AI agents behave — boundaries, conventions, and the rules that matter.",
      "date_published": "2026-03-21T00:00:00.000Z",
      "date_modified": "2026-04-10T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "agentic-coding",
        "patterns"
      ],
      "_krowdev": {
        "kind": "guide",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/guide/claude-md-patterns.md"
      }
    },
    {
      "id": "https://krowdev.com/guide/reviewing-ai-generated-code/",
      "url": "https://krowdev.com/guide/reviewing-ai-generated-code/",
      "title": "Reviewing AI-Generated Code",
      "summary": "A checklist and mental model for reviewing code you didn't write — what to look for when your coding agent hands back a diff.",
      "date_published": "2026-03-21T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "agentic-coding",
        "patterns"
      ],
      "_krowdev": {
        "kind": "guide",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/guide/reviewing-ai-generated-code.md"
      }
    },
    {
      "id": "https://krowdev.com/article/building-krowdev-with-agents/",
      "url": "https://krowdev.com/article/building-krowdev-with-agents/",
      "title": "What I Learned Building krowdev with AI Agents",
      "summary": "Honest retrospective on building a developer knowledge base entirely with AI coding agents — what worked, what didn't, and what I'd do differently.",
      "date_published": "2026-03-20T00:00:00.000Z",
      "date_modified": "2026-04-10T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "agentic-coding",
        "meta"
      ],
      "_krowdev": {
        "kind": "article",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/article/building-krowdev-with-agents.md"
      }
    },
    {
      "id": "https://krowdev.com/snippet/git-commands-i-use/",
      "url": "https://krowdev.com/snippet/git-commands-i-use/",
      "title": "Git Commands I Actually Use",
      "summary": "The 20% of git that covers 95% of daily work — no theory, just commands.",
      "date_published": "2026-03-20T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "git",
        "reference"
      ],
      "_krowdev": {
        "kind": "snippet",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/snippet/git-commands-i-use.md"
      }
    },
    {
      "id": "https://krowdev.com/snippet/http-status-codes/",
      "url": "https://krowdev.com/snippet/http-status-codes/",
      "title": "HTTP Status Codes That Actually Matter",
      "summary": "The 15 HTTP status codes you'll actually encounter in web development, with one-sentence real-world explanations.",
      "date_published": "2026-03-20T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "networking",
        "reference"
      ],
      "_krowdev": {
        "kind": "snippet",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/snippet/http-status-codes.md"
      }
    },
    {
      "id": "https://krowdev.com/snippet/interactive-features-showcase/",
      "url": "https://krowdev.com/snippet/interactive-features-showcase/",
      "title": "Interactive Features Showcase",
      "summary": "All the interactive components, code features, and eye candy available in krowdev articles.",
      "date_published": "2026-03-17T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-assisted, by krow"
        }
      ],
      "tags": [
        "astro",
        "reference"
      ],
      "_krowdev": {
        "kind": "snippet",
        "origin": "ai-assisted",
        "maturity": "evergreen",
        "markdown_url": "https://krowdev.com/snippet/interactive-features-showcase.md"
      }
    },
    {
      "id": "https://krowdev.com/guide/agentic-coding-getting-started/",
      "url": "https://krowdev.com/guide/agentic-coding-getting-started/",
      "title": "Getting Started with Agentic Coding",
      "summary": "What agentic coding is, why it matters, and how to start using AI coding agents effectively.",
      "date_published": "2026-03-15T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "agentic-coding",
        "fundamentals"
      ],
      "_krowdev": {
        "kind": "guide",
        "origin": "ai-drafted",
        "maturity": "budding",
        "markdown_url": "https://krowdev.com/guide/agentic-coding-getting-started.md"
      }
    },
    {
      "id": "https://krowdev.com/guide/astro-mental-model/",
      "url": "https://krowdev.com/guide/astro-mental-model/",
      "title": "The Mental Model",
      "summary": "What Astro actually is — a compiler, not a server. The single concept that makes everything else click.",
      "date_published": "2026-03-15T00:00:00.000Z",
      "authors": [
        {
          "name": "AI-drafted, directed by krow"
        }
      ],
      "tags": [
        "astro",
        "fundamentals"
      ],
      "_krowdev": {
        "kind": "guide",
        "origin": "ai-drafted",
        "maturity": "evergreen",
        "markdown_url": "https://krowdev.com/guide/astro-mental-model.md"
      }
    }
  ]
}