{"adoption": {"forks": 153, "observed_at": "2026-08-28T04:08:15.470702+00:00", "stars": 3722}, "canonical_url": "https://ross.abutalabs.com/products/grammy", "card": {"archived": false, "artifact_type": "framework", "description": "The Telegram Bot Framework.", "domain": ["chatbots", "messaging-platforms", "developer-tools", "apis"], "enriched": true, "function": ["web-framework", "chatbot", "middleware", "plugin-system", "sdk"], "health_score": 100, "homepage": "https://grammy.dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["grammyjs/grammY"], "name": "grammyjs/grammY", "platform": ["cross-platform"], "pushed_at": "2026-08-26T20:29:41+00:00", "repo": "grammyjs/grammY", "stars": 3722, "tags": ["telegram-bot", "bot-framework", "long-polling", "webhooks", "conversations", "grammy", "automation", "nodejs", "deno", "typescript", "javascript"], "topics": ["telegram", "bot", "deno", "typescript", "nodejs", "javascript", "telegram-bot"], "urls": [], "use_cases": ["create a telegram bot in typescript", "build a chatbot for telegram", "handle telegram bot commands and messages", "add inline keyboards and inline queries to a bot", "run a telegram bot with long polling or webhooks", "store per-user session state in a telegram bot", "build a scalable telegram bot for high traffic"], "what_it_is": "grammY is an open-source framework for building Telegram bots in TypeScript or JavaScript, running on Node.js, Deno, and even browsers. It provides a clean API for handling updates, a rich official plugin ecosystem, and scales from simple echo bots to high-traffic production bots.", "when_to_avoid": ["you are building bots for platforms other than Telegram", "you need a bot framework in another language like Python or Go", "you want a no-code or low-code bot builder", "your project requires accessing stored chat history, which Telegram does not provide to bots"], "when_to_choose": ["you want to build a Telegram bot in TypeScript or JavaScript", "you need first-class TypeScript types and editor autocomplete for the Telegram Bot API", "you want a plugin ecosystem for sessions, keyboards, conversations, and rate limiting", "you need a bot framework that scales from hobby projects to production traffic", "you run on Node.js or Deno"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/grammy", "repo": "grammyjs/grammY", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.470702+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:29:18.733820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ab563b189251420aa4b0b2a0bb0f685c7ca4e45917052b0f2cc97cc40103fd8c", "fetched_at": "2026-08-28T04:08:15.470702+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grammyjs/grammY"}, {"content_hash": "d6b446eba9ec336cb5e476ec11a2acdb85b7cb22b460dee08beef77a5308d582", "fetched_at": "2026-08-29T09:24:25.413675+00:00", "kind": "homepage", "missing": false, "url": "https://grammy.dev"}, {"content_hash": "cd1610a613704ed11974741787923a19d662cdbd37c46879e5e98662f3c26cab", "fetched_at": "2026-08-29T09:24:25.416332+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide/getting-started"}, {"content_hash": "ee37a9b8f3818bd1e10cf399702e9703a9b1c09320add16f93198abb887fe6a7", "fetched_at": "2026-08-29T09:24:25.420398+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/about"}, {"content_hash": "23009244ec94a79f727a446085d851bd0247aed8a32ef41d40125ec183e07b48", "fetched_at": "2026-08-29T09:24:25.423872+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/guide"}, {"content_hash": "471763b6af6c33a24cbd47deaef9a68087a5c8f856d2f7451313eff19085db86", "fetched_at": "2026-08-29T09:24:25.425509+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/grammy"}, {"content_hash": "9e3c78421cad9b728652cfc25bd449bbb0dfdf32f46c67e17c18ac4bc2cb48e0", "fetched_at": "2026-08-29T09:24:25.418626+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/plugins"}, {"content_hash": "186f02e9c9692e8d0ae8f10d5c657ec6e2cf03796b57a646a7a7b60c9774acff", "fetched_at": "2026-08-29T09:24:25.421990+00:00", "kind": "site_page", "missing": false, "url": "https://grammy.dev/resources/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1986, "days_push": 7, "days_rel": 7, "gap_med": 18.5, "n_releases_24m": 35}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}