{"adoption": {"forks": 588, "observed_at": "2026-08-28T04:08:53.336258+00:00", "stars": 4553}, "canonical_url": "https://ross.abutalabs.com/products/chatto", "card": {"archived": false, "artifact_type": "framework", "description": "A lightweight framework to build chat applications, made in Swift", "domain": ["mobile-development", "chatbots", "web-development"], "enriched": true, "function": ["ui-components", "frontend-framework", "state-management"], "health_score": 79, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["badoo/Chatto"], "name": "badoo/Chatto", "platform": [], "pushed_at": "2026-08-19T06:13:15+00:00", "repo": "badoo/Chatto", "stars": 4553, "tags": ["chat-ui", "swift-framework", "messaging", "uikit", "cocoapods", "carthage", "ios", "swift", "mobile"], "topics": [], "urls": [], "use_cases": ["build a chat interface in an iOS app", "display thousands of messages with smooth scrolling and pagination", "create custom message bubble types in Swift", "add an extensible message input bar to an app", "implement bidirectional pagination and autoloading in a chat feed", "add swipe-to-reveal accessory views on chat messages"], "what_it_is": "Chatto is a lightweight Swift framework for building chat application UIs on iOS, designed for extensibility and performance. It ships with ChattoAdditions, a companion framework providing message cells (text, photo) and an extensible input bar component.", "when_to_avoid": ["you need a full chat backend with networking and sync built in", "you are building with SwiftUI rather than UIKit", "you target platforms other than iOS"], "when_to_choose": ["you need a customizable, performant chat UI in a native Swift/iOS app", "you want fine-grained control over message cells and input components", "your app handles large message histories requiring background layout calculation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chatto", "repo": "badoo/Chatto", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "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.336258+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.336258+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:03.488811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67f4b9d024170993f248d0c118691fddfa9c4c346c16e7926bcd209ebc2289b9", "fetched_at": "2026-08-28T04:08:53.336258+00:00", "kind": "readme", "missing": false, "url": "https://github.com/badoo/Chatto"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 8}, "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": 3934, "days_push": 14, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}