{"adoption": {"forks": 155, "observed_at": "2026-08-28T04:07:18.402874+00:00", "stars": 2760}, "canonical_url": "https://ross.abutalabs.com/products/whitenoise", "card": {"archived": false, "artifact_type": "library", "description": "Radically simplified static file serving for Python web apps", "domain": ["web-development", "backend", "developer-tools"], "enriched": true, "function": ["http-server", "middleware", "caching", "compression"], "health_score": 79, "homepage": "https://whitenoise.readthedocs.io", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["evansd/whitenoise"], "name": "evansd/whitenoise", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-18T20:32:58+00:00", "repo": "evansd/whitenoise", "stars": 2760, "tags": ["wsgi", "django", "static-files", "static-file-serving", "heroku", "paas", "web-server"], "topics": ["django"], "urls": [], "use_cases": ["serve static files from a Django app without nginx", "deploy a Python web app as a self-contained unit on Heroku", "replace S3 static file hosting for a small WSGI app", "add gzip and Brotli compression to static asset serving", "set far-future cache headers for hashed static assets", "simplify static file deployment on PaaS providers"], "what_it_is": "WhiteNoise is a Python library that lets WSGI-compatible web apps serve their own static files without needing nginx, S3, or other external services. It handles best practices like gzip/Brotli compression and far-future cache headers, with special auto-configuration for Django.", "when_to_avoid": ["you have very high traffic and prefer a dedicated CDN or nginx setup as the primary server", "your static assets are already served by a CDN or object storage pipeline", "you're not using a WSGI-compatible Python framework"], "when_to_choose": ["you want a Python web app to be self-contained and deployable anywhere", "you're on Heroku or another PaaS and want to avoid extra static file infrastructure", "you want correct compression and caching headers handled automatically", "you use Django and want zero-config static file serving"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/whitenoise", "repo": "evansd/whitenoise", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "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:07:18.402874+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.402874+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:18:45.488980+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2da724d14da69b57c8cb772fd0a73700ce5ddc0123cf9c863d1b1f26f749f04f", "fetched_at": "2026-08-28T04:07:18.402874+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evansd/whitenoise"}, {"content_hash": "7ed66c00000ef5390a4ad1806a37d3ad6e124f0cadf098e30b4ec9eb2848b417", "fetched_at": "2026-08-29T09:57:03.269060+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/whitenoise/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "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": 4773, "days_push": 15, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}