{"adoption": {"forks": 7489, "observed_at": "2026-08-28T04:12:11.772240+00:00", "stars": 50254}, "canonical_url": "https://ross.abutalabs.com/products/mastodon", "card": {"archived": false, "artifact_type": "application", "description": "Your self-hosted, globally interconnected microblogging community", "domain": ["social-media", "web-development", "backend", "self-hosted", "apis"], "enriched": true, "function": ["http-server", "web-framework", "api-framework", "websocket", "auth", "search-engine", "self-hosted"], "health_score": 100, "homepage": "https://joinmastodon.org", "language": "Ruby", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["mastodon/mastodon", "mastodon/documentation", "mastodon/mastodon-android", "mastodon/mastodon-ios"], "name": "Mastodon", "platform": ["windows", "cross-platform", "self-hosted"], "pushed_at": "2026-08-26T21:26:50+00:00", "repo": "mastodon/mastodon", "stars": 50254, "tags": ["activitypub", "fediverse", "microblogging", "social-network", "federation", "ruby-on-rails", "decentralized", "oauth2", "media", "web-server", "docker", "linux", "macos", "ios", "android"], "topics": ["mastodon", "docker", "microblog", "activity-stream", "webfinger", "social-network", "activitypub", "fediverse", "social-web"], "urls": [], "use_cases": ["self-host a decentralized twitter alternative", "run a community microblogging server", "federate with other ActivityPub social networks", "host a private social network for my organization", "build a third-party fediverse client using the REST API", "escape vendor lock-in on social media"], "what_it_is": "Mastodon is a free, open-source, self-hosted social network server for microblogging built on the ActivityPub protocol, written in Ruby on Rails. Servers federate into the Fediverse, letting users on different instances and even different ActivityPub software follow and interact with each other.", "when_to_avoid": ["you want a zero-maintenance hosted service without running infrastructure", "you need a centralized network with a single global namespace", "you lack resources for server administration, moderation, and scaling"], "when_to_choose": ["you want full control and ownership of your social data", "you need federation and interoperability via ActivityPub", "you want built-in moderation, safety tools, and OAuth2 REST/Streaming APIs", "you can operate a server with Docker, Ruby, and PostgreSQL/Redis"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/mastodon/mastodon", "repo": "mastodon/mastodon", "role": "main", "score": 95}, {"path": "/repos/mastodon/mastodon-ios", "repo": "mastodon/mastodon-ios", "role": "frontend", "score": 95}, {"path": "/repos/mastodon/mastodon-android", "repo": "mastodon/mastodon-android", "role": "frontend", "score": 98}, {"path": "/repos/mastodon/documentation", "repo": "mastodon/documentation", "role": "docs", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "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:12:11.772240+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:12:11.772240+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:19:56.681295+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2a2c800e1c9695ca7852216b6b4bfd3b8efd9fa9d55b2a48608586bd68933dc", "fetched_at": "2026-08-28T04:12:11.772240+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mastodon/mastodon"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3845, "days_push": 7, "days_rel": 13, "gap_med": 0, "n_releases_24m": 96}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}