{"adoption": {"forks": 276, "observed_at": "2026-08-28T04:05:30.182372+00:00", "stars": 1740}, "canonical_url": "https://ross.abutalabs.com/products/mobile-web-best-practice", "card": {"archived": false, "artifact_type": "learning-resource", "description": ":tiger: 移动 web 最佳实践", "domain": ["web-development", "mobile-development", "frontend", "tutorials", "cross-platform"], "enriched": true, "function": ["frontend-framework", "state-management", "form-handling", "developer-tools", "middleware"], "health_score": 60, "homepage": "https://mcuking.github.io/mobile-web-best-practice", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["mcuking/mobile-web-best-practice"], "name": "mcuking/mobile-web-best-practice", "platform": ["cross-platform"], "pushed_at": "2026-02-09T20:43:54+00:00", "repo": "mcuking/mobile-web-best-practice", "stars": 1740, "tags": ["mobile-web", "best-practices", "vue", "hybrid-app", "h5", "jsbridge", "clean-architecture", "offline-package", "micro-frontend", "todo-app", "web-server", "android", "ios", "nodejs"], "topics": ["vue", "h5", "hybrid", "best-practice", "app"], "urls": [], "use_cases": ["learn best practices for mobile web development", "structure a complex SPA with layered clean architecture", "build a hybrid app communicating with native via JSBridge", "implement offline packages and request caching in an H5 app", "set up error monitoring and page state preservation on mobile web", "handle mobile style adaptation and form validation", "configure webpack strategies for a mobile web project"], "what_it_is": "A Vue 3 + TypeScript Todo application that demonstrates best practices for mobile web (H5/hybrid) development, covering layered architecture, micro-frontends, offline packages, JSBridge, error monitoring, and more. It serves as both a reference guide and a working sample app whose patterns apply beyond Vue and to PC web development as well.", "when_to_avoid": ["you need a production-ready framework or library to drop into your project rather than a reference example", "your stack is not Vue-based and you cannot adapt the patterns", "you need a maintained starter with long-term support rather than an intermittently updated demo"], "when_to_choose": ["you are starting a mobile H5 or hybrid web app and want proven patterns", "you want a reference implementation of DDD/clean architecture in a frontend codebase", "you need examples of JSBridge, offline caching, or native capability gating in webviews"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mobile-web-best-practice", "repo": "mcuking/mobile-web-best-practice", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "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:05:30.182372+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.182372+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:30:06.662787+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9c36ea1c9ac548946a007d89a2bf72529652ecccd8a7bce5d806619931d6c3bd", "fetched_at": "2026-08-28T04:05:30.182372+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcuking/mobile-web-best-practice"}, {"content_hash": "a7f018779fd8b1dd2fedeeef9212cebaad270b3b32b5d6c9b7f19ca1713584af", "fetched_at": "2026-08-29T11:07:51.026864+00:00", "kind": "homepage", "missing": false, "url": "https://mcuking.github.io/mobile-web-best-practice"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 66, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2580, "days_push": 205, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}