{"adoption": {"forks": 94, "observed_at": "2026-08-28T04:03:39.282030+00:00", "stars": 1118}, "canonical_url": "https://ross.abutalabs.com/products/langshiftdev", "card": {"archived": false, "artifact_type": "learning-resource", "description": "🌍 Programming language learning platform for developers. Master new languages through comparison learning. Interactive editor, performance monitoring, multi-language support. ", "domain": ["education", "programming-languages", "tutorials", "web-development"], "enriched": true, "function": ["documentation", "editor", "developer-tools"], "health_score": 76, "homepage": "https://langshift.dev", "language": "MDX", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["erweixin/langshift.dev"], "name": "erweixin/langshift.dev", "platform": ["browser"], "pushed_at": "2026-07-19T04:20:28+00:00", "repo": "erweixin/langshift.dev", "stars": 1118, "tags": ["comparison-learning", "interactive-code-editor", "mdx", "nextjs", "fumadocs", "free-tutorials", "leetcode", "syntax-mapping", "open-courseware", "multi-language", "web"], "topics": ["code-comparison", "interactive-learning", "programming-language-learning"], "urls": [], "use_cases": ["learn python as a javascript developer", "learn rust coming from javascript", "compare syntax between two programming languages side by side", "free programming language tutorials without signup", "learn go concurrency from a javascript background", "transition from backend python to full-stack javascript", "learn c pointers and memory management with an interactive editor", "practice leetcode hot 100 problems with explanations"], "what_it_is": "LangShift.dev is a free, open-source web platform that teaches developers new programming languages through side-by-side comparison with languages they already know, such as JavaScript to Python, Rust, Go, Kotlin, C++, C, Swift, and Java. It offers 80+ progressive learning modules with interactive code editors, syntax and concept mappings, real-world projects, and LeetCode problem walkthroughs, built with Next.js, React, TypeScript, and MDX.", "when_to_avoid": ["you are a complete beginner with no prior programming experience, since the material assumes familiarity with a source language", "you need officially certified or academically accredited coursework", "you need a language pair not yet covered, such as Python to Rust or JavaScript to Dart", "you require guaranteed up-to-date accuracy, since some content is AI-assisted and the project recommends pairing it with official documentation"], "when_to_choose": ["you already know one language (e.g. JavaScript or Python) and want to leverage that knowledge to learn another quickly", "you prefer side-by-side syntax comparisons and concept mapping over from-scratch tutorials", "you want free, browser-based interactive lessons with runnable code examples and no registration", "you want structured, progressive module paths covering basics through idiomatic style and real projects"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/langshiftdev", "repo": "erweixin/langshift.dev", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "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:39.282030+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:39.282030+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:41:47.447840+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "708d4c0e9868ddbbc7196b950a83150b6f0e319039b10b7291eab06ac95f7cef", "fetched_at": "2026-08-28T04:03:39.282030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/erweixin/langshift.dev"}, {"content_hash": "dc5e57c10f1e57a78327347a89428f8b7b7c89b721a2e7ff263594e770086ef3", "fetched_at": "2026-08-29T12:45:26.525942+00:00", "kind": "homepage", "missing": false, "url": "https://langshift.dev"}, {"content_hash": "bd84aade364b9f1b1a4a7b6e6d324cbf5547bfaeb90a619b9bf121fea6dd4cc1", "fetched_at": "2026-08-29T12:45:26.534969+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2py"}, {"content_hash": "e68af0d89fa0c527eb94ae0d94eef7fc897efe9b6bb840c02bff211f5f56aa16", "fetched_at": "2026-08-29T12:45:26.537006+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2rust"}, {"content_hash": "8bac02389f2e5a476ea71c8784e05d97c591905e10e1e8bd8f76d0720dacb07d", "fetched_at": "2026-08-29T12:45:26.538775+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2cpp"}, {"content_hash": "3169a39b10de407b71294fe0d3f149c42c47df20975be2a4508c8c1e67699765", "fetched_at": "2026-08-29T12:45:26.540508+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2go"}, {"content_hash": "6c2c5fbd2a4b666c8eb919517bb4631f3f178f5bac944db137d61f363ba40adc", "fetched_at": "2026-08-29T12:45:26.542348+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2swift"}, {"content_hash": "8c8161c8d34854187b2b37b21e5d73881b0ad2b5358c6c4803661d5d7b25f0e9", "fetched_at": "2026-08-29T12:45:26.544289+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2c"}, {"content_hash": "1663e9fef2413fae15c14d8cd36234dea31be3518bc5f4f68c2028ff3654c8ec", "fetched_at": "2026-08-29T12:45:26.546011+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/js2kotlin"}, {"content_hash": "805234445df79d53e0cf107dea5dc6166a38c54a114753abeba7d00a03973e57", "fetched_at": "2026-08-29T12:45:26.547562+00:00", "kind": "site_page", "missing": false, "url": "https://langshift.dev/zh-cn/docs/py2js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 30, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 421, "days_push": 45, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}