{"adoption": {"forks": 93, "observed_at": "2026-08-28T04:05:08.988374+00:00", "stars": 1594}, "canonical_url": "https://ross.abutalabs.com/products/tinystatus", "card": {"archived": false, "artifact_type": "application", "description": "Tiny status page generated by a Python script", "domain": ["monitoring", "self-hosted", "web-development"], "enriched": true, "function": ["monitoring", "templating", "configuration-management"], "health_score": 29, "homepage": "https://status.harry.id/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["harsxv/tinystatus"], "name": "harsxv/tinystatus", "platform": ["python", "self-hosted", "cli"], "pushed_at": "2024-10-31T03:53:16+00:00", "repo": "harsxv/tinystatus", "stars": 1594, "tags": ["status-page", "uptime-monitoring", "static-site-generation", "yaml-configuration", "incident-history", "light-dark-theme", "hacktoberfest", "devops", "linux", "macos"], "topics": ["monitoring", "monitoring-tool", "status", "status-page", "hacktoberfest", "hacktoberfest2024", "hacktoberfest-accepted", "python", "python3"], "urls": [], "use_cases": ["generate a status page for my self-hosted services", "monitor http endpoints and open ports with a simple script", "show uptime and incident history on a lightweight status page", "self-hosted alternative to hosted status page services", "check if my servers are up and publish results as html", "track service outages and maintenance windows on a public page"], "what_it_is": "TinyStatus is a lightweight Python script that monitors HTTP endpoints, ping hosts, and TCP ports, then generates a static, responsive status page with incident history. Service checks are configured via a simple YAML file, and the output HTML can be served from any web server.", "when_to_avoid": ["you need alerting via email, Slack, or other notification channels", "you require distributed monitoring, agents, or metrics collection beyond simple up/down checks", "you want a dynamic dashboard with real-time updates rather than periodically regenerated static pages", "you need team collaboration features or multi-user incident management"], "when_to_choose": ["you want a minimal, dependency-light status page without running a full monitoring stack like Uptime Kuma or Zabbix", "you prefer YAML-based configuration and static HTML output served by any web server", "you need both light and dark themes, service grouping, and incident history out of the box", "you are comfortable running a Python 3.11+ script continuously or via cron"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tinystatus", "repo": "harsxv/tinystatus", "role": "main", "score": 24}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "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:08.988374+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.988374+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.633219+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "189701549bc9d9da0a6b93ebbc44e768c25944d545628a3225aedc8ed2d609c8", "fetched_at": "2026-08-28T04:05:08.988374+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harsxv/tinystatus"}, {"content_hash": "0d15708fbc6e85875c7b499424bff6b169a98dd757af7851b53afa86e5eec2b6", "fetched_at": "2026-08-29T11:24:56.553542+00:00", "kind": "homepage", "missing": false, "url": "https://status.harry.id/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 52, "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": 729, "days_push": 671, "days_rel": 678, "gap_med": 7, "n_releases_24m": 4}, "score": 24, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}