{"id":15018979,"url":"https://github.com/openwhyd/openwhyd","last_synced_at":"2026-05-03T13:06:11.406Z","repository":{"id":9940014,"uuid":"63590306","full_name":"openwhyd/openwhyd","owner":"openwhyd","description":"💎 Like Pinterest, but for Music 🎧","archived":false,"fork":false,"pushed_at":"2026-05-01T06:35:01.000Z","size":48734,"stargazers_count":425,"open_issues_count":96,"forks_count":78,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-05-01T08:30:59.585Z","etag":null,"topics":["bandcamp","curation","dailymotion","deezer","mp3","music","music-player","player","soundcloud","streaming","vimeo","youtube"],"latest_commit_sha":null,"homepage":"https://openwhyd.org/","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/openwhyd.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"openwhyd"}},"created_at":"2016-07-18T09:46:19.000Z","updated_at":"2026-05-01T06:23:13.000Z","dependencies_parsed_at":"2024-03-30T07:22:46.131Z","dependency_job_id":"1d7658c1-c7db-400d-ad5e-c1598b92dcab","html_url":"https://github.com/openwhyd/openwhyd","commit_stats":{"total_commits":1803,"total_committers":27,"mean_commits":66.77777777777777,"dds":0.5002773155851359,"last_synced_commit":"d48a2f198004cd9e79eb3ae1a980f899893514a5"},"previous_names":[],"tags_count":540,"template":false,"template_full_name":null,"purl":"pkg:github/openwhyd/openwhyd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwhyd%2Fopenwhyd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwhyd%2Fopenwhyd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwhyd%2Fopenwhyd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwhyd%2Fopenwhyd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openwhyd","download_url":"https://codeload.github.com/openwhyd/openwhyd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwhyd%2Fopenwhyd/sbom","scorecard":{"id":113514,"data":{"date":"2025-08-04","repo":{"name":"github.com/openwhyd/openwhyd","commit":"b9acb2812fe5d7532886cf9eb185cbef79f6e465"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.5,"checks":[{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: topLevel 'contents' permission set to 'write': .github/workflows/autopr.yml:6","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/autopr.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/autopr.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/autopr.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/autopr.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:372: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:376: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:390: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:402: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:92: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:195: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:200: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:203: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:207: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:212: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:234: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:242: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:248: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:266: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:271: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:274: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:278: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:283: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:305: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:324: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:325: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:330: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:335: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:339: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:343: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:357: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:117: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:163: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:164: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/openwhyd/openwhyd/codeql-analysis.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:23: pin your Docker image by updating node:20.10.0-slim to node:20.10.0-slim@sha256:5c714c3e90f66a2cbfa266b90a4d7adcd63453cd730aa2d13cba84b260bea2e6","Warn: downloadThenRun not pinned by hash: Dockerfile:18","Warn: npmCommand not pinned by hash: .augment/env/setup.sh:105","Info:   0 out of  39 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   9 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:  10 out of  11 npmCommand dependencies pinned","Info:   0 out of   1 downloadThenRun 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/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (12) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":1,"reason":"9 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-mg2h-6x62-wpwc","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-75v8-2h7p-7m2m","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T18:44:45.837Z","repository_id":9940014,"created_at":"2025-08-15T18:44:45.837Z","updated_at":"2025-08-15T18:44:45.837Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32569724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: 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":["bandcamp","curation","dailymotion","deezer","mp3","music","music-player","player","soundcloud","streaming","vimeo","youtube"],"created_at":"2024-09-24T19:52:42.312Z","updated_at":"2026-05-03T13:06:11.372Z","avatar_url":"https://github.com/openwhyd.png","language":"JavaScript","funding_links":["https://opencollective.com/openwhyd","https://opencollective.com/openwhyd/backer/0/website","https://opencollective.com/openwhyd/backer/1/website","https://opencollective.com/openwhyd/backer/2/website","https://opencollective.com/openwhyd/backer/3/website","https://opencollective.com/openwhyd/backer/4/website","https://opencollective.com/openwhyd/backer/5/website","https://opencollective.com/openwhyd/backer/6/website","https://opencollective.com/openwhyd/backer/7/website","https://opencollective.com/openwhyd/backer/8/website","https://opencollective.com/openwhyd/backer/9/website","https://opencollective.com/openwhyd/backer/10/website","https://opencollective.com/openwhyd/backer/11/website","https://opencollective.com/openwhyd/backer/12/website","https://opencollective.com/openwhyd/backer/13/website","https://opencollective.com/openwhyd/backer/14/website","https://opencollective.com/openwhyd/backer/15/website","https://opencollective.com/openwhyd/backer/16/website","https://opencollective.com/openwhyd/backer/17/website","https://opencollective.com/openwhyd/backer/18/website","https://opencollective.com/openwhyd/backer/19/website","https://opencollective.com/openwhyd/backer/20/website","https://opencollective.com/openwhyd/backer/21/website","https://opencollective.com/openwhyd/backer/22/website","https://opencollective.com/openwhyd/backer/23/website","https://opencollective.com/openwhyd/backer/24/website","https://opencollective.com/openwhyd/backer/25/website","https://opencollective.com/openwhyd/backer/26/website","https://opencollective.com/openwhyd/backer/27/website","https://opencollective.com/openwhyd/backer/28/website","https://opencollective.com/openwhyd/backer/29/website"],"categories":[],"sub_categories":[],"readme":"[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/b7fd412cbffb44afac147eb28f1082c0)](https://app.codacy.com/gh/openwhyd/openwhyd/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_coverage) [![OpenCollective](https://opencollective.com/openwhyd/backers/badge.svg?style=flat-square)](#backers) [![Contributors](https://img.shields.io/badge/all_contributors-23-brightgreen.svg?style=flat-square)](#contributors) [![frequently asked questions](https://img.shields.io/badge/help-FAQ-ff69b4.svg?style=flat-square)](docs/FAQ.md) [![Music lover club on Facebook](https://img.shields.io/badge/chat-music%20lover%20club-blue.svg?style=flat-square)](https://facebook.com/groups/openwhyd/)\n\n# Openwhyd\n\n\u003e 💎 Like Pinterest, but for Music. Discover, collect and play music from Youtube, Soundcloud, Bandcamp, Deezer and other streaming platforms.\n\nOpenwhyd is a music curation service freely available at [openwhyd.org](https://openwhyd.org). It was designed for music lovers who enjoy taking their time to find the best tracks and videos for their collection, including:\n\n- music videos, bootlegs and specific live performances,\n- fresh tracks from new and/or local artists,\n- DJ sets and rare remixes,\n- or any song that can be found and streamed online, and may not be found on Spotify, Apple Music or other music services.\n\n[![Openwhyd Demo Video](./docs/img/openwhyd-demo-thumb.png)](https://www.youtube.com/watch?v=aZT8VlTV1YY 'Openwhyd Demo Video')\n\nInitially known as \"Whyd\", the development of this product started in 2012. It became open-source in 2016. Read the full story [from Whyd to Openwhyd](https://medium.com/openwhyd/music-amongst-other-topics-a4f41657d6d).\n\n## Features\n\n- Playlists: made of tracks from **various sources**: Youtube, Soundcloud, Bandcamp, Deezer...\n- Button: Add a track from **any web page**, in a few clicks, using our Google Chrome extension and bookmarklet\n- Radio: **Subscribe** to music curators based on your musical taste, and listen to their latest discoveries\n- Fame: Get a following by creating awesome playlists, and being featured in the \"**Hot Tracks**\" ranking\n- Search: Add descriptions to your track, to make them **easier to find** when you need them\n- Integration: Embed your playlists on your blog or website, so your visitors can listen to it directly.\n\n👋 A question, a problem? Check out [our FAQ](docs/FAQ.md) and/or [chat with our community of music lovers](https://www.facebook.com/groups/openwhyd/).\n\n## Development\n\n### Tech stack\n\n- Back-end: [Node.js](https://nodejs.org/) + [MongoDB](https://www.mongodb.com/) + [Express](https://expressjs.com/)\n- Front-end: HTML + CSS + jQuery\n- Streaming: [PlayemJS](https://github.com/adrienjoly/playemjs)\n\n### Setup and usage\n\nYou just need Docker and `git` installed on your computer:\n\n```sh\n$ git clone https://github.com/openwhyd/openwhyd.git\n$ cd openwhyd\n$ docker compose up --build --detach\n$ open http://localhost:8080\n$ docker compose down --rmi local --remove-orphans # to stop the server and database + clean-up\n```\n\nMore info about **Setup and Usage**: [INSTALL.md](docs/INSTALL.md).\n\n\u003c!-- If you want to run it directly with `docker compose`, checkout [Openwhyd on Docker Hub](https://hub.docker.com/r/openwhyd/openwhyd).\n\nIf you want to deploy Openwhyd to a server, you can follow our guide: [How to deploy on DigitalOcean](docs/howto-deploy-on-digitalocean.md). --\u003e\n\n🤗 The project is **open to contributions**. Check out [our FAQ](docs/FAQ.md#id-love-to-contribute-to-openwhyd-how-can-i-help) for more info.\n\n## Contributors\n\nThese are the wonderful people whose time and sweat have made Openwhyd's heart beat since 2012! 💓 ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/gillespoupardin\"\u003e\u003cimg src=\"https://d1qb2nb5cznatu.cloudfront.net/users/56004-large?1405472476?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGilles Poupardin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#talk\" title=\"Talks\"\u003e📢\u003c/a\u003e \u003ca href=\"#ideas\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#financial\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/jiem\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/764618?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJie Meng-Gérard\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=jiem\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#infra-jiem\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#financial-jiem\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://adrienjoly.com/now\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/531781?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAdrien Joly\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=adrienjoly\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=adrienjoly\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=adrienjoly\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"#question-adrienjoly\" title=\"Answering Questions\"\u003e💬\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/loickm\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/910269?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eloickm\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-loickm\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=loickm\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/tonyhymes\"\u003e\u003cimg src=\"https://unavatar.now.sh/twitter/tonyhymes?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTony Hymes\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#talk\" title=\"Talks\"\u003e📢\u003c/a\u003e \u003ca href=\"#blog\" title=\"Blogposts\"\u003e📝\u003c/a\u003e \u003ca href=\"#eventOrganizing\" title=\"Event Organizing\"\u003e📋\u003c/a\u003e \u003ca href=\"#question\" title=\"Answering Questions\"\u003e💬\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://www.choses.fr\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/603808?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDamien Romito\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=damienromito\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#plugin-damienromito\" title=\"Plugin/utility libraries\"\u003e🔌\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://www.camillebetinyani.com\"\u003e\u003cimg src=\"https://www.nikonclub.fr/sites/default/files/styles/dashboard_avatar/public/users/avatars/2018-08/0036_Camille-Betinyani-2_0.jpg?itok=cceSKmUx?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCamille Betinyani\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/cmdcmdcmd\"\u003e\u003cimg src=\"https://cloudinary-a.akamaihd.net/hopwork/image/upload/h_360,w_360,c_thumb,g_face,z_0.4,q_auto,dpr_2.0/wdxqlikzwk4p8fcj1u6k.jpeg?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eClaire Marion\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-cmdcmdcmd\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"#blog-cmdcmdcmd\" title=\"Blogposts\"\u003e📝\u003c/a\u003e \u003ca href=\"#ideas-cmdcmdcmd\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://julientanay.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/1169844?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJulien Tanay\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#infra-Djiit\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#tool-Djiit\" title=\"Tools\"\u003e🔧\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=Djiit\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/SkinyMonkey\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/243268?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAdrien Candiotti\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#infra-SkinyMonkey\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=SkinyMonkey\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-SkinyMonkey\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/constance-betinyani-30b8b95a/\"\u003e\u003cimg src=\"https://image-uviadeo.journaldunet.com/image/450/1338899985/1559660.jpg?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eConstance Betinyani\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#blog\" title=\"Blogposts\"\u003e📝\u003c/a\u003e \u003ca href=\"#fundingFinding\" title=\"Funding Finding\"\u003e🔍\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://angel.co/alberto-fantappie\"\u003e\u003cimg src=\"https://d1qb2nb5cznatu.cloudfront.net/users/28089-large?1489180378?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlberto Fantappie\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#fundingFinding\" title=\"Funding Finding\"\u003e🔍\u003c/a\u003e \u003ca href=\"#eventOrganizing\" title=\"Event Organizing\"\u003e📋\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/mathildevercelletto/\"\u003e\u003cimg src=\"http://www.doyoubuzz.com/var/users/_/2016/8/31/13/1245112/avatar/1188719/avatar_cp_630.jpg?t=1545569639?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMathilde Vercelletto\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#financial\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/henrilieutaud\"\u003e\u003cimg src=\"https://unavatar.now.sh/twitter/henrilieutaud?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHenri Lieutaud\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-ElBurritoPodrido\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/FrancoisBurra\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/8008820?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFrançois Burra\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-FrancoisBurra\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://greyvugrin@github.io\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/3294460?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGrey Vugrin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=greyvugrin\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/issues?q=author%3Agreyvugrin\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#tool-greyvugrin\" title=\"Tools\"\u003e🔧\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Marinlemaignan\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/5300654?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMarin le Maignan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=Marinlemaignan\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/issues?q=author%3AMarinlemaignan\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#ideas-Marinlemaignan\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/nicolasleger\"\u003e\u003cimg src=\"https://unavatar.now.sh/github/nicolasleger?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNicolas Leger\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#infra-nicolasleger\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=nicolasleger\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://znk.github.io\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/1911478?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSerdar Sever\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=znk\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/issues?q=author%3Aznk\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/stanislas-chable/\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/19236802?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStanislas Châble\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=Selbahc\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/issues?q=author%3ASelbahc\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://piamancini.com\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/3671070?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePia Mancini\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#fundingFinding-piamancini\" title=\"Funding Finding\"\u003e🔍\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://svay.com/\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/265349?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMaurice Svay\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=mauricesvay\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/issues?q=author%3Amauricesvay\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"#design-mauricesvay\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://www.kadiks.net\"\u003e\u003cimg src=\"https://unavatar.now.sh/twitter/kadiks?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJénaïc Cambré\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#question-kadiks\" title=\"Answering Questions\"\u003e💬\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/felix-aknin-61b72597/\"\u003e\u003cimg src=\"https://i.imgur.com/wjtYzX4.jpg?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFelix Aknin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#question\" title=\"Answering Questions\"\u003e💬\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/uLan08\"\u003e\u003cimg src=\"https://unavatar.now.sh/github/uLan08?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePatrick Rainier Juen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=uLan08\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#infra-uLan08\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#tutorial-uLan08\" title=\"Tutorials\"\u003e✅\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://brawrdon.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/9751243?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBrandon Okeke\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=Brawrdon\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/namanbiyani\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/43063269?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003enamanbiyani\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=namanbiyani\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://compiuta.site/\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/13477167?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ecompiuta\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/issues?q=author%3Acompiuta\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=compiuta\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Salayna\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/30622947?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSalayna Doukoure\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=Salayna\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/wen-chan\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/67481364?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ewen-chan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=wen-chan\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/agathe-vaisse\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/25689895?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAgathe Vaisse\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=agathe-vaisse\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/iNeoO\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/8982189?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eValère\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=iNeoO\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://openwhyd.org/blindmanwatchin\"\u003e\u003cimg src=\"https://openwhyd.org/img/u/52dde4ba7e91c862b2b36827?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJeff Hsr\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#content\" title=\"Content\"\u003e🖋\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/alightsleeper\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6707588?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDheeru Pennepalli\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=alightsleeper\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/has12zen\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/57583693?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ehas12zen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=has12zen\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/JKratus\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7414857?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJordan NOURRY\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=JKratus\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#mentoring-JKratus\" title=\"Mentoring\"\u003e🧑‍🏫\u003c/a\u003e \u003ca href=\"#talk-JKratus\" title=\"Talks\"\u003e📢\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://beyondxscratch.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/52136235?v=4?s=98\" width=\"98px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJulien Topçu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/openwhyd/openwhyd/commits?author=julien-topcu\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#mentoring-julien-topcu\" title=\"Mentoring\"\u003e🧑‍🏫\u003c/a\u003e \u003ca href=\"#talk-julien-topcu\" title=\"Talks\"\u003e📢\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind are welcome!\n\nTo update that list, please propose a PR after running `npx all-contributors-cli add` or [contact us](mailto:contact@openwhyd.org).\n\n## Backers\n\nSupport us with a monthly donation and help us keep Openwhyd alive. [[Become a backer](https://opencollective.com/openwhyd#backer)]\n\n\u003ca href=\"https://opencollective.com/openwhyd/backer/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/backer/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/backer/29/avatar.svg\"\u003e\u003c/a\u003e\n\n## Sponsors\n\nBecome a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/openwhyd#sponsor)]\n\n\u003ca href=\"https://medium.com/openwhyd/music-amongst-other-topics-a4f41657d6d\" target=\"_blank\"\u003e\u003cimg alt=\"Whyd is the company that founded this service and donated the source code\" src=\"docs/img/sponsor-whyd-smaller.png\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.digitalocean.com/\" target=\"_blank\"\u003e\u003cimg alt=\"DigitalOcean has kindly offered us one year worth of hosting, to help us maintain our open-source development effort\" src=\"docs/img/sponsor-digitalocean.png\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.algolia.com/\" target=\"_blank\"\u003e\u003cimg alt=\"Algolia has been kindly providing our users with blazing-fast track search for years\" src=\"docs/img/sponsor-algolia.png\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openwhyd/sponsor/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openwhyd/sponsor/29/avatar.svg\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenwhyd%2Fopenwhyd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenwhyd%2Fopenwhyd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenwhyd%2Fopenwhyd/lists"}