{"id":28510567,"url":"https://github.com/qovery/console","last_synced_at":"2026-02-17T15:01:07.531Z","repository":{"id":36963182,"uuid":"455478145","full_name":"Qovery/console","owner":"Qovery","description":"Qovery Web Console ⚡️","archived":false,"fork":false,"pushed_at":"2026-02-16T20:18:02.000Z","size":28784,"stargazers_count":227,"open_issues_count":20,"forks_count":28,"subscribers_count":3,"default_branch":"staging","last_synced_at":"2026-02-16T22:58:04.156Z","etag":null,"topics":["cypress","hacktoberfest","react","storybook","ui"],"latest_commit_sha":null,"homepage":"https://start.qovery.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Qovery.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-02-04T08:50:11.000Z","updated_at":"2026-02-16T18:18:20.000Z","dependencies_parsed_at":"2025-12-29T23:02:40.754Z","dependency_job_id":null,"html_url":"https://github.com/Qovery/console","commit_stats":null,"previous_names":[],"tags_count":464,"template":false,"template_full_name":null,"purl":"pkg:github/Qovery/console","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qovery%2Fconsole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qovery%2Fconsole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qovery%2Fconsole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qovery%2Fconsole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Qovery","download_url":"https://codeload.github.com/Qovery/console/tar.gz/refs/heads/staging","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qovery%2Fconsole/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29548201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cypress","hacktoberfest","react","storybook","ui"],"created_at":"2025-06-08T23:05:28.142Z","updated_at":"2026-02-17T15:01:07.523Z","avatar_url":"https://github.com/Qovery.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr  /\u003e\n\n\u003cp  align=\"center\"\u003e\n\n\u003ca  href=\"https://qovery.com\"  target=\"_blank\"\u003e\n\n\u003cimg  style=\"display: block; margin: auto; width: 350px;\"  src=\"https://console.qovery.com/assets/logos/logo-white-on-brand.svg\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\u003ca href=\"https://console.qovery.com\"\u003eWeb Console\u003c/a\u003e\u003c/h3\u003e\n\u003cp align=\"center\"\u003eWebsite: \u003ca href=\"https://www.qovery.com\"\u003ehttps://www.qovery.com\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://opensource.org/licenses\"\u003e\u003cimg alt=\"GPLv3 License\" src=\"https://img.shields.io/badge/License-GPL%20v3-yellow.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://codecov.io/github/Qovery/console\" \u003e\n\u003cimg src=\"https://codecov.io/github/Qovery/console/branch/feat/ci-codecov/graph/badge.svg?token=O8SMO6PEQV\"/\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    At Qovery for our Console, we use a couple of technologies, like \u003ca href=\"https://nx.dev\" target=\"_blank\"\u003eNx\u003c/a\u003e, \u003ca href=\"https://reactjs.org\" target=\"_blank\"\u003eReact\u003c/a\u003e, \u003ca href=\"https://tanstack.com/query/v3/\" target=\"_blank\"\u003eReact Query\u003c/a\u003e, \u003ca href=\"https://tailwindcss.com\" target=\"_blank\"\u003eTailwind\u003c/a\u003e, and \u003ca href=\"https://storybook.js.org\" target=\"_blank\"\u003eStorybook\u003c/a\u003e.\n\u003c/p\u003e\n\u003cbr /\u003e\n\n## Getting Started\n\nFirst use\n\n    yarn \u0026\u0026 yarn setup\n\nStart the project on http://localhost:4200\n\n    yarn start\n\nStart Storybook on http://localhost:4400\n\n    yarn storybook\n\nRun tests\n\n    yarn test\n\nGenerate a library\n\n    nx g @nx/react:lib my-lib\n\nGenerate a component\n\n    nx g @nx/react:component my-component\n\nRun unit tests with Jest\n\n    nx affected:test\n\nRun end-to-end tests with Cypress\n\n    nx affected:e2e\n\n## Contributing\n\nQovery Console is actively developed and we need some help, you are welcome to contribute! You can propose improvements directly from the [issues](https://github.com/Qovery/console/issues) page or include them in your pull request for changes.\n\n## Architecture Decision Records\n\nWe try to document our architecture decisions using [Architecture Decision Record](https://github.com/joelparkerhenderson/architecture-decision-record) principle.\nYou can find our [ADR documents here](https://github.com/Qovery/console/tree/staging/adr) and the template used follows [this one](https://github.com/joelparkerhenderson/architecture-decision-record/tree/ab49e5ecad09b0e80c6ebeaf4f41c7958a2ad291/locales/en/templates/decision-record-template-by-michael-nygard)\n\n## Community support\n\nFor help, you can use one of the channels to ask a question:\n\n- [Forum](https://discuss.qovery.com/): (Bug reports, Questions)\n- [GitHub](https://github.com/Qovery/console): (Bug reports, Contributions)\n- [Twitter](https://twitter.com/qovery_): (Get the news fast)\n\n## FAQ\n\n### Why does Qovery exist?\n\nAt Qovery, we believe that the Cloud must be simpler than what it is today. Our goal is to consolidate the Cloud ecosystem and makes it accessible to any developer, DevOps, and company. Qovery helps people to focus on what they build instead of wasting time doing plumbing stuff.\n\n### Why do we use Nx?\n\n- Nx acts as a robust framework, providing significant benefits for React applications.\n- It supports mono-repo architecture, allowing us to divide our application into multiple reusable entities/libraries.\n- It offers tools to generate components, libraries, applications, and to check the health of our applications (e.g., circular dependencies).\n- By using [Nx Cloud](https://cloud.nx.app/orgs/62aaef82e814d400050ea393/workspaces/635932a66ecea758758f0563/overview), we can cache deployments, run tests, and build only the modified parts of the application.\n- It provides a framework for unit tests with [Jest](https://jestjs.io/) and end-to-end tests with [Cypress](https://www.cypress.io/).\n\n### How is the project structured?\n\nTo help you navigate through the project, here is a brief overview of its structure.\n\n```\napps/\n└── console/                # General application with main router and tools like PostHog, Sentry, etc.\n\nlibs/\n├── domains/                # Domain-specific by features\n│   └── [feature-name]/\n│       ├── data-access/    # Data access layer for the feature\n│       └── feature/        # Core logic and components for the feature\n│       ...\n├── pages/                  # Page components for routing and layout, calling features from domain and common shared utilities and components\n└── shared/                 # Shared utilities and components across the application\n    ├── ui/                 # Storybook - UI components for reusable user interface elements\n    ├── util-[name]/        # Utility functions and helpers\n    └── util-queries/       # Shared utility functions for queries\n    ...\n```\n\nThis organization aims to make the codebase more maintainable and understandable, based on our structure and Nx recommendations. For more information about it, read this article: [Organizing and Structuring a React Project with Nx](https://www.qovery.com/blog/nx-architecture-part-1-organizing-and-structuring-a-react-project-with-nx/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqovery%2Fconsole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqovery%2Fconsole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqovery%2Fconsole/lists"}