# ekazaev/ChatLayout

ChatLayout is an alternative solution to MessageKit. It uses custom UICollectionViewLayout to provide you full control over the presentation as well as all the tools available in UICollectionView. It supports dynamic cells and supplementary view sizes.

Repository: https://github.com/ekazaev/ChatLayout
Canonical: https://ross.abutalabs.com/products/chatlayout
Language: Swift
License: MIT
License Family: permissive
Topics: chat, chat-application, messaging, messenger, uicollectionviewlayout, collectionview, collectionviewlayout, swift, uicollectionview, custom-uicollectionviewlayout, messagekit, differencekit, chatui
Last push: 2026-08-18T19:51:44+00:00

## Health v2 (maintenance only)
Score: 98/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 98, longevity 100
- inputs: {"age_days": 2249, "days_push": 15, "days_rel": 15, "gap_med": 15, "n_releases_24m": 16}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1043, forks 85 (observed 2026-08-28T04:03:21.014484+00:00)

## What it is
ChatLayout is a Swift library providing a custom UICollectionViewLayout for building chat interfaces on iOS, positioned as an alternative to MessageKit. It offers full control over message presentation with dynamic cell sizes, animated updates, and sticky header/footer cells.

## Use cases
- build a chat interface in an iOS app
- replace MessageKit with a more customizable chat UI
- display messages with dynamically sized cells in UICollectionView
- implement a messenger screen with animated message insertions and deletions
- create sticky headers or footers in a chat feed
- precisely scroll to a specific message in a conversation

## When to choose
- you need full control over chat message layout beyond what MessageKit offers
- your chat requires dynamic cell sizes and animated item updates
- you want to leverage native UICollectionView tools in a messaging UI
- you need pinned/sticky cells behaving like headers or footers in a chat

## When to avoid
- you want a batteries-included chat UI with prebuilt message cells and input bar
- your project is not iOS/Swift based
- you prefer a simpler drop-in solution over building custom collection view items

## Facets
- artifact type: library
- maturity: active
- function: ui-components, frontend-framework
- domain: mobile-development, messaging-platforms, chatbots
- platform: -
- tags: chat-ui, uicollectionviewlayout, messagekit-alternative, messenger, swift, ios, mobile

## Member repositories
- ekazaev/ChatLayout (main) score 98

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:21.014484+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:02:29.887136+00:00, confidence not recorded.
  - readme: https://github.com/ekazaev/ChatLayout (fetched 2026-08-28T04:03:21.014484+00:00, sha 2979df96b92e)
- Data as of 2026-08-30T08:39:29.467469+00:00.
