{"id":13547330,"url":"https://github.com/lyft/clutch","last_synced_at":"2025-05-14T02:09:56.291Z","repository":{"id":36987353,"uuid":"259751605","full_name":"lyft/clutch","owner":"lyft","description":"Extensible platform for infrastructure management","archived":false,"fork":false,"pushed_at":"2025-05-08T22:08:31.000Z","size":31003,"stargazers_count":1754,"open_issues_count":102,"forks_count":123,"subscribers_count":270,"default_branch":"main","last_synced_at":"2025-05-08T23:20:50.373Z","etag":null,"topics":["developer-portal","infrastructure-management","lyft"],"latest_commit_sha":null,"homepage":"https://clutch.sh","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lyft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-04-28T21:07:44.000Z","updated_at":"2025-05-07T12:33:04.000Z","dependencies_parsed_at":"2023-01-17T11:46:57.961Z","dependency_job_id":"bc1355b5-54b9-48ce-9029-dba7fcf8f23a","html_url":"https://github.com/lyft/clutch","commit_stats":{"total_commits":1972,"total_committers":65,"mean_commits":"30.338461538461537","dds":0.6607505070993915,"last_synced_commit":"2d30fd58d496d388bba507b84eee4447165fff5d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Fclutch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Fclutch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Fclutch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lyft%2Fclutch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lyft","download_url":"https://codeload.github.com/lyft/clutch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254053321,"owners_count":22006717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["developer-portal","infrastructure-management","lyft"],"created_at":"2024-08-01T12:00:54.059Z","updated_at":"2025-05-14T02:09:51.274Z","avatar_url":"https://github.com/lyft.png","language":"Go","funding_links":[],"categories":["Go","others","Platforms","Internal Developer Portals","Notable Tools"],"sub_categories":["AWS Amplify"],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"http://www.clutch.sh/\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1004789/86156525-f1b3d780-baba-11ea-88a3-51a7391cd310.png\" alt=\"Clutch\" width=\"100%\"\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"http://www.clutch.sh/\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1004789/86159195-d054ea80-babe-11ea-997f-a309b1b43040.png\" alt=\"Clutch\" width=\"300\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003ch4 align=\"center\"\u003eAn extensible platform for infrastructure management\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-Apache%202.0-blue\" alt=\"License\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://join.slack.com/t/lyftoss/shared_invite/zt-casz6lz4-G7gOx1OhHfeMsZKFe1emSA\"\u003e\n    \u003cimg alt=\"Slack\" src=\"https://img.shields.io/badge/Slack-@lyftoss/clutch-lightgrey?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAllJREFUOI2Fkk9IVFEUh79z732jZePEhJagi4pMhAor21Q7KSpcJBjVItpEywpCKBGKalMRtIwgokXtIsn+kFK0ECGhViEIUW5a+I8ZU57z3pt7WkyFPgMv3M09H989h98RUmf7x9nTucDeVWVqdH9uF8CO131jAjXFxfDsRNfd90t5lxbkAtsj1jUYYxp2Dy8+C2d78iZwLaiSraq+ASwTmLQgKfPBZKoR6xB8HZJ4vAdVRJA0v0Lw+WDu0kibFR+FzRP713QYWR/8Kwqa5l3Lx0JXNpAeVA2IAqiqiWM/No2c2Ujvil9bBq7ccWIPzvm5XlfreCjW5VG/DAoyVXv3DCeTYaFHIVt51ErHa9bVXPZxwvo498AgFEQESF2F2Ngx76NPElgksJRVvzW/6T2gXhEERecr7Y2Gb0F8W1TKGOCLC9QbO0h71W0ABvpuIbaeY9fOsUnh0bUhoMTR68ccwGT7gbBMJruJkQ4BJml8aPk5veHPOHF072do6vZF/a1DhlbNxMVI1C/UAPKj6dR4xrhtToT6709kovHk8+ogcxyFhYmou/bV6M61LtsXJcsDsFYolZLPTkTqPYrBVEZvkpbIl5FK6OeNo6CApgJUr4DkXVJcuEhtzYVfyeLrStbyLw5pUMkf/tY909/6UsVu/lsTwCc+lqRw020t9j+myON01gAkKAob5GsnK5cQ+M8mLsV0ysazb5uHwne7NRxs06kX266uKlC0LCLYyt7OAz4ue6LYI1LduarAz4f3E/VzJZ+Mb+HpifyR8UNxrN/j2M8Ynb2R5n8DJJL6gIHi/LUAAAAASUVORK5CYII%3D\u0026style=social\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://reactjs.org/\"\u003e\n    \u003cimg alt=\"react\" src=\"https://img.shields.io/badge/React-grey?logo=react\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://golang.org/\"\u003e\n    \u003cimg alt=\"golang\" src=\"https://img.shields.io/badge/Go-grey?logo=go\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e •\n  \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e •\n  \u003ca href=\"#extending-clutch\"\u003eExtending Clutch\u003c/a\u003e •\n  \u003ca href=\"#documentation\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/39421794/104223887-39c09900-5412-11eb-9791-af10afdc6bbb.gif\" width=\"75%\" /\u003e\n\u003c/div\u003e\n\n## Key Features\n\n**Clutch** provides everything you need to simplify operations and in turn improve your developer experience and operational capabilities. It comes with several out-of-the-box features for managing cloud-native infrastructure, but is designed to be org-agnostic and easily taught how to find or interact with whatever you run, wherever you run it.\n\n- 🔌 **Highly extensible.**\n  - Extension points exist throughout the stack to allow custom integrations without rewrites.\n  - Clutch is configuration-driven so it can be deployed and reconfigured for varied environments with ease.\n  - Private extensions can be plugged-in without maintaining a fork.\n- 🔎 **Built for discovery.**\n  - Resources have many common names. Clutch's Resolver pattern makes it easier than ever to locate resources.\n  - The Resolver provides server-generated forms with one-line of frontend code, ensuring the API and frontend are always in sync.\n- 💻 **Easy to develop, run, and maintain.**\n  - Developed with Go and Typescript, plus Protobuf for generated interfaces throughout.\n  - Back-end abstractions ensure loose coupling and put feature development on rails.\n  - Frontend components make it simple for developers with limited frontend experience to ship features.\n  - Deployable as a single binary containing both backend and frontend resources.\n  - Basic auditing, authorization, stats, and logging come for free with every endpoint.\n- 🔒 **Secure and observable.**\n  - Single sign-on support.\n  - Role-based access control (RBAC) engine for granular access control beyond what vendor IAM policies support.\n  - Built-in auditing with sinks for Slack and more.\n  - Extensive logging and stats capabilities.\n\n## Getting Started\n\nSo you want to run Clutch? That's great to hear! There are several supported methods of running Clutch, all\nof which are outlined in our [Getting Started documentation](https://clutch.sh/docs/getting-started/build-guides) to learn how to run Clutch in Docker or build it locally.\n\nClutch also has a [mock server](https://clutch.sh/docs/getting-started/mock-gateway) for testing and developing features in isolation from the systems they depend on.\n\n## Extending Clutch\n\nClutch ships with a default configuration and some out of the box workflows to make on-boarding as easy\nas possible. However, there are lots of use cases for Clutch, some of which may not be written yet and others which are not broadly applicable.\n\nTo get started developing new features or functionality within Clutch check out the\n[development guides](https://clutch.sh/docs/development/guide) on how to\ndevelop each of the different pieces. While you're there, take a few additional minutes to read through the [configuration documentation](https://clutch.sh/docs/configuration). This allows you to override the default configuration that ships out of the box with Clutch.\n\n## Documentation\n\nClutch has extensive documentation that can be found on our site [clutch.sh](https://clutch.sh/docs/).\n\nIf you're looking for the source of the hosted documentation both the content and the code\nfor the website live within the [docs/](docs/) directory.\n\n## Contributing\n\nThinking of contributing back to Clutch? Awesome! We love and welcome all contributions.\n\nFirst things first, please read over our [Code of Conduct](./CODE_OF_CONDUCT) and our\n[guidelines](https://clutch.sh/docs/community#contributing) before opening a pull\nrequest.\n\nWant to contribute but not sure where to start? Check out the\n[`good first issue`](https://github.com/lyft/clutch/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) for tasks specifically scoped for those with less\nfamiliarity.\n\nAll contributions require that the author has signed the [Lyft CLA](https://oss.lyft.com/cla/clas/1.0). Login to the [Lyft CLA Service](https://oss.lyft.com/cla) with GitHub to review and sign the CLA.\nIf you are contributing on behalf of an organization please reach out to clutch@lyft.com to have\nyour company added.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyft%2Fclutch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flyft%2Fclutch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flyft%2Fclutch/lists"}