{"adoption": {"forks": 104, "observed_at": "2026-08-28T04:04:18.781144+00:00", "stars": 1306}, "canonical_url": "https://ross.abutalabs.com/products/swiftyonboard", "card": {"archived": true, "artifact_type": "framework", "description": "A swifty iOS framework that allows developers to create beautiful onboarding experiences.", "domain": ["mobile-development", "web-design"], "enriched": true, "function": ["ui-components", "mobile-framework"], "health_score": 10, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["juanpablofernandez/SwiftyOnboard"], "name": "juanpablofernandez/SwiftyOnboard", "platform": [], "pushed_at": "2022-03-25T03:45:39+00:00", "repo": "juanpablofernandez/SwiftyOnboard", "stars": 1306, "tags": ["onboarding", "swift", "cocoapods", "custom-layout", "user-onboarding", "ios"], "topics": ["ios", "swift", "cocoapods", "onboarding", "onboard", "swifty", "swiftyonboard", "custom-layout", "framework"], "urls": [], "use_cases": ["create an onboarding flow for an iOS app", "add a swipeable intro tutorial with pages", "show a welcome walkthrough on first launch", "build customizable onboarding screens with overlays", "implement paginated onboarding without writing pagination logic"], "what_it_is": "SwiftyOnboard is a lightweight Swift framework for iOS that lets developers build customizable onboarding experiences with paginated views. It handles pagination logic while exposing dataSource and delegate protocols for full control over page content and overlays.", "when_to_avoid": ["you need onboarding for Android or cross-platform apps", "you want a maintained solution with frequent updates and latest Swift features", "you need rich analytics or A/B testing built into onboarding"], "when_to_choose": ["you need a lightweight, highly customizable onboarding framework for iOS", "you want to use CocoaPods or Carthage and write minimal code", "you want full control over page layout via dataSource/delegate protocols"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swiftyonboard", "repo": "juanpablofernandez/SwiftyOnboard", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "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:04:18.781144+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:18.781144+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:50:58.100258+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c24135c8af22f4bb397f0a2abaf9db029743af8384c7bf97e0d3e17054f0e30f", "fetched_at": "2026-08-28T04:04:18.781144+00:00", "kind": "readme", "missing": false, "url": "https://github.com/juanpablofernandez/SwiftyOnboard"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3447, "days_push": 1622, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}