{"adoption": {"forks": 329, "observed_at": "2026-08-28T04:08:50.749064+00:00", "stars": 4462}, "canonical_url": "https://ross.abutalabs.com/products/gotrue", "card": {"archived": false, "artifact_type": "service", "description": "An JWT based API for managing users and issuing JWT tokens.", "domain": ["security", "backend", "web-development", "apis", "self-hosted"], "enriched": true, "function": ["auth", "http-server", "api-framework", "rate-limiting"], "health_score": 76, "homepage": "https://www.gotrueapi.org", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["netlify/gotrue"], "name": "netlify/gotrue", "platform": ["go", "self-hosted", "windows"], "pushed_at": "2026-07-24T23:58:35+00:00", "repo": "netlify/gotrue", "stars": 4462, "tags": ["jwt", "oauth2", "user-management", "jamstack", "identity", "signup", "microservice", "docker", "web-server", "linux", "macos"], "topics": ["authentication", "jwt", "production"], "urls": [], "use_cases": ["add user signup and login to a Jamstack site", "self-host a JWT-based authentication API", "manage users and issue JWT tokens for my app", "handle email invites and password recovery for users", "run a standalone identity service behind my API gateway", "store custom user metadata alongside authentication"], "what_it_is": "GoTrue is a small open-source API written in Go that handles user registration, authentication, and user management for APIs and Jamstack projects. It is based on OAuth2 and JWT, issuing JWT tokens and supporting signup, login, invites, and custom user data backed by a MySQL database.", "when_to_avoid": ["you need databases other than MySQL", "you want a full-featured identity provider with SSO/SAML or social login breadth", "you prefer a managed auth service rather than operating your own"], "when_to_choose": ["you need a self-hosted, lightweight user management microservice", "your stack is Jamstack or Netlify-based and speaks JWT", "you want OAuth2/JWT auth without building it yourself"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gotrue", "repo": "netlify/gotrue", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "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:08:50.749064+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:50.749064+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:41.433813+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e9f65a96c8b8b93e98765ff87f1d422b77488242fa36d64ecc1f398d1812bbb6", "fetched_at": "2026-08-28T04:08:50.749064+00:00", "kind": "readme", "missing": false, "url": "https://github.com/netlify/gotrue"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "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": 3761, "days_push": 40, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}