{"adoption": {"forks": 234, "observed_at": "2026-08-28T04:06:17.229323+00:00", "stars": 2132}, "canonical_url": "https://ross.abutalabs.com/products/flexlayout", "card": {"archived": false, "artifact_type": "library", "description": "FlexLayout adds a nice Swift interface to the highly optimized facebook/yoga flexbox implementation. Concise, intuitive & chainable syntax.", "domain": ["mobile-development", "frontend", "cross-platform"], "enriched": true, "function": ["ui-components", "graphics"], "health_score": 94, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["layoutBox/FlexLayout"], "name": "layoutBox/FlexLayout", "platform": [], "pushed_at": "2026-08-08T10:30:35+00:00", "repo": "layoutBox/FlexLayout", "stars": 2132, "tags": ["flexbox", "yoga", "layout-engine", "uikit", "chainable-syntax", "cocoapods", "ios", "swift", "mobile"], "topics": ["swift", "ios", "ios-swift", "layout", "layout-engine", "flexbox", "flex-layout", "flexbox-container", "css-flexbox", "flex-container", "flexbox-layout", "yoga", "flex-items", "ios-lib", "ios-ui", "swift-3", "swift-framework", "flexbox-properties"], "urls": [], "use_cases": ["build iOS layouts with flexbox instead of Auto Layout", "replace UIStackView with a faster, more flexible layout system", "create responsive UIKit interfaces with chainable Swift syntax", "define flex containers and items with margins, paddings, and sizing rules", "use CSS flexbox properties in native iOS apps", "combine with PinLayout for absolute positioning layouts"], "what_it_is": "FlexLayout is a Swift library providing a concise, chainable interface over Facebook's Yoga flexbox layout engine for iOS UI development. It serves as a more versatile and performant alternative to UIStackView for building native iOS layouts.", "when_to_avoid": ["you're using SwiftUI, which has its own layout system", "you need layouts for Android or cross-platform without Yoga directly", "your project targets iOS versions below 13.0", "you prefer Auto Layout constraints or Interface Builder workflows"], "when_to_choose": ["you're building UIKit-based iOS apps and want flexbox-style layout", "UIStackView is too limiting or slow for your layout needs", "you want a concise, chainable Swift API over the Yoga engine", "you're familiar with CSS flexbox and want the same model in iOS"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/flexlayout", "repo": "layoutBox/FlexLayout", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "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:06:17.229323+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:17.229323+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:52:05.081100+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c082132f0b42dbba756a5a7bd05f22f8b8565f5d8e51bff1436098e15b7d1383", "fetched_at": "2026-08-28T04:06:17.229323+00:00", "kind": "readme", "missing": false, "url": "https://github.com/layoutBox/FlexLayout"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 38}, "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": 3362, "days_push": 25, "days_rel": 256, "gap_med": 99.0, "n_releases_24m": 5}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}