whatisgithub

What is componentkit?

facebook/componentkit — explained in plain English

Analysis updated 2026-06-26

5,764Objective-C++Audience · developerComplexity · 4/5LicenseSetup · moderate

In one sentence

ComponentKit is a React-inspired iOS UI framework from Facebook that lets you describe interfaces declaratively based on data state, rather than manually mutating views. Written in Objective-C++, it powers Facebook's News Feed and is optimized for high-performance list rendering.

Mindmap

mindmap
  root((repo))
    Architecture
      Declarative UI
      Functional components
      State driven rendering
    Performance
      Feed optimized
      Efficient list layout
      Many cell types
    Setup
      Carthage dependency
      Xcode project
      WildeGuess sample app
    Documentation
      componentkit.org
      Getting started guide
      API reference
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build high-performance iOS list feeds with many different cell types

USE CASE 2

Create declarative, React-style UI components for native iOS apps

USE CASE 3

Replace manual UIKit view mutation with state-driven component rendering

USE CASE 4

Power complex content feeds similar to Facebook News Feed on iOS

What is it built with?

Objective-C++iOSXcodeCarthage

How does it compare?

facebook/componentkitkhronosgroup/moltenvkgoogle/santa
Stars5,7645,6214,515
LanguageObjective-C++Objective-C++Objective-C++
Setup difficultymoderatehardhard
Complexity4/54/54/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Run Carthage checkout before opening in Xcode. Explore the WildeGuess sample app included in the repo. Full guide at componentkit.org.

BSD license with an additional patent grant from Facebook. Permissive, you can use, modify, and distribute freely.

So what is it?

ComponentKit is a framework for building user interfaces in iOS apps, created by Facebook. It was inspired by React, the web UI library also from Facebook, and brings a similar way of thinking about UI to native iOS development. The project is written in Objective-C++. The core idea is that instead of describing how a UI should change over time by manually updating views, you describe what the UI should look like given the current state of your data, and the framework handles the rendering. This functional and declarative approach tends to produce code that is easier to reason about, since each component is a self-contained description of how a piece of UI should look rather than a series of instructions that mutate it over time. ComponentKit was built to power Facebook's News Feed on iOS and is used throughout the Facebook iOS app. Because it was designed to handle a high-volume, complex feed full of different content types, it was built with performance in mind, particularly for lists that need to lay out many different kinds of cells efficiently. The project is distributed via Carthage, a dependency manager for iOS and Mac projects. Setting it up requires running a Carthage checkout step before opening the Xcode project. The repository includes a sample app called WildeGuess to explore. A dedicated website at componentkit.org hosts the full getting started guide and additional documentation. The library is BSD-licensed with an additional patent grant from Facebook.

Copy-paste prompts

Prompt 1
I'm integrating ComponentKit into an iOS app. Here is my data model: [paste model]. Write a ComponentKit component that renders it declaratively.
Prompt 2
Using ComponentKit, how do I build a feed with multiple cell types that each respond to different data states? Show me an example component hierarchy.
Prompt 3
I have an existing UIKit view controller with manual view updates. Help me refactor it to use ComponentKit's declarative, functional style.
Prompt 4
What are the key differences between ComponentKit and SwiftUI for building iOS list UIs? When should I choose ComponentKit?
Prompt 5
Show me how to set up ComponentKit via Carthage, open the WildeGuess sample app, and run my first component.

Frequently asked questions

What is componentkit?

ComponentKit is a React-inspired iOS UI framework from Facebook that lets you describe interfaces declaratively based on data state, rather than manually mutating views. Written in Objective-C++, it powers Facebook's News Feed and is optimized for high-performance list rendering.

What language is componentkit written in?

Mainly Objective-C++. The stack also includes Objective-C++, iOS, Xcode.

What license does componentkit use?

BSD license with an additional patent grant from Facebook. Permissive, you can use, modify, and distribute freely.

How hard is componentkit to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is componentkit for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.