{"adoption": {"forks": 588, "observed_at": "2026-08-28T04:08:53.412103+00:00", "stars": 4558}, "canonical_url": "https://ross.abutalabs.com/products/element-hq-synapse", "card": {"archived": false, "artifact_type": "service", "description": "Synapse: Matrix homeserver written in Python/Twisted + Rust", "domain": ["self-hosted", "backend", "privacy"], "enriched": true, "function": ["http-server", "websocket", "api-framework", "auth", "cryptography"], "health_score": 100, "homepage": "https://element-hq.github.io/synapse", "language": "Python", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["element-hq/synapse"], "name": "element-hq/synapse", "platform": ["python", "self-hosted"], "pushed_at": "2026-08-26T17:14:02+00:00", "repo": "element-hq/synapse", "stars": 4558, "tags": ["matrix", "homeserver", "federation", "chat", "twisted", "rust", "instant-messaging", "decentralized", "messaging", "real-time", "linux", "docker", "web-server"], "topics": [], "urls": [], "use_cases": ["self-host a Matrix chat server", "run a federated messaging server for my organization", "host my own chat server instead of Slack or Discord", "bridge messaging across different platforms via Matrix", "set up an encrypted team communication server", "deploy a Matrix homeserver with federation enabled"], "what_it_is": "Synapse is the reference Matrix homeserver implementation maintained by Element, written in Python/Twisted with Rust components. It stores accounts and room data, federates with other Matrix servers, and exposes client and federation APIs for secure, interoperable real-time communication.", "when_to_avoid": ["you want a lightweight chat server for a tiny deployment without federation", "you prefer a commercial support-free turnkey solution without configuration work", "you need a Matrix server in a language other than Python, e.g. a Rust-native homeserver like Conduit", "you want managed hosting rather than running your own infrastructure"], "when_to_choose": ["you want to self-host Matrix messaging with full federation support", "you need the most mature and widely deployed Matrix homeserver", "you want data ownership and control over your chat infrastructure", "you need interoperability with the broader Matrix ecosystem including Element clients"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/element-hq-synapse", "repo": "element-hq/synapse", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "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:53.412103+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.412103+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:01.391872+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "099c191a9436049802bdade0ccd7c8c08a1cdd107458e9d8ccef7e78cebc60ee", "fetched_at": "2026-08-28T04:08:53.412103+00:00", "kind": "readme", "missing": false, "url": "https://github.com/element-hq/synapse"}, {"content_hash": "75f99707b50fa8098aae8a93699766e3242a589a5b9403e5db91465448bcb260", "fetched_at": "2026-08-29T09:05:39.140047+00:00", "kind": "homepage", "missing": false, "url": "https://element-hq.github.io/synapse"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 71, "rhythm": 98}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 994, "days_push": 7, "days_rel": 15, "gap_med": 13, "n_releases_24m": 60}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}