{"adoption": {"forks": 1561, "observed_at": "2026-08-28T04:11:08.886418+00:00", "stars": 14890}, "canonical_url": "https://ross.abutalabs.com/products/domain-driven-hexagon", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Learn Domain-Driven Design, software architecture, design patterns, best practices. Code examples included", "domain": ["backend", "web-development", "developer-tools", "tutorials"], "enriched": true, "function": ["developer-tools", "documentation"], "health_score": 20, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["Sairyss/domain-driven-hexagon"], "name": "Sairyss/domain-driven-hexagon", "platform": ["cross-platform"], "pushed_at": "2024-06-11T05:47:51+00:00", "repo": "Sairyss/domain-driven-hexagon", "stars": 14890, "tags": ["domain-driven-design", "hexagonal-architecture", "clean-architecture", "design-patterns", "solid-principles", "nestjs", "typescript", "system-design", "best-practices", "onion-architecture", "nodejs"], "topics": ["domain-driven-design", "hexagonal-architecture", "clean-architecture", "typescript", "best-practices", "javascript", "solid-principles", "architecture", "architectural-patterns", "secure-by-design", "onion-architecture", "typeorm", "nestjs", "design-patterns", "system-design", "nodejs", "development", "clean-code", "ddd", "backend"], "urls": [], "use_cases": ["learn domain-driven design with code examples", "understand hexagonal and clean architecture patterns", "study backend best practices for Node.js and TypeScript", "see how to structure aggregates, entities, and domain events", "learn SOLID principles and system design guidelines", "find architectural patterns for building maintainable backend applications"], "what_it_is": "An educational repository teaching Domain-Driven Design, hexagonal/clean architecture, and software design patterns with TypeScript/NestJS code examples. It is a curated guide of architectural best practices rather than a reusable library.", "when_to_avoid": ["you need a production-ready starter template or framework to drop into your project", "you want a maintained library with an API rather than educational material", "you need patterns in a language other than TypeScript without adapting them yourself"], "when_to_choose": ["you want to learn DDD and architectural patterns from a well-regarded reference with runnable examples", "you are designing a backend application and need guidance on layering, modules, and domain modeling", "you prefer framework-agnostic principles illustrated in TypeScript/NestJS"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/domain-driven-hexagon", "repo": "Sairyss/domain-driven-hexagon", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "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:11:08.886418+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.886418+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:07:00.184959+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "25ab9c331549f682cc531a3ffad48f9aaba29322e5513454f649e94fdb3312c5", "fetched_at": "2026-08-28T04:11:08.886418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sairyss/domain-driven-hexagon"}, {"content_hash": "d22204a1e1dcd146d224aade17337cf91944435a9eac4b028d00935581652912", "fetched_at": "2026-08-29T08:05:13.429037+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/domain-driven-hexagon"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2103, "days_push": 813, "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}}