{"adoption": {"forks": 269, "observed_at": "2026-08-28T04:07:56.687659+00:00", "stars": 3334}, "canonical_url": "https://ross.abutalabs.com/products/component-partydev", "card": {"archived": false, "artifact_type": "learning-resource", "description": "🎉 Web component JS frameworks overview by their syntax and features", "domain": ["web-development", "frontend", "education", "tutorials"], "enriched": true, "function": ["documentation", "ui-components", "frontend-framework"], "health_score": 74, "homepage": "https://component-party.dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["matschik/component-party.dev"], "name": "matschik/component-party.dev", "platform": [], "pushed_at": "2026-07-03T23:30:17+00:00", "repo": "matschik/component-party.dev", "stars": 3334, "tags": ["framework-comparison", "cheatsheet", "react", "vue", "svelte", "angular", "solidjs", "syntax-examples", "web-server", "nodejs", "typescript"], "topics": ["react", "svelte", "vue", "angular", "solidjs", "alpine", "lit", "ember", "qwik", "aurelia", "vite", "ripple"], "urls": [], "use_cases": ["compare react and vue syntax side by side", "learn svelte 5 coming from react", "see how different js frameworks handle state and props", "quick overview of frontend framework features before choosing one", "find equivalent code examples across web frameworks", "migrate from angular to solidjs", "cheatsheet for component lifecycle in multiple frameworks"], "what_it_is": "A website and open-source project that compares JavaScript web component frameworks side by side through equivalent code examples covering reactivity, templating, lifecycle, composition, forms, and webapp features. It helps developers quickly see syntax differences across frameworks like React, Svelte, Vue, Angular, Solid.js, Lit, Ember, Qwik, and Alpine.", "when_to_avoid": ["you need deep tutorials or best practices rather than syntax examples", "you need comparison of non-component frameworks or backend tools", "you need production code or starter templates"], "when_to_choose": ["you want a quick syntax-level comparison of popular JS frameworks", "you are learning a new framework and already know another one", "you need example snippets for common component tasks like loops, forms, and slots"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/component-partydev", "repo": "matschik/component-party.dev", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "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:07:56.687659+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.687659+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:41:27.639186+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8686e9e9622693afd17cf30859bf530c1e3a615c5705d0e6f76ba6f4207ba4f2", "fetched_at": "2026-08-28T04:07:56.687659+00:00", "kind": "readme", "missing": false, "url": "https://github.com/matschik/component-party.dev"}, {"content_hash": "cf9ff5945da6a9aa38ab4dc38fdcf0dc22ad10781ee50f591045fbc8232e1d1f", "fetched_at": "2026-08-29T09:34:45.425845+00:00", "kind": "homepage", "missing": false, "url": "https://component-party.dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1619, "days_push": 61, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}