{"id":13558308,"url":"https://github.com/openfoodfoundation/openfoodnetwork","last_synced_at":"2026-04-08T00:01:54.138Z","repository":{"id":37274651,"uuid":"6257856","full_name":"openfoodfoundation/openfoodnetwork","owner":"openfoodfoundation","description":"Connect suppliers, distributors and consumers to trade local produce.","archived":false,"fork":false,"pushed_at":"2026-04-02T22:33:04.000Z","size":121917,"stargazers_count":1235,"open_issues_count":660,"forks_count":785,"subscribers_count":69,"default_branch":"master","last_synced_at":"2026-04-03T01:12:49.682Z","etag":null,"topics":["farmers","food","food-hubs","hacktoberfest","nonprofit","rails","ruby","sustainable-consumption"],"latest_commit_sha":null,"homepage":"https://www.openfoodnetwork.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openfoodfoundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"openfoodfoundation","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2012-10-17T07:56:23.000Z","updated_at":"2026-04-02T22:33:11.000Z","dependencies_parsed_at":"2023-09-21T19:30:47.989Z","dependency_job_id":"33d6c3a1-e5ce-470b-9cc5-5f1111a29208","html_url":"https://github.com/openfoodfoundation/openfoodnetwork","commit_stats":{"total_commits":26580,"total_committers":267,"mean_commits":99.5505617977528,"dds":0.8846501128668172,"last_synced_commit":"cdcc6871fd03bcc5bf70b09c3171cedb8d28576a"},"previous_names":[],"tags_count":479,"template":false,"template_full_name":null,"purl":"pkg:github/openfoodfoundation/openfoodnetwork","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfoundation%2Fopenfoodnetwork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfoundation%2Fopenfoodnetwork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfoundation%2Fopenfoodnetwork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfoundation%2Fopenfoodnetwork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfoodfoundation","download_url":"https://codeload.github.com/openfoodfoundation/openfoodnetwork/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfoundation%2Fopenfoodnetwork/sbom","scorecard":{"id":709414,"data":{"date":"2025-08-11","repo":{"name":"github.com/openfoodfoundation/openfoodnetwork","commit":"92ef5fe3d588bba3420285b94d63119a28327cb8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.4,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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":10,"reason":"30 commit(s) and 22 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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/build.yml:17","Info: topLevel 'contents' permission set to 'read': .github/workflows/linters.yml:4","Warn: no topLevel permission defined: .github/workflows/stage.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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENCE.txt:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENCE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":6,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'master'","Warn: 'stale review dismissal' is disabled on branch 'master'","Warn: required approving review count is 1 on branch 'master'","Warn: codeowners review is not required on branch 'master'","Info: 'last push approval' is required to merge on branch 'master'","Warn: no status checks found to merge onto branch 'master'","Info: PRs are required in order to make changes on branch 'master'"],"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":"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":"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":"SAST","score":8,"reason":"SAST tool is not run on all commits -- score normalized to 8","details":["Warn: 26 commits out of 30 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"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-author-assign.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/auto-author-assign.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:290: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:293: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:298: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:303: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:333: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:357: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:361: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:365: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:387: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:390: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:395: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:404: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:127: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:132: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:168: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:178: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:211: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:214: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:219: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:224: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:256: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/linters.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/linters.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/linters.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/linters.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/linters.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/linters.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/linters.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/linters.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/linters.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/linters.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/stage.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/stage.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/stage.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfoundation/openfoodnetwork/stage.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:13","Warn: containerImage not pinned by hash: Dockerfile:23","Warn: containerImage not pinned by hash: Dockerfile:28","Warn: containerImage not pinned by hash: Dockerfile.ubuntu:1: pin your Docker image by updating ubuntu:20.04 to ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214","Info:   0 out of  20 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  16 third-party GitHubAction dependencies pinned","Info:   0 out of   5 containerImage 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":"Vulnerabilities","score":0,"reason":"30 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-9gj3-hwp5-pmwc","Warn: Project is vulnerable to: GHSA-gpqq-952q-5327","Warn: Project is vulnerable to: GHSA-h6gj-6jjq-h8g9","Warn: Project is vulnerable to: GHSA-hpcf-8vf9-q4gj","Warn: Project is vulnerable to: GHSA-j7qv-pgf6-hvh4","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-p8pc-3f7w-jr5q","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T07:42:33.226Z","repository_id":37274651,"created_at":"2025-08-22T07:42:33.226Z","updated_at":"2025-08-22T07:42:33.226Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31533824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["farmers","food","food-hubs","hacktoberfest","nonprofit","rails","ruby","sustainable-consumption"],"created_at":"2024-08-01T12:04:52.271Z","updated_at":"2026-04-08T00:01:54.098Z","avatar_url":"https://github.com/openfoodfoundation.png","language":"Ruby","funding_links":["https://github.com/sponsors/openfoodfoundation"],"categories":["Ruby","Happy Exploring 🤘","Apps","[🌐 decentralize](https://github.com/stars/ketsapiwiq/lists/decentralize)","hacktoberfest","Miscellaneous","Consumption"],"sub_categories":["X","Rails codebases to study","Agriculture and Nutrition"],"readme":"[![Build](https://github.com/openfoodfoundation/openfoodnetwork/actions/workflows/build.yml/badge.svg)](https://github.com/openfoodfoundation/openfoodnetwork/actions/workflows/build.yml)\n\n# Open Food Network\n\nThe Open Food Network is an online marketplace for local food. It enables a network of independent online food stores that connects farmers and food hubs (including co-ops, online farmers markets, independent food businesses, etc) with individuals and local businesses. It gives farmers and food hubs an easier and fairer way to distribute their food.\n\nSupported by the Open Food Foundation and a network of global affiliates, we are proudly open source and not-for-profit - we're trying to seriously disrupt the concentration of power in global agri-food systems, and we need as many smart people working together on this as possible.\n\nWe're part of global movement - get involved!\n\n* Join the conversation [on Slack][slack-invite]. Make sure you introduce yourself in the #general channel and join #dev for all tech-related topics.\n* Head to [https://openfoodnetwork.org](https://openfoodnetwork.org) for more information about the global OFN project.\n* Check out the [User Guide](https://guide.openfoodnetwork.org/) for a list of features and tutorials.\n* Join our [discussion forum](https://community.openfoodnetwork.org).\n\n## Contributing\n\nIf you are interested in contributing to the OFN in any capacity, please introduce yourself [on Slack][slack-invite], and have a look through the [OFN Handbook][ofn-handbook].\n\nOur [GETTING_STARTED](GETTING_STARTED.md) and [CONTRIBUTING](CONTRIBUTING.md) guides are the best place to start for developers looking to set up a development environment and make contributions to the codebase.\n\n### Hacktoberfest :tada:\n\nAre you participating in [Hacktoberfest](https://hacktoberfest.digitalocean.com/)? Go check out our [Welcome New Developers project board][welcome-dev]! We have curated all issues we consider to be a good starting point for new members of the community and categorized them by skills and level of complexity. \nHave a look and pick the one you would prefer working on!\n\n## Provisioning\n\nIf you're interested in provisioning a server, see [ofn-install][ofn-install] for the project's Ansible playbooks.\n\nWe also have a [Super Admin Guide][super-admin-guide] to help with configuration of new servers.\n\n## Testing\n\nIf you'd like to help out with testing, please introduce yourself on the #testing channel on [Slack][slack-invite]. Also, do have a look in our [Welcome New QAs board][welcome-qa] for some good first issues, both on manual and automated testing (RSpec/Capybara).\n\nWe use [BrowserStack](https://www.browserstack.com/) as a manual testing tool. BrowserStack provides open source projects with unlimited and free of charge accounts. A big thanks to them!\n\n\nWe use [KnapsackPro](https://knapsackpro.com/) for optimal parallelisation of our automated tests. KnapsackPro offers unlimited plans for non-commercial open source projects, like ours - a big thanks to them!\n\n![image](https://user-images.githubusercontent.com/49817236/201330047-e64147a7-d91c-4c10-bd4d-ca519d8fe945.png)\n\n\n## Licence\n\nCopyright (c) 2012 - 2024 Open Food Foundation, released under the AGPL licence.\n\n[survey]: https://docs.google.com/a/eaterprises.com.au/forms/d/1zxR5vSiU9CigJ9cEaC8-eJLgYid8CR8er7PPH9Mc-30/edit#\n[slack-invite]: https://join.slack.com/t/openfoodnetwork/shared_invite/zt-9sjkjdlu-r02kUMP1zbrTgUhZhYPF~A\n[ofn-handbook]: https://ofn-user-guide.gitbook.io/ofn-handbook/\n[ofn-install]: https://github.com/openfoodfoundation/ofn-install\n[super-admin-guide]: https://ofn-user-guide.gitbook.io/ofn-super-admin-guide\n[welcome-dev]: https://github.com/orgs/openfoodfoundation/projects/5\n[welcome-qa]: https://github.com/orgs/openfoodfoundation/projects/6\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfoodfoundation%2Fopenfoodnetwork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfoodfoundation%2Fopenfoodnetwork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfoodfoundation%2Fopenfoodnetwork/lists"}