{"adoption": {"forks": 5077, "observed_at": "2026-08-28T04:12:01.255514+00:00", "stars": 36774}, "canonical_url": "https://ross.abutalabs.com/products/everyone-can-use-english", "card": {"archived": false, "artifact_type": "application", "description": "人人都能用英语", "domain": ["education", "artificial-intelligence"], "enriched": true, "function": ["speech-recognition", "nlp", "chatbot", "audio-processing", "browser-extension", "gui"], "health_score": 85, "homepage": "https://1000h.org", "language": "TypeScript", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["ZuodaoTech/everyone-can-use-english"], "name": "ZuodaoTech/everyone-can-use-english", "platform": ["browser-extension", "cross-platform"], "pushed_at": "2026-06-29T09:40:15+00:00", "repo": "ZuodaoTech/everyone-can-use-english", "stars": 36774, "tags": ["english-learning", "language-learning", "pronunciation-assessment", "ai-tutor", "shadowing", "speech-evaluation", "flashcards", "ebook-reader", "enjoy-app", "1000-hours-method", "natural-language-processing", "localization", "web-server", "electron", "desktop"], "topics": [], "urls": [], "use_cases": ["practice English pronunciation with AI scoring and correction", "shadow along with imported audio and video materials", "have AI conversation practice as a language partner", "learn English with subtitles on YouTube and Netflix via browser extension", "build vocabulary with flashcards and word notebooks", "track daily language learning hours and progress", "read and analyze English articles and ebooks"], "what_it_is": "Everyone Can Use English is an open-source project combining a well-known English learning book with the Enjoy app, an AI-powered language learning tool for pronunciation correction, shadowing practice with audio/video, AI conversation, and vocabulary memorization. It is available as a web app, a browser extension for YouTube/Netflix, and a desktop application.", "when_to_avoid": ["you need languages other than English", "you want a fully free tool without usage-based charges for AI features", "you need offline-only learning without AI services"], "when_to_choose": ["you want a free, open-source AI-assisted English learning tool", "you need pronunciation feedback with detailed per-syllable scoring", "you want to learn English from real content like videos and articles", "you follow the 1000-hour self-training methodology"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/everyone-can-use-english", "repo": "ZuodaoTech/everyone-can-use-english", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "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:12:01.255514+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:12:01.255514+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:25:51.142604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b18cecd0bd19b883a6b8288fb12b3fec832ab4e6fb0892825d71dd7cbe9f3541", "fetched_at": "2026-08-28T04:12:01.255514+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ZuodaoTech/everyone-can-use-english"}, {"content_hash": "095a9c982113fa7fc6380ae170659e0c07f493b3ebae418b1aafd141355d378b", "fetched_at": "2026-08-29T07:47:38.660474+00:00", "kind": "homepage", "missing": false, "url": "https://1000h.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 100, "rhythm": 40}, "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": 2728, "days_push": 65, "days_rel": 544, "gap_med": 5.0, "n_releases_24m": 15}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}