{"adoption": {"forks": 355, "observed_at": "2026-08-28T04:07:05.337176+00:00", "stars": 2626}, "canonical_url": "https://ross.abutalabs.com/products/gptlink", "card": {"archived": false, "artifact_type": "application", "description": "10分钟搭建可免费商用的AI对话环境，搭建简单，包含用户，订单，任务，付费等功能", "domain": ["chatbots", "artificial-intelligence", "web-development", "self-hosted", "e-commerce"], "enriched": true, "function": ["chatbot", "web-framework", "auth", "api-framework", "self-hosted"], "health_score": 85, "homepage": null, "language": "PHP", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["gptlink/gptlink"], "name": "gptlink/gptlink", "platform": ["php", "self-hosted"], "pushed_at": "2026-08-14T11:08:50+00:00", "repo": "gptlink/gptlink", "stars": 2626, "tags": ["chatgpt", "hyperf", "vue", "monetization", "wechat-pay", "admin-console", "docker-deployment", "docker", "web-server", "linux"], "topics": ["chatgpt", "docker", "hyperf", "ai"], "urls": [], "use_cases": ["deploy a self-hosted ChatGPT-style chat site", "run an AI chat service with paid subscription plans", "set up an AI chatbot site with user management and orders", "monetize an AI conversation site with WeChat Pay", "quickly launch a commercial AI chat environment with Docker", "manage an AI chat platform with an admin console"], "what_it_is": "GPTLink is a self-hosted PHP (Hyperf) + Vue application for quickly deploying a commercial AI chat website with user accounts, paid plans, orders, and referral tasks. It ships with an admin console, Docker deployment, and API documentation.", "when_to_avoid": ["you need a license-guaranteed free commercial use (no explicit license file is present)", "you want a Node.js or Python stack", "you need advanced features like AI image generation or distribution, which are still on the roadmap"], "when_to_choose": ["you want a turnkey, self-hosted AI chat site with billing and user management", "you prefer PHP/Hyperf and Docker deployment", "you need WeChat login/payment integration for a Chinese audience"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gptlink", "repo": "gptlink/gptlink", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "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:05.337176+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.337176+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:19:47.153723+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12cbaa10e1ce0136c11f455a018e021e1c26ef37cc23ddcf7fe47c05464ed0bb", "fetched_at": "2026-08-28T04:07:05.337176+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gptlink/gptlink"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 85, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1199, "days_push": 19, "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}}