{"adoption": {"forks": 227, "observed_at": "2026-08-28T04:04:13.162109+00:00", "stars": 1276}, "canonical_url": "https://ross.abutalabs.com/products/app-space", "card": {"archived": false, "artifact_type": "application", "description": "应用内网发布分发测试部署管理平台版本管理类似蒲公英蒲公英 类似fir.im fir App publish IOS超级签名免签 开源| https://app-space.up.railway.app |APP增量热更新| 支持iOS、Android、flutter、 react-native更新摇一摇提Bug SDK 提供自动化部署jenkins fastlane 丰富组件库 安卓苹果发布发版publish 管理发发布适用于企业手机应用内测服务应用内测托管的平台开源", "domain": ["mobile-development", "developer-tools", "self-hosted", "web-development"], "enriched": true, "function": ["self-hosted", "file-upload", "webhook", "sdk", "developer-tools", "deployment", "workflow-automation"], "health_score": 20, "homepage": "https://app-space.up.railway.app", "language": "C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["appspa/app-space"], "name": "appspa/app-space", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2024-08-08T02:29:48+00:00", "repo": "appspa/app-space", "stars": 1276, "tags": ["app-distribution", "pgyer-alternative", "fir-im-alternative", "ota-updates", "hot-update", "ios-super-signature", "bug-reporting", "code-push", "fastlane", "jenkins", "flutter", "react-native", "intranet-deployment", "automation", "docker", "nodejs", "web-server", "android", "ios"], "topics": ["pgyer", "code-push", "code-push-server", "fir", "app-host", "bugtags", "flutter", "react-native", "jenkins", "appspace", "android", "sdk"], "urls": [], "use_cases": ["self-hosted app distribution platform like pgyer", "distribute internal iOS and Android test builds to testers", "over-the-air hot updates for react native and flutter apps", "iOS super signature enterprise signing distribution", "manage app versions and beta testing for enterprise mobile apps", "integrate app publishing into jenkins or fastlane pipelines", "collect in-app bug reports via shake gesture SDK", "host an internal app store for company mobile applications"], "what_it_is": "AppSpace is a self-hosted mobile app distribution and testing platform similar to Pgyer (蒲公英) and fir.im, for publishing, version-managing, and distributing iOS, Android, Flutter, and React Native builds within enterprises. It includes OTA/hot updates, iOS super signing, bug reporting via shake gesture SDKs, team management, DingTalk notifications, and CI/CD integration with Jenkins and fastlane.", "when_to_avoid": ["you only distribute apps publicly through the App Store or Google Play", "you need a fully managed SaaS without operating your own MongoDB/Node.js server", "your team is small and a simple file share or TestFlight suffices", "you require commercial-grade support or SLAs"], "when_to_choose": ["you need a private, self-hosted alternative to Pgyer or fir.im for app distribution", "your enterprise cannot upload internal apps to public distribution services", "you want OTA/hot update support across iOS, Android, Flutter, and React Native", "you need integrated bug feedback, team management, and CI/CD deployment in one platform"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/app-space", "repo": "appspa/app-space", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "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:13.162109+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.162109+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:02:55.403566+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ca372391cd7adb8f8bad9f886ee520555fa7a5a7202d11445e6ff5506885198b", "fetched_at": "2026-08-28T04:04:13.162109+00:00", "kind": "readme", "missing": false, "url": "https://github.com/appspa/app-space"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2239, "days_push": 756, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}