{"adoption": {"forks": 369, "observed_at": "2026-08-28T04:08:09.216335+00:00", "stars": 3540}, "canonical_url": "https://ross.abutalabs.com/products/im-server", "card": {"archived": false, "artifact_type": "service", "description": "IM Chat, High-performance, scalable, self-hosted instant messaging server in Go — private chat, groups, chatrooms, WebSocket and REST APIs.", "domain": ["messaging-platforms", "self-hosted", "chatbots", "apis"], "enriched": true, "function": ["websocket", "http-server", "chatbot", "auth", "message-queue", "sdk"], "health_score": 100, "homepage": "https://www.juggle.im/docs/guide/intro/", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["juggleim/im-server"], "name": "juggleim/im-server", "platform": ["go", "self-hosted", "cross-platform"], "pushed_at": "2026-08-25T01:25:04+00:00", "repo": "juggleim/im-server", "stars": 3540, "tags": ["instant-messaging", "chat-server", "im", "multi-tenant", "protobuf", "realtime", "group-chat", "chatroom", "live-chat", "push-notifications", "rest-api", "messenger", "messaging", "real-time", "docker", "linux"], "topics": ["chat", "golang", "im", "imserver", "messenger", "chat-server", "imsdk", "instant-messaging", "self-hosted", "websocket", "multi-tenant", "open-source", "protobuf", "realtime", "rest-api"], "urls": [], "use_cases": ["self-host a chat server for my app", "add private and group messaging to a mobile app", "build a live-stream chatroom", "run an instant messaging backend with WebSocket and REST APIs", "host a private WhatsApp/Telegram-style messenger", "add AI bot conversations to a chat app", "send system notifications to users in real time"], "what_it_is": "JuggleIM is a self-hosted, high-performance instant messaging server written in Go, using a Protobuf + WebSocket long-connection protocol with REST APIs. It supports private chat, group chat, chatrooms, system notifications, bots/AI assistants, and multi-tenant deployments, with client SDKs for Android, iOS, Web, Flutter, and Electron.", "when_to_avoid": ["you only need simple peer-to-peer messaging without a server", "you prefer a managed SaaS chat service over operating your own infrastructure", "you need horizontal clustering on the free edition, which is limited to the professional edition", "your stack requires a non-Go server you can deeply customize in another language"], "when_to_choose": ["you want a self-hosted IM backend with full control over your messaging data", "you need multi-tenant support hosting several isolated apps from one deployment", "you need large group chats and unlimited-size live chatrooms", "you want client SDKs across Android, iOS, Web, Flutter, and Electron", "you need bot and AI assistant integration in your chat product"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/im-server", "repo": "juggleim/im-server", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "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:09.216335+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.216335+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:34:35.870121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fa1bbf2a233fd417ddeec8b2f5be2f0546f0314bab0516c49c4d201c1faa7d9f", "fetched_at": "2026-08-28T04:08:09.216335+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juggleim/im-server"}, {"content_hash": "7e1ad6267f0bac0f9902130df0634518e45a5c03cdd9605692646a2bfcbd2db1", "fetched_at": "2026-08-29T09:29:05.667979+00:00", "kind": "homepage", "missing": false, "url": "https://www.juggle.im/docs/guide/intro/"}, {"content_hash": "3546a5a65a51d210e5df108a338fb64d04a7ecdeb18558ef35992612c28bb5a6", "fetched_at": "2026-08-29T09:29:05.691070+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/manualdeploy"}, {"content_hash": "c84bdd8033ff9a1e3d30a151b9bb720651f084b0184906189a44fb03ebddb4a4", "fetched_at": "2026-08-29T09:29:05.685136+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy"}, {"content_hash": "1c1f1b03dd2bfac7d759354730f362451a0da8469b2d4efd32d6c9f038169ee2", "fetched_at": "2026-08-29T09:29:05.687195+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/releasenodes"}, {"content_hash": "5a0b7ce7db997700ca9e44b86682dcd0e5b5ae68444421459111f14754c86df3", "fetched_at": "2026-08-29T09:29:05.689191+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/deploy/quickdeploy"}, {"content_hash": "056f6b0a5c58e4165435e72f9734ddf6a1aa7871b5df8ac9506f714d428f7e37", "fetched_at": "2026-08-29T09:29:05.677343+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/private"}, {"content_hash": "0dc7f141cc60b6edf1b38d972980ddb5f161775621bb9acafc23ebd78973c304", "fetched_at": "2026-08-29T09:29:05.679642+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/group"}, {"content_hash": "2ee3ed25eb606e59efa23e6df887b956686c986e1087a22a3d7869690327234e", "fetched_at": "2026-08-29T09:29:05.681618+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/sys_notice"}, {"content_hash": "7c1f2f8b8bc1f170a34fc5f851691986b3cf3270ccc512e9e2e3d7bf746697dd", "fetched_at": "2026-08-29T09:29:05.683509+00:00", "kind": "site_page", "missing": false, "url": "https://juggle.im/docs/guide/scenes/chatroom"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 52, "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": 737, "days_push": 9, "days_rel": 9, "gap_med": 25.5, "n_releases_24m": 3}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}