{"adoption": {"forks": 38, "observed_at": "2026-08-28T04:03:24.912876+00:00", "stars": 1057}, "canonical_url": "https://ross.abutalabs.com/products/copycat", "card": {"archived": false, "artifact_type": "library", "description": "Generate deterministic fake values: The same input will always generate the same fake-output.", "domain": ["developer-tools", "testing", "privacy"], "enriched": true, "function": ["data-generation", "serialization"], "health_score": 32, "homepage": "https://www.snaplet.dev", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["supabase-community/copycat"], "name": "supabase-community/copycat", "platform": ["cross-platform"], "pushed_at": "2025-01-14T21:24:37+00:00", "repo": "supabase-community/copycat", "stars": 1057, "tags": ["fake-data", "deterministic", "database-seeding", "data-anonymization", "test-data", "data-engineering", "nodejs", "typescript"], "topics": ["deterministic", "fake", "fake-data", "fake-data-generator", "database-seeding"], "urls": [], "use_cases": ["generate deterministic fake data for database seeding", "anonymize sensitive data by replacing values with consistent fakes", "create stable test fixtures that don't change between runs", "replace faker when I need input-to-output determinism", "seed demo environments with reproducible fake emails and names"], "what_it_is": "Copycat is a TypeScript library for generating deterministic fake values, where the same input always maps to the same fake output. It uses SipHash under the hood so replacements are stateless and cannot easily be reversed to infer the original input.", "when_to_avoid": ["you need realistic locale-specific or highly varied fake data rather than deterministic mappings", "you just need a random sequence of fake values and don't care about determinism", "you need fake data in a language other than JavaScript/TypeScript"], "when_to_choose": ["you need the same input to always produce the same fake value regardless of call order or environment", "you are anonymizing or masking production data while preserving referential consistency", "you want stateless fake data generation without managing PRNG seeds"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/copycat", "repo": "supabase-community/copycat", "role": "main", "score": 26}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "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:03:24.912876+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.912876+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:58:00.410677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ffc2d903f2406da96cb9ef2ddc47e6546231d7aaad59c9db5c90d6a0f2827a70", "fetched_at": "2026-08-28T04:03:24.912876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/supabase-community/copycat"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 1, "longevity": 100, "rhythm": 16}, "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": 1590, "days_push": 596, "days_rel": 596, "gap_med": 96, "n_releases_24m": 2}, "score": 26, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}