{"adoption": {"forks": 49, "observed_at": "2026-08-28T04:04:33.458526+00:00", "stars": 1377}, "canonical_url": "https://ross.abutalabs.com/products/monday", "card": {"archived": false, "artifact_type": "cli-tool", "description": "⚡️ A dev tool for microservice developers to run local applications and/or forward others from/to Kubernetes SSH or TCP", "domain": ["developer-tools", "microservices"], "enriched": true, "function": ["developer-tools", "deployment", "networking", "configuration-management", "cli"], "health_score": 95, "homepage": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["eko/monday"], "name": "eko/monday", "platform": ["cli", "go"], "pushed_at": "2026-07-08T16:45:52+00:00", "repo": "eko/monday", "stars": 1377, "tags": ["port-forwarding", "kubernetes", "ssh-tunnel", "hot-reload", "local-development", "devops", "containers", "command-line", "linux", "macos"], "topics": ["kubernetes", "ssh", "tcp", "microservice", "architecture", "devops", "development-tools", "development", "hacktoberfest"], "urls": [], "use_cases": ["run multiple local microservices with one command instead of ten terminals", "port-forward a Kubernetes service to my local machine for development", "forward remote services over SSH or TCP locally while developing", "hot reload my Go or NodeJS app when files change locally", "standardize microservice dev setup across a team with shared YAML config", "auto-reconnect lost port-forward connections during development", "run some services locally and reach others in a remote cluster"], "what_it_is": "Monday is a Go-based CLI tool that gives microservice developers a unified YAML-configured environment for running local applications with hot reload. It can also port-forward remote services from Kubernetes (via pod labels), SSH, or TCP so developers don't have to run every dependency locally.", "when_to_avoid": ["you don't use Kubernetes or SSH-accessible remote environments", "you need full local orchestration via containers (use docker-compose or Tilt instead)", "you want a GUI-based development environment"], "when_to_choose": ["your team develops microservices against a shared Kubernetes environment and wants consistent local setups", "you want to mix locally-run apps with port-forwarded remote dependencies", "you need hot reload plus multi-service orchestration in a single CLI"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/monday", "repo": "eko/monday", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "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:04:33.458526+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.458526+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.053775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "41d1d731b644dc1e97d4661c8858d6ee700286d6b78936f516e657ff4976a984", "fetched_at": "2026-08-28T04:04:33.458526+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eko/monday"}, {"content_hash": "ee768074a41ee9941405826fff43008dddfbee090388253f75f4ed43641efccc", "fetched_at": "2026-08-29T11:56:33.736691+00:00", "kind": "homepage", "missing": false, "url": "https://vincent.composieux.fr/article/how-does-monday-use-go-and-how-does-it-work/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 92}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2611, "days_push": 56, "days_rel": 56, "gap_med": 0, "n_releases_24m": 2}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}