{"adoption": {"forks": 221, "observed_at": "2026-08-28T04:04:08.824698+00:00", "stars": 1255}, "canonical_url": "https://ross.abutalabs.com/products/coherence", "card": {"archived": false, "artifact_type": "library", "description": "Coherence is a full featured, configurable authentication system for Phoenix", "domain": ["web-development", "security", "backend"], "enriched": true, "function": ["auth", "web-framework"], "health_score": 22, "homepage": null, "language": "Elixir", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["smpallen99/coherence"], "name": "smpallen99/coherence", "platform": ["elixir"], "pushed_at": "2024-08-20T16:24:14+00:00", "repo": "smpallen99/coherence", "stars": 1255, "tags": ["phoenix", "authentication", "user-management", "password-reset", "session-management", "web-server"], "topics": ["elixir", "phoenix-framework", "authentication", "hex", "package"], "urls": [], "use_cases": ["add user login and registration to a Phoenix app", "implement email confirmation for new accounts", "add password reset with expiring tokens", "lock accounts after failed login attempts", "send user invitations with sign-up links", "add remember-me persistent login sessions", "track login statistics like counts and IP addresses"], "what_it_is": "Coherence is a full-featured, configurable authentication system for the Phoenix web framework in Elixir. It provides modular authentication features such as registration, email confirmation, password recovery, account locking, invitations, and remember-me sessions, with generated customizable boilerplate views and templates.", "when_to_avoid": ["you are not using Phoenix or Elixir", "you need token-based API authentication (e.g., JWT) rather than session-based auth", "you need a very actively developed library with frequent updates"], "when_to_choose": ["you are building a Phoenix application that needs full user authentication out of the box", "you want configurable, modular auth features like invitations, locking, and confirmation", "you prefer generated boilerplate code you can customize freely"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/coherence", "repo": "smpallen99/coherence", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "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:08.824698+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.824698+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:07:21.375653+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e0a8edc1935cd3b43d9909d68dfa0ad3d36a895b01995a3432d856bfe0191f0b", "fetched_at": "2026-08-28T04:04:08.824698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smpallen99/coherence"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 3712, "days_push": 743, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}