{"adoption": {"forks": 118, "observed_at": "2026-08-28T04:07:07.353099+00:00", "stars": 2660}, "canonical_url": "https://ross.abutalabs.com/products/chattocorp-chatto", "card": {"archived": false, "artifact_type": "application", "description": "A fully-featured team and group chat application that you can easily selfhost.", "domain": ["messaging-platforms", "self-hosted", "privacy", "web-development"], "enriched": true, "function": ["chat-interface", "websocket", "graphql", "auth", "cryptography", "self-hosted", "webhook"], "health_score": 100, "homepage": "https://chatto.run", "language": "Go", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["chattocorp/chatto"], "name": "chattocorp/chatto", "platform": ["windows", "self-hosted", "go"], "pushed_at": "2026-08-26T16:43:52+00:00", "repo": "chattocorp/chatto", "stars": 2660, "tags": ["team-chat", "video-calls", "voice-calls", "screensharing", "gdpr-compliant", "privacy-first", "event-sourcing", "nats", "livekit", "single-binary", "real-time", "linux", "macos", "docker", "web-server"], "topics": ["chat", "communication", "gdpr-compliant", "privacy-first", "screensharing", "video-calls", "voice-calls"], "urls": [], "use_cases": ["self-host a team chat app on my own server", "replace Slack or Discord with a privacy-first alternative", "run a GDPR-compliant chat for my community", "chat platform with built-in video calls and screen sharing", "group chat with fine-grained roles and permissions", "chat server with GraphQL API for custom integrations", "host a forum-style or feed-style room for my team"], "what_it_is": "Chatto is a fully-featured, self-hostable team and group chat application written in Go, shipped as a single 50 MB binary with no dependencies. It offers rooms, roles and permissions, built-in voice/video calls with screen sharing via LiveKit, encryption at rest, and first-class GraphQL and NATS APIs for integrations.", "when_to_avoid": ["you need a mature ecosystem with thousands of plugins and integrations like Mattermost or Rocket.Chat", "you want a managed SaaS solution today (cloud hosting is not yet available)", "you need federation with other chat networks like Matrix or XMPP", "your team requires extensive mobile app support and you cannot verify current client availability"], "when_to_choose": ["you want full ownership of your chat data on your own infrastructure", "privacy and GDPR compliance are requirements", "you need voice, video, and screen sharing without third-party services", "you want a lightweight single-binary deployment with zero dependencies", "you need programmatic APIs (GraphQL/NATS) to build integrations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chattocorp-chatto", "repo": "chattocorp/chatto", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "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:07:07.353099+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:07.353099+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:18:23.405050+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "985775ed28e31ea7517ad76c41409a0f96ebc4306207b709b56af1419d15286d", "fetched_at": "2026-08-28T04:07:07.353099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/chattocorp/chatto"}, {"content_hash": "3b6fe2b957de189d0e5345abd36810f47f84dc06cd93e189acea4a7a9ea1a046", "fetched_at": "2026-08-29T10:01:10.080609+00:00", "kind": "homepage", "missing": false, "url": "https://chatto.run"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 10, "rhythm": 84}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 147, "days_push": 7, "days_rel": 24, "gap_med": 0.0, "n_releases_24m": 89}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}