{"adoption": {"forks": 187, "observed_at": "2026-08-28T04:05:12.436446+00:00", "stars": 1621}, "canonical_url": "https://ross.abutalabs.com/products/react-clean-architecture", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A realistic approach to implement clean architecture on react codebases", "domain": ["web-development", "frontend", "developer-tools", "tutorials"], "enriched": true, "function": ["boilerplate", "developer-tools"], "health_score": 20, "homepage": null, "language": "TypeScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["eduardomoroni/react-clean-architecture"], "name": "eduardomoroni/react-clean-architecture", "platform": ["cross-platform"], "pushed_at": "2023-09-23T09:32:39+00:00", "repo": "eduardomoroni/react-clean-architecture", "stars": 1621, "tags": ["clean-architecture", "react", "react-native", "typescript", "example-app", "architecture-pattern", "educational", "web-server", "nodejs"], "topics": ["react", "react-native", "clean-architecture", "typescript", "boilerplate"], "urls": [], "use_cases": ["learn how to structure a react app with clean architecture", "see how to separate business logic from react components", "find a realistic clean architecture example for typescript frontend apps", "understand the dependency rule in frontend architecture", "share code between react and react native apps", "study how to organize a codebase around domain logic instead of frameworks"], "what_it_is": "An example repository demonstrating how to apply clean architecture principles to React and React Native codebases using TypeScript. It serves as an educational reference showing how to isolate business rules from framework-specific code, though the author notes it is somewhat outdated and not a direct production template.", "when_to_avoid": ["you need a production-ready, up-to-date boilerplate to start a new project", "you want a maintained template with active releases and a license", "you need framework-specific best practices that have evolved since 2023"], "when_to_choose": ["you are learning clean architecture concepts for frontend development", "you want a realistic, simplified reference to adapt to your own react codebase", "you need to understand how to decouple core logic from react or react native"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/react-clean-architecture", "repo": "eduardomoroni/react-clean-architecture", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "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:05:12.436446+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:12.436446+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:49:13.897379+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0e244e79d9934fb2875ba83315ec42ee2236843ac5feac7e61de5a42cc7b493", "fetched_at": "2026-08-28T04:05:12.436446+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eduardomoroni/react-clean-architecture"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2997, "days_push": 1075, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}