{
  "categories": [
    {
      "id": "ai-models",
      "label_en": "AI models & research",
      "label_ja": "AI モデル・研究"
    },
    {
      "id": "ai-coding",
      "label_en": "AI coding tools",
      "label_ja": "AI コーディングツール"
    },
    {
      "id": "infra",
      "label_en": "Cloud & infrastructure",
      "label_ja": "クラウド・インフラ"
    },
    {
      "id": "languages",
      "label_en": "Languages & runtimes",
      "label_ja": "言語・ランタイム"
    },
    {
      "id": "frontend",
      "label_en": "Frontend",
      "label_ja": "フロントエンド"
    },
    {
      "id": "security",
      "label_en": "Security",
      "label_ja": "セキュリティ"
    },
    {
      "id": "companies",
      "label_en": "Company engineering blogs",
      "label_ja": "企業テックブログ"
    },
    {
      "id": "aggregators",
      "label_en": "Aggregators",
      "label_ja": "アグリゲータ"
    }
  ],
  "tags": [
    {
      "id": "claude",
      "group": "ai",
      "label_en": "Claude / Anthropic",
      "label_ja": "Claude・Anthropic"
    },
    {
      "id": "claude-code",
      "group": "ai",
      "label_en": "Claude Code",
      "label_ja": "Claude Code"
    },
    {
      "id": "openai",
      "group": "ai",
      "label_en": "OpenAI / Codex",
      "label_ja": "OpenAI・Codex"
    },
    {
      "id": "gemini",
      "group": "ai",
      "label_en": "Google AI / Gemini",
      "label_ja": "Google AI・Gemini"
    },
    {
      "id": "ai-coding",
      "group": "ai",
      "label_en": "AI coding tools",
      "label_ja": "AI コーディング全般"
    },
    {
      "id": "llm-research",
      "group": "ai",
      "label_en": "LLM research & open models",
      "label_ja": "LLM 研究・オープンモデル"
    },
    {
      "id": "react",
      "group": "web",
      "label_en": "React",
      "label_ja": "React"
    },
    {
      "id": "nextjs",
      "group": "web",
      "label_en": "Next.js",
      "label_ja": "Next.js"
    },
    {
      "id": "vue",
      "group": "web",
      "label_en": "Vue / Vite",
      "label_ja": "Vue・Vite"
    },
    {
      "id": "svelte",
      "group": "web",
      "label_en": "Svelte",
      "label_ja": "Svelte"
    },
    {
      "id": "astro",
      "group": "web",
      "label_en": "Astro",
      "label_ja": "Astro"
    },
    {
      "id": "css",
      "group": "web",
      "label_en": "CSS / Tailwind",
      "label_ja": "CSS・Tailwind"
    },
    {
      "id": "browsers",
      "group": "web",
      "label_en": "Browsers & web platform",
      "label_ja": "ブラウザ・Web 標準"
    },
    {
      "id": "typescript",
      "group": "languages",
      "label_en": "TypeScript",
      "label_ja": "TypeScript"
    },
    {
      "id": "nodejs",
      "group": "languages",
      "label_en": "Node.js / Bun / Deno",
      "label_ja": "Node.js・Bun・Deno"
    },
    {
      "id": "rust",
      "group": "languages",
      "label_en": "Rust",
      "label_ja": "Rust"
    },
    {
      "id": "go",
      "group": "languages",
      "label_en": "Go",
      "label_ja": "Go"
    },
    {
      "id": "python",
      "group": "languages",
      "label_en": "Python",
      "label_ja": "Python"
    },
    {
      "id": "ruby",
      "group": "languages",
      "label_en": "Ruby",
      "label_ja": "Ruby"
    },
    {
      "id": "php",
      "group": "languages",
      "label_en": "PHP",
      "label_ja": "PHP"
    },
    {
      "id": "swift",
      "group": "languages",
      "label_en": "Swift",
      "label_ja": "Swift"
    },
    {
      "id": "cloudflare",
      "group": "cloud",
      "label_en": "Cloudflare",
      "label_ja": "Cloudflare"
    },
    {
      "id": "vercel",
      "group": "cloud",
      "label_en": "Vercel",
      "label_ja": "Vercel"
    },
    {
      "id": "aws",
      "group": "cloud",
      "label_en": "AWS",
      "label_ja": "AWS"
    },
    {
      "id": "gcp",
      "group": "cloud",
      "label_en": "Google Cloud",
      "label_ja": "Google Cloud"
    },
    {
      "id": "github",
      "group": "cloud",
      "label_en": "GitHub",
      "label_ja": "GitHub"
    },
    {
      "id": "containers",
      "group": "cloud",
      "label_en": "Docker / Kubernetes",
      "label_ja": "Docker・Kubernetes"
    },
    {
      "id": "databases",
      "group": "cloud",
      "label_en": "Databases",
      "label_ja": "データベース"
    },
    {
      "id": "observability",
      "group": "cloud",
      "label_en": "Monitoring, IaC & hosting",
      "label_ja": "監視・IaC・ホスティング"
    },
    {
      "id": "security",
      "group": "security",
      "label_en": "Security",
      "label_ja": "セキュリティ"
    },
    {
      "id": "japan-tech",
      "group": "community",
      "label_en": "Japanese engineering blogs",
      "label_ja": "日本語テックブログ"
    },
    {
      "id": "global-tech",
      "group": "community",
      "label_en": "Engineering blogs (global)",
      "label_ja": "海外企業のテックブログ"
    },
    {
      "id": "zenn",
      "group": "community",
      "label_en": "Zenn trending",
      "label_ja": "Zenn トレンド"
    },
    {
      "id": "hatena",
      "group": "community",
      "label_en": "Hatena Bookmark (tech)",
      "label_ja": "はてなブックマーク"
    },
    {
      "id": "hacker-news",
      "group": "community",
      "label_en": "Hacker News",
      "label_ja": "Hacker News"
    }
  ],
  "packs": [
    {
      "id": "ai",
      "label_ja": "AI 派",
      "label_en": "AI news",
      "blurb_ja": "Anthropic・OpenAI・Google の一次情報を毎朝",
      "blurb_en": "First-party news from Anthropic, OpenAI and Google",
      "show_ja": "AI",
      "show_en": "AI",
      "feeds": [
        "Anthropic News",
        "Anthropic Engineering",
        "Claude Code",
        "OpenAI News",
        "Google Gemini"
      ]
    },
    {
      "id": "web",
      "label_ja": "Web・フロント派",
      "label_en": "Web & frontend",
      "blurb_ja": "Next.js・React・Vercel・ブラウザの動き",
      "blurb_en": "Next.js, React, Vercel and the browsers",
      "show_ja": "Web",
      "show_en": "Web",
      "feeds": [
        "Next.js",
        "React",
        "Vercel Changelog",
        "Chrome for Developers",
        "Tailwind CSS"
      ]
    },
    {
      "id": "infra",
      "label_ja": "クラウド・インフラ派",
      "label_en": "Cloud & infrastructure",
      "blurb_ja": "Cloudflare・GitHub・AWS・Kubernetes の変更点",
      "blurb_en": "What changed at Cloudflare, GitHub, AWS and Kubernetes",
      "show_ja": "インフラ",
      "show_en": "Infra",
      "feeds": [
        "Cloudflare Blog",
        "Cloudflare Changelog",
        "GitHub Changelog",
        "AWS Architecture Blog",
        "Kubernetes"
      ]
    },
    {
      "id": "languages",
      "label_ja": "言語派",
      "label_en": "Languages",
      "blurb_ja": "Rust・Go・TypeScript・Python の公式ブログ",
      "blurb_en": "The official Rust, Go, TypeScript and Python blogs",
      "show_ja": "言語",
      "show_en": "Dev",
      "feeds": [
        "Rust Blog",
        "Go Blog",
        "TypeScript",
        "Python Insider",
        "Node.js"
      ]
    },
    {
      "id": "japan",
      "label_ja": "日本語で追う派",
      "label_en": "Japanese tech",
      "blurb_ja": "Publickey・Zenn トレンド・企業テックブログ",
      "blurb_en": "Publickey, Zenn trending and Japanese engineering blogs",
      "show_ja": "日本語",
      "show_en": "Japan",
      "feeds": [
        "Publickey",
        "Zenn Trending",
        "メルカリ engineering",
        "LINE / LY Engineering",
        "Cybozu Engineering"
      ],
      "latest": [
        "Zenn Trending"
      ]
    }
  ],
  "feeds": [
    {
      "name": "Anthropic Engineering",
      "url": "https://www.anthropic.com/sitemap.xml",
      "type": "sitemap",
      "prefix": "https://www.anthropic.com/engineering/",
      "site": "https://www.anthropic.com/engineering",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "claude",
        "llm-research"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Anthropic News",
      "url": "https://www.anthropic.com/sitemap.xml",
      "type": "sitemap",
      "prefix": "https://www.anthropic.com/news/",
      "site": "https://www.anthropic.com/news",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "claude"
      ],
      "volume": "~60/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Google AI Blog",
      "url": "https://blog.google/technology/ai/rss/",
      "site": "https://blog.google/technology/ai/",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "gemini"
      ],
      "volume": "~15/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-13",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Google DeepMind",
      "url": "https://deepmind.google/blog/rss.xml",
      "site": "https://deepmind.google/discover/blog/",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "gemini",
        "llm-research"
      ],
      "volume": "~10/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Google Gemini",
      "url": "https://blog.google/products/gemini/rss/",
      "site": "https://blog.google/products/gemini/",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "gemini"
      ],
      "volume": "~15/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Hugging Face",
      "url": "https://huggingface.co/blog/feed.xml",
      "site": "https://huggingface.co/blog",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "llm-research"
      ],
      "volume": "~20/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "OpenAI News",
      "url": "https://openai.com/news/rss.xml",
      "site": "https://openai.com/news",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "openai"
      ],
      "source_mode": "text",
      "volume": "~60/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Simon Willison",
      "url": "https://simonwillison.net/atom/everything/",
      "site": "https://simonwillison.net/",
      "category": "ai-models",
      "kind": "blog",
      "language": "en",
      "tags": [
        "llm-research"
      ],
      "volume": "~80/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-17",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Antigravity",
      "url": "https://antigravity.google/sitemap.xml",
      "type": "sitemap",
      "prefix": "https://antigravity.google/blog/",
      "site": "https://antigravity.google/blog",
      "category": "ai-coding",
      "kind": "blog",
      "language": "en",
      "tags": [
        "ai-coding",
        "gemini"
      ],
      "volume": "unknown",
      "radio_friendly": "high",
      "has_timestamps": false,
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Claude Blog",
      "url": "https://claude.com/sitemap.xml",
      "type": "sitemap",
      "prefix": "https://claude.com/blog/",
      "site": "https://claude.com/blog",
      "category": "ai-coding",
      "kind": "blog",
      "language": "en",
      "tags": [
        "claude",
        "ai-coding"
      ],
      "volume": "~50/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-02",
      "status": "broken",
      "last_checked": "2026-10-18",
      "status_detail": "no URLs under prefix: https://claude.com/blog/"
    },
    {
      "name": "Claude Code",
      "url": "https://code.claude.com/docs/en/whats-new/rss.xml",
      "site": "https://code.claude.com/docs/en/whats-new",
      "category": "ai-coding",
      "kind": "release-notes",
      "language": "en",
      "tags": [
        "claude-code",
        "claude",
        "ai-coding"
      ],
      "volume": "~3/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-09-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Codex Changelog",
      "url": "https://developers.openai.com/codex/changelog/rss.xml",
      "site": "https://developers.openai.com/codex/changelog",
      "category": "ai-coding",
      "kind": "changelog",
      "language": "en",
      "tags": [
        "openai",
        "ai-coding"
      ],
      "volume": "~20/month",
      "radio_friendly": "low",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Cursor Changelog",
      "url": "https://cursor.com/changelog/rss.xml",
      "site": "https://cursor.com/changelog",
      "category": "ai-coding",
      "kind": "changelog",
      "language": "en",
      "tags": [
        "ai-coding"
      ],
      "volume": "~5/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "GitHub Copilot",
      "url": "https://github.blog/ai-and-ml/github-copilot/feed/",
      "site": "https://github.blog/ai-and-ml/github-copilot/",
      "category": "ai-coding",
      "kind": "blog",
      "language": "en",
      "tags": [
        "ai-coding",
        "github"
      ],
      "volume": "~7/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-12",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Zed",
      "url": "https://zed.dev/blog.rss",
      "site": "https://zed.dev/blog",
      "category": "ai-coding",
      "kind": "blog",
      "language": "en",
      "tags": [
        "ai-coding"
      ],
      "volume": "~2/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-09-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "AWS Architecture Blog",
      "url": "https://aws.amazon.com/blogs/architecture/feed/",
      "site": "https://aws.amazon.com/blogs/architecture/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "aws"
      ],
      "volume": "~20/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "AWS News",
      "url": "https://aws.amazon.com/about-aws/whats-new/recent/feed/",
      "site": "https://aws.amazon.com/new/",
      "category": "infra",
      "kind": "changelog",
      "language": "en",
      "tags": [
        "aws"
      ],
      "volume": "~250/month",
      "radio_friendly": "low",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Cloudflare Blog",
      "url": "https://blog.cloudflare.com/rss/",
      "site": "https://blog.cloudflare.com/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "cloudflare"
      ],
      "volume": "~40/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Cloudflare Changelog",
      "url": "https://developers.cloudflare.com/changelog/rss.xml",
      "site": "https://developers.cloudflare.com/changelog/",
      "category": "infra",
      "kind": "changelog",
      "language": "en",
      "tags": [
        "cloudflare"
      ],
      "volume": "~105/month",
      "radio_friendly": "low",
      "has_timestamps": true,
      "latest_post": "2026-10-17",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Docker",
      "url": "https://www.docker.com/blog/feed/",
      "site": "https://www.docker.com/blog/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "containers"
      ],
      "volume": "~15/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-08-31",
      "status": "blocked",
      "last_checked": "2026-10-18",
      "status_detail": "refuses automated clients (HTTP 403 from CI)"
    },
    {
      "name": "DuckDB",
      "url": "https://duckdb.org/feed.xml",
      "site": "https://duckdb.org/news/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "databases"
      ],
      "volume": "~15/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Fly.io",
      "url": "https://fly.io/blog/feed.xml",
      "site": "https://fly.io/blog/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "observability"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-09-03",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "GitHub Changelog",
      "url": "https://github.blog/changelog/feed/",
      "site": "https://github.blog/changelog/",
      "category": "infra",
      "kind": "changelog",
      "language": "en",
      "tags": [
        "github"
      ],
      "volume": "~100/month",
      "radio_friendly": "low",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Google Cloud Blog",
      "url": "https://cloudblog.withgoogle.com/rss/",
      "site": "https://cloud.google.com/blog",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "gcp"
      ],
      "volume": "~120/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Grafana",
      "url": "https://grafana.com/blog/index.xml",
      "site": "https://grafana.com/blog/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "observability"
      ],
      "volume": "~9/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "status": "ok",
      "last_checked": "2026-10-18",
      "latest_post": "2026-10-15"
    },
    {
      "name": "HashiCorp",
      "url": "https://www.hashicorp.com/blog/feed.xml",
      "site": "https://www.hashicorp.com/blog",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "observability"
      ],
      "volume": "~7/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-09",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Kubernetes",
      "url": "https://kubernetes.io/feed.xml",
      "site": "https://kubernetes.io/blog/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "containers"
      ],
      "volume": "~9/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-14",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "PlanetScale",
      "url": "https://planetscale.com/blog/rss.xml",
      "site": "https://planetscale.com/blog",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "databases"
      ],
      "volume": "~10/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-14",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Sentry",
      "url": "https://blog.sentry.io/feed.xml",
      "site": "https://blog.sentry.io/",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "observability"
      ],
      "volume": "~7/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-14",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Supabase",
      "url": "https://supabase.com/rss.xml",
      "site": "https://supabase.com/blog",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "databases"
      ],
      "volume": "~7/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Vercel Blog",
      "url": "https://vercel.com/blog/feed",
      "site": "https://vercel.com/blog",
      "category": "infra",
      "kind": "blog",
      "language": "en",
      "tags": [
        "vercel",
        "nextjs"
      ],
      "volume": "~110/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-17",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Vercel Changelog",
      "url": "https://vercel.com/atom",
      "same_as": "https://vercel.com/blog/feed",
      "site": "https://vercel.com/changelog",
      "category": "infra",
      "kind": "changelog",
      "language": "en",
      "tags": [
        "vercel",
        "nextjs"
      ],
      "volume": "~110/month",
      "radio_friendly": "low",
      "has_timestamps": true,
      "latest_post": "2026-10-17",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Bun",
      "url": "https://bun.sh/rss.xml",
      "site": "https://bun.sh/blog",
      "category": "languages",
      "kind": "blog",
      "language": "en",
      "tags": [
        "nodejs",
        "typescript"
      ],
      "volume": "~2/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-10",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Deno",
      "url": "https://deno.com/feed",
      "site": "https://deno.com/blog",
      "category": "languages",
      "kind": "blog",
      "language": "en",
      "tags": [
        "nodejs",
        "typescript"
      ],
      "volume": "~4/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-09",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Go Blog",
      "url": "https://go.dev/blog/feed.atom",
      "site": "https://go.dev/blog/",
      "category": "languages",
      "kind": "blog",
      "language": "en",
      "tags": [
        "go"
      ],
      "volume": "~4/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Node.js",
      "url": "https://nodejs.org/en/feed/blog.xml",
      "site": "https://nodejs.org/en/blog",
      "category": "languages",
      "kind": "release-notes",
      "language": "en",
      "tags": [
        "nodejs"
      ],
      "volume": "~8/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-14",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "PHP",
      "url": "https://www.php.net/feed.atom",
      "site": "https://www.php.net/",
      "category": "languages",
      "kind": "release-notes",
      "language": "en",
      "tags": [
        "php"
      ],
      "volume": "~9/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-08",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Python Insider",
      "url": "https://blog.python.org/feeds/posts/default",
      "site": "https://blog.python.org/",
      "category": "languages",
      "kind": "release-notes",
      "language": "en",
      "tags": [
        "python"
      ],
      "volume": "~9/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-13",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Ruby",
      "url": "https://www.ruby-lang.org/en/feeds/news.rss",
      "site": "https://www.ruby-lang.org/en/news/",
      "category": "languages",
      "kind": "release-notes",
      "language": "en",
      "tags": [
        "ruby"
      ],
      "volume": "~2/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-12",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Rust Blog",
      "url": "https://blog.rust-lang.org/feed.xml",
      "site": "https://blog.rust-lang.org/",
      "category": "languages",
      "kind": "blog",
      "language": "en",
      "tags": [
        "rust"
      ],
      "volume": "~6/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Swift",
      "url": "https://www.swift.org/atom.xml",
      "site": "https://www.swift.org/blog/",
      "category": "languages",
      "kind": "blog",
      "language": "en",
      "tags": [
        "swift"
      ],
      "volume": "~3/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-08",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "TypeScript",
      "url": "https://devblogs.microsoft.com/typescript/feed/",
      "site": "https://devblogs.microsoft.com/typescript/",
      "category": "languages",
      "kind": "blog",
      "language": "en",
      "tags": [
        "typescript"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-07-08",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Astro",
      "url": "https://astro.build/rss.xml",
      "site": "https://astro.build/blog/",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "astro"
      ],
      "volume": "~3/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Chrome for Developers",
      "url": "https://developer.chrome.com/static/blog/feed.xml",
      "site": "https://developer.chrome.com/blog",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "browsers"
      ],
      "volume": "~9/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-07",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Mozilla Hacks",
      "url": "https://hacks.mozilla.org/feed/",
      "site": "https://hacks.mozilla.org/",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "browsers"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-08-24",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Next.js",
      "url": "https://nextjs.org/feed.xml",
      "site": "https://nextjs.org/blog",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "nextjs",
        "react",
        "vercel"
      ],
      "volume": "~6/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "React",
      "url": "https://react.dev/rss.xml",
      "site": "https://react.dev/blog",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "react"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-09-09",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Svelte",
      "url": "https://svelte.dev/blog/rss.xml",
      "site": "https://svelte.dev/blog",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "svelte"
      ],
      "volume": "~2/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-01",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Tailwind CSS",
      "url": "https://tailwindcss.com/feeds/feed.xml",
      "site": "https://tailwindcss.com/blog",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "css"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-09-09",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Vite",
      "url": "https://vite.dev/blog.rss",
      "site": "https://vite.dev/blog",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "vue"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-06-23",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Vue.js",
      "url": "https://blog.vuejs.org/feed.rss",
      "site": "https://blog.vuejs.org/",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "vue"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2024-09-01",
      "status": "stale",
      "last_checked": "2026-10-18",
      "status_detail": "no new posts for 777 days"
    },
    {
      "name": "WebKit",
      "url": "https://webkit.org/feed/",
      "site": "https://webkit.org/blog/",
      "category": "frontend",
      "kind": "blog",
      "language": "en",
      "tags": [
        "browsers"
      ],
      "volume": "~4/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-08",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Cloudflare Security",
      "url": "https://blog.cloudflare.com/tag/security/rss/",
      "site": "https://blog.cloudflare.com/tag/security/",
      "category": "security",
      "kind": "blog",
      "language": "en",
      "tags": [
        "security",
        "cloudflare"
      ],
      "volume": "~10/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "GitHub Security",
      "url": "https://github.blog/security/feed/",
      "site": "https://github.blog/security/",
      "category": "security",
      "kind": "blog",
      "language": "en",
      "tags": [
        "security",
        "github"
      ],
      "volume": "~3/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-13",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Google Project Zero",
      "url": "https://googleprojectzero.blogspot.com/feeds/posts/default",
      "site": "https://googleprojectzero.blogspot.com/",
      "category": "security",
      "kind": "blog",
      "language": "en",
      "tags": [
        "security"
      ],
      "volume": "~2/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-06",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Google Security Blog",
      "url": "https://security.googleblog.com/feeds/posts/default",
      "site": "https://security.googleblog.com/",
      "category": "security",
      "kind": "blog",
      "language": "en",
      "tags": [
        "security"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-04-23",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Rust Security Advisories",
      "url": "https://rustsec.org/feed.xml",
      "site": "https://rustsec.org/advisories/",
      "category": "security",
      "kind": "changelog",
      "language": "en",
      "tags": [
        "security",
        "rust"
      ],
      "volume": "~250/month",
      "radio_friendly": "low",
      "has_timestamps": true,
      "latest_post": "2026-10-17",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Cybozu Engineering",
      "url": "https://blog.cybozu.io/feed",
      "site": "https://blog.cybozu.io/",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~10/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-14",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "DeNA Engineering",
      "url": "https://engineering.dena.com/index.xml",
      "site": "https://engineering.dena.com/",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~8/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-12",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Discord Engineering",
      "url": "https://discord.com/blog/rss.xml",
      "site": "https://discord.com/category/engineering",
      "category": "companies",
      "kind": "blog",
      "language": "en",
      "tags": [
        "global-tech"
      ],
      "volume": "~5/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-06",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Dropbox Tech",
      "url": "https://dropbox.tech/feed",
      "site": "https://dropbox.tech/",
      "category": "companies",
      "kind": "blog",
      "language": "en",
      "tags": [
        "global-tech"
      ],
      "volume": "~2/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-09-29",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Figma Engineering",
      "url": "https://www.figma.com/blog/feed/atom.xml",
      "site": "https://www.figma.com/blog/engineering/",
      "category": "companies",
      "kind": "blog",
      "language": "en",
      "tags": [
        "global-tech"
      ],
      "volume": "~15/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "freee Developers Hub",
      "url": "https://developers.freee.co.jp/feed",
      "site": "https://developers.freee.co.jp/",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~6/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-14",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "LINE / LY Engineering",
      "url": "https://techblog.lycorp.co.jp/ja/feed/index.xml",
      "site": "https://techblog.lycorp.co.jp/ja",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~10/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-15",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Netflix Tech Blog",
      "url": "https://netflixtechblog.com/feed",
      "site": "https://netflixtechblog.com/",
      "category": "companies",
      "kind": "blog",
      "language": "en",
      "tags": [
        "global-tech"
      ],
      "volume": "~100/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Shopify Engineering",
      "url": "https://shopify.engineering/blog.atom",
      "site": "https://shopify.engineering/",
      "category": "companies",
      "kind": "blog",
      "language": "en",
      "tags": [
        "global-tech"
      ],
      "volume": "~3/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-01",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Slack Engineering",
      "url": "https://slack.engineering/feed/",
      "site": "https://slack.engineering/",
      "category": "companies",
      "kind": "blog",
      "language": "en",
      "tags": [
        "global-tech"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-07-14",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "SmartHR Tech Blog",
      "url": "https://tech.smarthr.jp/feed",
      "site": "https://tech.smarthr.jp/",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~20/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Stripe Engineering",
      "url": "https://stripe.com/blog/feed.rss",
      "site": "https://stripe.com/blog/engineering",
      "category": "companies",
      "kind": "blog",
      "language": "en",
      "tags": [
        "global-tech"
      ],
      "volume": "~10/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "ZOZO TECH BLOG",
      "url": "https://techblog.zozo.com/feed",
      "site": "https://techblog.zozo.com/",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~15/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-16",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "クックパッド開発者ブログ",
      "url": "https://techlife.cookpad.com/feed",
      "site": "https://techlife.cookpad.com/",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "<1/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-09-02",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "メルカリ engineering",
      "url": "https://engineering.mercari.com/blog/feed.xml",
      "site": "https://engineering.mercari.com/blog/",
      "category": "companies",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~8/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-08-20",
      "status": "blocked",
      "last_checked": "2026-10-18",
      "status_detail": "refuses automated clients (HTTP 403 from CI)"
    },
    {
      "name": "Hacker News Front Page",
      "url": "https://hnrss.org/frontpage",
      "site": "https://news.ycombinator.com/",
      "category": "aggregators",
      "kind": "blog",
      "language": "en",
      "tags": [
        "hacker-news"
      ],
      "volume": "~600/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-18",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Publickey",
      "url": "https://www.publickey1.jp/atom.xml",
      "site": "https://www.publickey1.jp/",
      "category": "aggregators",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "japan-tech"
      ],
      "volume": "~30/month",
      "radio_friendly": "high",
      "has_timestamps": true,
      "latest_post": "2026-10-17",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "Zenn Trending",
      "url": "https://zenn.dev/feed",
      "site": "https://zenn.dev/",
      "category": "aggregators",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "zenn",
        "japan-tech"
      ],
      "volume": "~120/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-18",
      "status": "ok",
      "last_checked": "2026-10-18"
    },
    {
      "name": "はてなブックマーク テクノロジー",
      "url": "https://b.hatena.ne.jp/hotentry/it.rss",
      "site": "https://b.hatena.ne.jp/hotentry/it",
      "category": "aggregators",
      "kind": "blog",
      "language": "ja",
      "tags": [
        "hatena",
        "japan-tech"
      ],
      "volume": "~450/month",
      "radio_friendly": "medium",
      "has_timestamps": true,
      "latest_post": "2026-10-18",
      "status": "ok",
      "last_checked": "2026-10-18"
    }
  ]
}
