{"adoption": {"forks": 90, "observed_at": "2026-08-28T04:03:13.338751+00:00", "stars": 1012}, "canonical_url": "https://ross.abutalabs.com/products/revert", "card": {"archived": false, "artifact_type": "framework", "description": "Revert makes it incredibly easy to build integrations with any third party API", "domain": ["apis", "developer-tools", "backend", "web-development"], "enriched": true, "function": ["api-framework", "auth", "middleware", "sdk"], "health_score": 35, "homepage": "https://revert.dev", "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["revertinc/revert"], "name": "revertinc/revert", "platform": ["self-hosted"], "pushed_at": "2025-04-07T06:37:36+00:00", "repo": "revertinc/revert", "stars": 1012, "tags": ["unified-api", "oauth2", "crm-integrations", "third-party-integrations", "embedded-integrations", "hubspot", "salesforce", "zoho-crm", "pipedrive", "zendesk", "automation", "nodejs", "typescript", "docker"], "topics": ["api", "crms", "integration", "integrations", "nodejs", "typescript", "oauth2", "oauth2-proxy", "hubspot", "salesforce", "salesforce-api", "zoho", "zoho-crm", "pipedrive", "oauth", "zendesk", "hacktoberfest", "access-token", "refresh-token", "good-first-issue"], "urls": [], "use_cases": ["add crm integrations to my saas app", "unified api for hubspot and salesforce", "handle oauth2 for third party apis", "sync contacts from multiple crms", "embed integrations without building each connector", "manage oauth access and refresh tokens"], "what_it_is": "Revert is an open-source unified API framework that makes it easy to build product integrations with third-party APIs like CRMs (HubSpot, Salesforce, Zoho, Pipedrive) and support tools (Zendesk), handling OAuth2 flows, token refresh, and a normalized data layer. Note: the project has joined Ampersand and development has moved there.", "when_to_avoid": ["you need actively developed new features - the project has joined Ampersand", "you need integrations outside the supported CRM/support tool set", "you want a fully managed hosted service without self-hosting"], "when_to_choose": ["you need to integrate multiple CRMs or SaaS tools behind one unified API", "you want self-hosted, open-source integration infrastructure", "you want OAuth2 token management handled for you"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/revert", "repo": "revertinc/revert", "role": "main", "score": 28}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "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:13.338751+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:13.338751+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:11:47.002297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9908b9f5369d7490e3f292db47df9f981961e0e6db42249e6e4c11d8d2860cd1", "fetched_at": "2026-08-28T04:03:13.338751+00:00", "kind": "readme", "missing": false, "url": "https://github.com/revertinc/revert"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 15, "longevity": 94, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1324, "days_push": 513, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 28, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}