{"id":13403824,"url":"https://github.com/open-sauced/open-sauced","last_synced_at":"2025-10-05T21:31:47.282Z","repository":{"id":37011225,"uuid":"71359796","full_name":"open-sauced/open-sauced","owner":"open-sauced","description":"🍕  This is a project to identify your next open source contribution. ","archived":true,"fork":false,"pushed_at":"2023-05-24T14:55:53.000Z","size":96334,"stargazers_count":943,"open_issues_count":0,"forks_count":1077,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-01-24T13:37:33.852Z","etag":null,"topics":["contribution","graphql","open-source","pizza","storybook"],"latest_commit_sha":null,"homepage":"https://app.opensauced.pizza","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-sauced.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null},"funding":{"github":["open-sauced","ajcwebdev"]}},"created_at":"2016-10-19T13:24:51.000Z","updated_at":"2025-01-03T10:41:53.000Z","dependencies_parsed_at":"2023-02-14T15:15:37.646Z","dependency_job_id":"b9458464-bcb6-4cdd-8771-e1693efd3e9e","html_url":"https://github.com/open-sauced/open-sauced","commit_stats":null,"previous_names":[],"tags_count":193,"template":false,"template_full_name":null,"purl":"pkg:github/open-sauced/open-sauced","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-sauced%2Fopen-sauced","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-sauced%2Fopen-sauced/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-sauced%2Fopen-sauced/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-sauced%2Fopen-sauced/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-sauced","download_url":"https://codeload.github.com/open-sauced/open-sauced/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-sauced%2Fopen-sauced/sbom","scorecard":{"id":708520,"data":{"date":"2025-08-11","repo":{"name":"github.com/open-sauced/open-sauced","commit":"0c5bc301aa3dc821109f2a5f6bb821d880c2e805"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.4,"checks":[{"name":"Code-Review","score":3,"reason":"Found 9/30 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/development.yml:1","Warn: no topLevel permission defined: .github/workflows/maintenance.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/storybook.yml:1","Warn: no topLevel permission defined: .github/workflows/triage.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.57.0 not signed: https://api.github.com/repos/open-sauced/open-sauced/releases/104130219","Warn: release artifact v0.56.1 not signed: https://api.github.com/repos/open-sauced/open-sauced/releases/96792719","Warn: release artifact v0.56.0 not signed: https://api.github.com/repos/open-sauced/open-sauced/releases/86039331","Warn: release artifact v0.55.0 not signed: https://api.github.com/repos/open-sauced/open-sauced/releases/83771212","Warn: release artifact v0.54.2 not signed: https://api.github.com/repos/open-sauced/open-sauced/releases/80983720","Warn: release artifact v0.57.0 does not have provenance: https://api.github.com/repos/open-sauced/open-sauced/releases/104130219","Warn: release artifact v0.56.1 does not have provenance: https://api.github.com/repos/open-sauced/open-sauced/releases/96792719","Warn: release artifact v0.56.0 does not have provenance: https://api.github.com/repos/open-sauced/open-sauced/releases/86039331","Warn: release artifact v0.55.0 does not have provenance: https://api.github.com/repos/open-sauced/open-sauced/releases/83771212","Warn: release artifact v0.54.2 does not have provenance: https://api.github.com/repos/open-sauced/open-sauced/releases/80983720"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/open-sauced/.github/SECURITY.md:1","Info: Found linked content: github.com/open-sauced/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/open-sauced/.github/SECURITY.md:1","Info: Found text in security policy: github.com/open-sauced/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/codeql-analysis.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/compliance.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/compliance.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/compliance.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/compliance.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compliance.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/compliance.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/development.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/development.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/development.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/development.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/development.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/development.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/development.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/development.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/development.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/development.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/development.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/development.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/maintenance.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/maintenance.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:141: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:148: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:160: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/storybook.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/storybook.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/storybook.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/storybook.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/storybook.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/storybook.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/storybook.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/storybook.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/triage.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/open-sauced/open-sauced/triage.yml/main?enable=pin","Warn: containerImage not pinned by hash: .devcontainer/Dockerfile:2","Warn: containerImage not pinned by hash: .gitpod.Dockerfile:1: pin your Docker image by updating gitpod/workspace-full to gitpod/workspace-full@sha256:b1195dfae7ee9a12a89d195247c3e1357cc6a18360a41473dbec67525ef434e2","Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:21","Warn: containerImage not pinned by hash: Dockerfile:25","Warn: npmCommand not pinned by hash: .devcontainer/Dockerfile:11","Warn: npmCommand not pinned by hash: .gitpod.Dockerfile:14","Warn: npmCommand not pinned by hash: Dockerfile:9","Warn: npmCommand not pinned by hash: .github/workflows/development.yml:28","Warn: npmCommand not pinned by hash: .github/workflows/development.yml:50","Warn: npmCommand not pinned by hash: .github/workflows/release.yml:73","Warn: npmCommand not pinned by hash: .github/workflows/storybook.yml:27","Info:   0 out of  22 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  16 third-party GitHubAction dependencies pinned","Info:   0 out of   5 containerImage dependencies pinned","Info:   1 out of   8 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T07:27:29.223Z","repository_id":37011225,"created_at":"2025-08-22T07:27:29.223Z","updated_at":"2025-08-22T07:27:29.223Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278525548,"owners_count":26001321,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["contribution","graphql","open-source","pizza","storybook"],"created_at":"2024-07-30T19:01:35.124Z","updated_at":"2025-10-05T21:31:46.732Z","avatar_url":"https://github.com/open-sauced.png","language":"JavaScript","funding_links":["https://github.com/sponsors/open-sauced","https://github.com/sponsors/ajcwebdev"],"categories":["JavaScript"],"sub_categories":[],"readme":"_This repo is archived. If you are looking for the latest, check out [open-sauced/insights](https://github.com/open-sauced/insights) or [open-sauced/hot](https://github.com/open-sauced/hot)._\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg alt=\"Open Sauced\" src=\"https://i.ibb.co/7jPXt0Z/logo1-92f1a87f.png\" width=\"300px\"\u003e\n  \u003ch1\u003e🍕 Open Sauced 🍕\u003c/h1\u003e\n  \u003cstrong\u003eThe path to your next Open Source contribution\u003c/strong\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/open-sauced/open-sauced/actions/workflows/codeql-analysis.yml\"\u003e\n    \u003cimg src=\"https://github.com/open-sauced/open-sauced/actions/workflows/codeql-analysis.yml/badge.svg\" alt=\"CodeQL\" style=\"max-width: 100%;\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/open-sauced/open-sauced/actions/workflows/compliance.yml\"\u003e\n    \u003cimg src=\"https://github.com/open-sauced/open-sauced/actions/workflows/compliance.yml/badge.svg\" alt=\"Compliance\" style=\"max-width: 100%;\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/open-sauced/open-sauced/actions/workflows/release.yml\"\u003e\n    \u003cimg src=\"https://github.com/open-sauced/open-sauced/actions/workflows/release.yml/badge.svg\" alt=\"Release\" style=\"max-width: 100%;\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/open-sauced/open-sauced/actions/workflows/storybook.yml\"\u003e\n    \u003cimg src=\"https://github.com/open-sauced/open-sauced/actions/workflows/storybook.yml/badge.svg\" alt=\"Publish stories if changed\" style=\"max-width: 100%;\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://app.netlify.com/sites/open-sauced/deploys\"\u003e\n    \u003cimg src=\"https://api.netlify.com/api/v1/badges/76a3de8e-270c-4adf-89d5-3a3863da74e6/deploy-status\" alt=\"Netlify Status\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Dependabot-active-brightgreen.svg\" alt=\"Dependabot Badge\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/languages/code-size/open-sauced/open-sauced\" alt=\"GitHub code size in bytes\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/commit-activity/w/open-sauced/open-sauced\" alt=\"GitHub commit activity\"\u003e\n  \u003ca href=\"https://github.com/open-sauced/open-sauced/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/open-sauced/open-sauced\" alt=\"GitHub issues\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/open-sauced/open-sauced/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/open-sauced/open-sauced.svg?style=flat\" alt=\"GitHub Release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/U2peSNf23P\"\u003e\n    \u003cimg src=\"https://img.shields.io/discord/714698561081704529.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2\" alt=\"Discord\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/saucedopen\"\u003e\n    \u003cimg src=\"https://img.shields.io/twitter/follow/saucedopen?label=Follow\u0026style=social\" alt=\"Twitter\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nOpen Sauced provides structured onboarding for new contributors to open source. This structure provides a way to track your next contributions by leveraging a unique dashboard built on top of the [GitHub GraphQL API](https://docs.github.com/en/free-pro-team@latest/graphql).\n\n[![open-sauced-screencap](./src/images/homepage.png)\n](https://opensauced.pizza)\n\n## 📖 Prerequisites\n\nIn order to run the project from a container we need `node\u003e=14`, `npm\u003e=7` and `docker\u003e=20` installed on our development machines or\nuse one of the listed cloud providers we support:\n\n### Gitpod\n\n\u003e ✅ fully ready [integrated development environment](https://www.gitpod.io/docs/editors)\n\n\u003e ⭕ [VS Code settings sync is not ideal](https://github.com/gitpod-io/gitpod/issues/3733)\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/open-sauced/open-sauced)\n\n[Gitpod](https://www.gitpod.io) is mostly free but has [extensive documentation](https://www.gitpod.io/docs/develop) for all its contributing features.\n\nFor [Vite](https://vitejs.dev) to work with Gitpod we need to use [a custom Dockerfile](https://www.gitpod.io/docs/config-docker) that lives under [.gitpod.Dockerfile](./.gitpod.Dockerfile).\n\nOpen Sauced comes with a pre-defined [.gitpod.yml](./.gitpod.yml) that should work out of the box in multiple [contribution scenarios](https://www.gitpod.io/docs/references/gitpod-yml).\n\n### Replit\n\n\u003e ✅ fully ready [integrated development environment](https://replit.com/site/ide)\n\n\u003e ⭕ [modified contribution workflows](https://docs.replit.com/tutorials/06-github-and-run-button)\n\n[![Open in Replit](https://repl.it/badge/github/open-sauced/open-sauced)](https://repl.it/github/open-sauced/open-sauced)\n\n[Replit](https://replit.com/) is an old service that recently supported [NixOS](https://nixos.org/guides/nix-pills/enter-environment.html), enabling full customisation of the runner and project.\n\nOpen Sauced is configured with a shell environment supporting node@16 and npm@8. The build environment script lives in [shell.nix](./shell.nix) and the [repl config](https://docs.replit.com/programming-ide/configuring-repl) lives in [.replit](./replit).\n\n### Codesandbox\n\n\u003e ✅ can be used as editor replacement\n\u003e\n\u003e ✅ supports deployment preview\n\n\u003e ⭕ [enforces custom package manager for stability](https://codesandbox.io/docs/configuration#sandbox-configuration)\n\u003e\n\u003e ⭕ low resources [free tier limitations](https://codesandbox.io/docs/faq#are-there-any-limitations-with-sandboxes)\n\n[![Open in CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/github/open-sauced/open-sauced?fontsize=14\u0026hidenavigation=1\u0026theme=dark\u0026previewwindow=console\u0026runonclick=1)\n\n### Stackblitz\n\n\u003e ✅ can be used as editor replacement\n\u003e\n\u003e ✅ supports deployment preview\n\n\u003e ⭕ [enforces custom package manager for stability](https://developer.stackblitz.com/docs/platform/turbo/)\n\u003e\n\u003e ⭕ limited documentation on [container limitations](https://developer.stackblitz.com/docs/platform/project-config)\n\n[![Open in Stackblitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/open-sauced/open-sauced)\n\n### Glitch\n\n\u003e ✅ can be used as editor replacement\n\n\u003e ✅ supports deployment preview\n\n\u003e ⭕ [enforces custom package manager for stability](https://help.glitch.com/kb/article/59-can-i-change-the-version-of-node-js-my-project-uses/)\n\u003e\n\u003e ⭕ does not support stacked hot module reload\n\u003e\n\u003e ⭕ severely low resources [free tier limitations](https://help.glitch.com/kb/article/17-what-are-the-technical-restrictions-for-glitch-projects/)\n\n[![Remix on Glitch](./src/icons/remix-button.svg)](https://glitch.com/edit/#!/import/github/open-sauced/open-sauced)\n\n\u003cimg align=\"right\" src=\"https://i.ibb.co/CJfW18H/ship.gif\" width=\"200\"/\u003e\n\n## 🖥️ Local development\n\nTo install the application:\n\n```shell\nnpm ci\n```\n\nTo start a local copy of the app on port `3000`:\n\n```shell\nnpm start\n```\n\n### 🧪 Test\n\nFor running the test suite, use the following command. Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to [install watchman](https://facebook.github.io/watchman/docs/install.html).\n\n```shell\nnpm test\n```\n\nYou can request a coverage report by running the following command:\n\n```shell\nnpm run test:coverage\n```\n\n### 📦 Docker builds\n\nA development preview can also be run from docker:\n\n```shell\ndocker build -t open-sauced-dev .\ndocker run -p 8080:80 open-sauced-dev\n```\n\nAlternatively you can pull the production container and skip all builds: \n\n```shell\ndocker run -dit -p 8080:80 ghcr.io/open-sauced/open-sauced\n```\n\n### 🎨 Code linting\n\nTo check the code and styles quality, use the following command:\n\n```shell\nnpm run lint\n```\n\nThis will also display during development, but not break on errors.\n\nTo fix the linting errors, use the following command:\n\n```shell\nnpm run format\n```\n\n### 🚀 Production deployment\n\nA production deployment is a complete build of the project, including the build of the static assets.\n\n```shell\nnpm run build\n```\n\nYou can analyze the build by running the following command:\n\n```shell\nnpm run build:analyze\n```\n\n### 🎭 Offline asset optimization\n\nWe also have a script for updating `.svg` files used in the project, you only need to run this if you add new assets:\n\n```shell\nnpm run build:svgo\n```\n\nAnd one for `.png` and `.jpg` files:\n\n```shell\nnpm run build:squoosh\n```\n\n### 🚧 Development debugging\n\nThanks to [antfu/vite-plugin-inspect](https://github.com/antfu/vite-plugin-inspect) we can always inspect the bundles in development by navigating to [localhost:3000/__inspect/](http://localhost:3000/__inspect/) in your browser.\n\n### 📙 Storybook\n\nStorybook is being leveraged to mock out visual React components. The latest version of the design system can be found at this [URL](https://sauced-components.netlify.app/).\n\n```shell\nnpm run storybook\n```\n\n![storybook example screenshot](https://user-images.githubusercontent.com/5713670/68147486-0cd14600-ff32-11e9-8cc0-fd91f4171b87.png)\n\n### 🔑 Authentication\n\nAuthentication is handled through [OneGraph's AuthGuardian](https://www.onegraph.com/docs/auth_guardian.html) service.\n\n### 💾 Database\n\nThis project uses GitHub as a database. When you login, you will be presented with a button to create a goals repository. That repository template lives at [open-sauced/goals-template](https://github.com/open-sauced/goals-template).\n\n### 💨 Service Worker\n\nThis project uses the sw-precache to kickstart an offline cache. The offline cache only registers in production. If service needs to be manually removed make an **unregister** call from the registerServiceWorker.js import.\n\n### 🌙 Dark Mode\n\nThis project supports \"dark mode\" styling, and by default it will follow the color preference on your device. It also allows for overriding this using buttons at the top right of the screen, which will persist the preference to local storage on your device. More info about color preference web API's can be found here: [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)\n\n### 📝 Markdown Support\n\nThis project leverages [Remirror](https://remirror.io/) for a delightful experience in documenting your Open Source goals. The editor supports markdown features including heading levels, bulleted lists, text formatting, code snippets, and emojis!\n\n## 🤝 Contributing\n\nWe encourage you to contribute to Open Sauced! Please check out the [Contributing guide](https://docs.opensauced.pizza/contributing/introduction-to-contributing/) for guidelines about how to proceed.\n\nWe have a commit utility called [@open-sauced/conventional-commit](https://github.com/open-sauced/conventional-commit) that helps you write your commits in a way that is easy to understand and process by others.\n\nIt is generally integrated as an `npm` script but you can run it with `npx` as well:\n\n```shell\nnpm run push\n```\n\nFor any other npm based project or dotnpmrc defaulting to `--yes`:\n\n```shell\nnpx -y @open-sauced/conventional-commit\n```\n\n## 🍕 Community\n\nGot Questions? Join the conversation in our [Discord](https://discord.gg/U2peSNf23P).  \nFind Open Sauced videos and release overviews on our [YouTube Channel](https://www.youtube.com/channel/UCklWxKrTti61ZCROE1e5-MQ).\n\n## 🎦 Repository Visualization \n\n[![Visualization of this repository](./public/diagram.svg)\n](./src)\n\n## ⚖️ LICENSE\n\nMIT © [Open Sauced](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-sauced%2Fopen-sauced","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-sauced%2Fopen-sauced","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-sauced%2Fopen-sauced/lists"}