{"adoption": {"forks": 246, "observed_at": "2026-08-28T04:08:58.895512+00:00", "stars": 4756}, "canonical_url": "https://ross.abutalabs.com/products/python-web", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Curso para aprender desarrollo frontend Web con Python puro desde cero. Elaborado durante las emisiones en directo desde Twitch de MoureDev.", "domain": ["web-development", "frontend", "education", "tutorials"], "enriched": true, "function": ["frontend-framework", "ui-components", "web-framework", "documentation"], "health_score": 87, "homepage": "https://moure.dev", "language": "HTML", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["mouredev/python-web"], "name": "mouredev/python-web", "platform": ["python", "cross-platform"], "pushed_at": "2026-07-09T13:41:50+00:00", "repo": "mouredev/python-web", "stars": 4756, "tags": ["reflex", "pynecone", "video-course", "spanish", "frontend-with-python", "tutorial", "live-coding", "link-bio-project", "web-server"], "topics": ["frontend", "pynecone", "python", "python3", "reflex", "tutorial", "web", "website", "chackra-ui", "css", "tailwindcss", "radix-ui", "docker", "postgresql", "railway", "react", "supabase", "vercel", "api-rest", "github-actions"], "urls": [], "use_cases": ["learn frontend web development with pure python", "reflex framework tutorial for beginners", "build a link in bio website with python", "free python web development video course", "learn to deploy a reflex app to vercel or railway", "python alternative to javascript react frontend", "curso de desarrollo web con python desde cero"], "what_it_is": "A free 13-hour video course teaching frontend web development from scratch using pure Python and the Reflex framework, created by MoureDev during live Twitch streams. The repository contains the course code (a link-in-bio web app) plus an advanced course covering deployment with Docker, PostgreSQL, and platforms like Vercel, Railway, and Supabase.", "when_to_avoid": ["you need production-grade frontend tooling or fine-grained control over React", "you want a framework rather than a course - this is educational material, not a library", "you need English-language content or non-Reflex stacks like Next.js or Vue"], "when_to_choose": ["you know Python and want to build web frontends without learning JavaScript", "you prefer video-based, step-by-step tutorials in Spanish", "you want a complete project (link-bio app) to follow along and deploy"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-web", "repo": "mouredev/python-web", "role": "main", "score": 70}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "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:08:58.895512+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:58.895512+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:18:53.256006+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "516903738b0b26bc4efe4334d6f9875432aa9af8a93b2dd1cfaf528fd0e15601", "fetched_at": "2026-08-28T04:08:58.895512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mouredev/python-web"}, {"content_hash": "e08cea261aca739552f662f78bf012a721862892a6dfa76ea9d9a142e52b7392", "fetched_at": "2026-08-29T09:02:16.003711+00:00", "kind": "homepage", "missing": false, "url": "https://moure.dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 76, "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": 1065, "days_push": 55, "days_rel": 530, "gap_med": 3, "n_releases_24m": 2}, "score": 70, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}