nicbarker/clay

High performance UI layout library in C.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 3 minutes ago
Added to GitGenius on September 3rd, 2026
Created on July 21st, 2024
Open Issues & Pull Requests: 279 (+0)
GitHub issues: Enabled
Number of forks: 717
Total Stargazers: 18,086 (+0)
Total Subscribers: 104 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 6.7 hours
Mean response time: 6.7 days
90th percentile: 9.5 days
Tracked items: 282

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 75% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 5% of issues opened in the past year have been closed. Three people close 51% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 189
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 443 days
Stale 30+ days: 183
Stale 90+ days: 170

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (37)
  • Attempted Fix (36)
  • enhancement (30)
  • documentation (6)
  • Complete - Needs Documentation (1)
  • help wanted (1)

Most active issues this week

Detailed Description

Clay is a high performance UI layout library in C.

Clay solves the problem of building responsive, complex user interfaces with minimal overhead by providing a flexbox-like layout model compiled into a single 4.8k line header file with zero dependencies. The library achieves microsecond layout performance through static arena-based memory allocation that eliminates malloc and free calls, keeping total memory overhead low even for thousands of layout elements. It uses a React-like declarative syntax for defining nested UI hierarchies and outputs a sorted list of rendering primitives that can be composited into any 3D engine or compiled to HTML, making it renderer-agnostic. The tool supports text wrapping, scrolling containers, aspect ratio scaling, and a transition API for layout animations.

Developers should choose Clay for performance-critical UI work where memory predictability and layout speed matter, particularly in game engines, embedded systems, or browser-based applications via WebAssembly. The library compiles to a 15kb uncompressed WebAssembly file, making it suitable for web deployment. Clay's single-file design with no standard library linking requirement makes integration straightforward for projects that need tight control over dependencies. It is well-suited for applications requiring complex, responsive layouts without the overhead of heavier UI frameworks.

The project maintains active engagement with its user base, with nearly all open issues originating from adopters reporting real-world problems rather than internal tracking. Maintainers respond to new issues and pull requests within a day. Work in the issue tracker centers on bug reports, attempted fixes, and enhancement requests, reflecting a development process focused on stability and incremental improvement.