{"id":15039705,"url":"https://github.com/parabolinc/parabol","last_synced_at":"2026-05-26T01:06:22.493Z","repository":{"id":36954254,"uuid":"48384473","full_name":"ParabolInc/parabol","owner":"ParabolInc","description":"Free online agile retrospective meeting tool","archived":false,"fork":false,"pushed_at":"2026-04-16T04:14:51.000Z","size":147869,"stargazers_count":2002,"open_issues_count":120,"forks_count":364,"subscribers_count":41,"default_branch":"master","last_synced_at":"2026-04-16T05:49:58.524Z","etag":null,"topics":["agile","graphql","kanban","nodejs","react","realtime","redis","rethinkdb","retrospective","saas","stripe"],"latest_commit_sha":null,"homepage":"https://www.parabol.co/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ParabolInc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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}},"created_at":"2015-12-21T17:16:49.000Z","updated_at":"2026-04-16T03:45:45.000Z","dependencies_parsed_at":"2023-09-22T11:48:02.810Z","dependency_job_id":"974a43c5-8d5d-4443-a02e-4809b2d7e702","html_url":"https://github.com/ParabolInc/parabol","commit_stats":null,"previous_names":["parabolinc/action"],"tags_count":1212,"template":false,"template_full_name":null,"purl":"pkg:github/ParabolInc/parabol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParabolInc%2Fparabol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParabolInc%2Fparabol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParabolInc%2Fparabol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParabolInc%2Fparabol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ParabolInc","download_url":"https://codeload.github.com/ParabolInc/parabol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParabolInc%2Fparabol/sbom","scorecard":{"id":107748,"data":{"date":"2025-08-11","repo":{"name":"github.com/ParabolInc/parabol","commit":"c37a0da9ddbe8e8ecb699b4e95e0f63138619cf1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 2/22 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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 7 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":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: script injection with untrusted input ' github.event.pull_request.body': .github/workflows/release-to-prod.yml:19"],"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":"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/build.yml:22","Info: jobLevel 'contents' permission set to 'read': .github/workflows/docker-external.yml:14","Info: jobLevel 'contents' permission set to 'read': .github/workflows/ironbank.yml:14","Info: jobLevel 'contents' permission set to 'read': .github/workflows/release-to-prod.yml:13","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release-to-staging.yml:14","Info: jobLevel 'contents' permission set to 'read': .github/workflows/style-check.yml:15","Info: jobLevel 'contents' permission set to 'read': .github/workflows/test.yml:17","Info: topLevel 'contents' permission set to 'read': .github/workflows/assign_reviewers.yml:9","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/docker-external.yml:1","Warn: no topLevel permission defined: .github/workflows/ironbank.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/labeler.yml:7","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/migration-order.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/migration-order.yml:9","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release-please.yml:11","Warn: no topLevel permission defined: .github/workflows/release-to-prod.yml:1","Warn: no topLevel permission defined: .github/workflows/release-to-staging.yml:1","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/stats.yml:8","Warn: no topLevel permission defined: .github/workflows/style-check.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/validate_pr_title.yml:13"],"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/build.yml:18"],"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":"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/assign_reviewers.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/assign_reviewers.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:140: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-external.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/docker-external.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-external.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/docker-external.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-external.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/docker-external.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ironbank.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/ironbank.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ironbank.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/ironbank.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ironbank.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/ironbank.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ironbank.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/ironbank.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ironbank.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/ironbank.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/labeler.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/labeler.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/labeler.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/labeler.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/migration-order.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/migration-order.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/migration-order.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/migration-order.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/migration-order.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/migration-order.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-please.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-please.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-please.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-please.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-to-prod.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-prod.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-prod.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-prod.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-prod.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-prod.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-prod.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-prod.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:116: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-to-staging.yml:127: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/release-to-staging.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/stale.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/stats.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/stats.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/style-check.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/style-check.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/style-check.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/style-check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/style-check.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/style-check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/style-check.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/style-check.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:144: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/validate_pr_title.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/ParabolInc/parabol/validate_pr_title.yml/master?enable=pin","Warn: containerImage not pinned by hash: docker/images/parabol-ubi/dockerfiles/basic.dockerfile:2","Info:   0 out of  20 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  32 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"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":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (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":"Vulnerabilities","score":0,"reason":"13 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-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-jgmv-j7ww-jx2x","Warn: Project is vulnerable to: GHSA-95jq-xph2-cx9h","Warn: Project is vulnerable to: GHSA-5v2h-r2cx-5xgj","Warn: Project is vulnerable to: GHSA-rrrm-qjm4-v8hf","Warn: Project is vulnerable to: GHSA-56x4-j7p9-fcf9","Warn: Project is vulnerable to: GHSA-v78c-4p63-2j6c","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-x5gf-qvw8-r2rm","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"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-15T11:25:13.753Z","repository_id":36954254,"created_at":"2025-08-15T11:25:13.753Z","updated_at":"2025-08-15T11:25:13.753Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31976805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T16:27:12.723Z","status":"ssl_error","status_checked_at":"2026-04-18T16:27:11.140Z","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":["agile","graphql","kanban","nodejs","react","realtime","redis","rethinkdb","retrospective","saas","stripe"],"created_at":"2024-09-24T20:43:41.800Z","updated_at":"2026-05-20T01:08:31.705Z","avatar_url":"https://github.com/ParabolInc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parabol\n\n[Parabol](https://www.parabol.co) is an open-source collaborative workspace for running structured, effective, and inclusive team meetings. It supports retrospectives, sprint planning, standup meetings, check-ins, agile estimation, and collaborative documentation — all in real time with a GraphQL API.\n\nParabol is easily **self-hosted** on your own infrastructure and works in **air-gapped environments** with no external dependencies required. It runs on Node.js + PostgreSQL + Valkey and can be deployed on-premise, in a private cloud, or in a fully isolated network — making it a strong choice for enterprises, government agencies, and security-conscious teams that cannot use SaaS tools.\n\nTry a no-login demo: https://parabol.co/retro-demo\n\n---\n\n## What Parabol Does\n\nParabol helps software teams and agile practitioners facilitate:\n\n- **Pages** — real-time collaborative documents powered by [Yjs](https://yjs.dev/), scoped to teams or personal workspaces. Pages integrate directly with meetings, so notes, decisions, and action items live alongside the work that created them. Many teams upgrade from Confluence to Parabol Pages as their self-hosted knowledge management system — getting a Confluence alternative that is open-source, easier to operate, and purpose-built to connect documentation with the meetings where decisions are actually made.\n- **Retrospectives** — structured reflect/group/vote/discuss/action workflow; compatible with formats like Start/Stop/Continue, 4Ls, Mad/Sad/Glad, and custom templates\n- **Sprint Poker (Story Point Estimation)** — async-safe planning poker with Fibonacci, T-shirt sizing, or custom scales; integrates with Jira, GitHub, GitLab, Linear, and Azure DevOps\n- **Check-In Meetings (Action)** — agenda-driven team sync with icebreakers, task review, and action items\n- **Standup / Team Prompt** — async standup via written responses, optionally recurring on a schedule\n- **Tasks** — Kanban-style task board (active, stuck, done, future) shared across meetings and linked to external issues\n\nMeeting outcomes (summaries, action items, tasks) are automatically captured and can be pushed to integrations.\n\n---\n\n## GraphQL API\n\nParabol exposes a public GraphQL API.\n\n- **Endpoint:** `https://action.parabol.co/graphql`\n- **Schema SDL:** `https://action.parabol.co/graphql/schema.graphql`\n- **GraphiQL Explorer:** `https://action.parabol.co/graphql` (in browser)\n\n### LLM \u0026 Developer References\n\n- [`llms.txt`](./llms.txt) — concise API overview for LLMs and developers (auth, scopes, key operations)\n- [`llms-full.txt`](./llms-full.txt) — full reference with example GraphQL queries and mutations\n\n---\n\n## Integrations\n\nParabol integrates with:\n\n- **Jira Cloud \u0026 Jira Data Center (Jira Server)** — import backlog, push estimates, create issues\n- **GitHub** — import issues, push estimates as labels\n- **GitLab** — import issues, push estimates\n- **Linear** — import issues, push estimates\n- **Azure DevOps** — import work items, push estimates\n- **Slack** — meeting notifications, topic sharing\n- **Mattermost** — meeting notifications\n- **Google Calendar** — create calendar events when starting meetings\n- **Microsoft / Azure AD** — SSO login\n\n---\n\n## Stack\n\n| Concern | Solution |\n|---|---|\n| Server | [Node.js](https://nodejs.org/) |\n| Server Framework | [μWebSockets.js](https://github.com/uNetworking/uWebSockets.js) |\n| Database | [PostgreSQL](https://www.postgresql.org/) |\n| PubSub \u0026 Cache | [Valkey](https://valkey.io) |\n| API | [GraphQL](https://github.com/graphql/graphql-js) |\n| Real-time | [graphql-ws](https://github.com/enisdenjo/graphql-ws) (WebSockets) |\n| Client Cache | [Relay](https://facebook.github.io/relay/) |\n| UI Framework | [React](https://facebook.github.io/react/) |\n| Styling | [Tailwind CSS](https://tailwindcss.com/) |\n\n---\n\n## Setup\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/en/download/)\n- [pnpm](https://pnpm.io/)\n\n**Production:** PostgreSQL, Valkey\n**Development:** [Docker Compose](https://docs.docker.com/compose/install/), [Watchman](https://facebook.github.io/watchman/docs/install.html)\n\n\u003e **Note:** `text-embedding-inference` is resource intensive. You may need to increase Docker's memory limit to 16 GB+ (Docker Desktop → Settings → Resources).\n\n### Installation\n\n```bash\ngit clone https://github.com/ParabolInc/parabol.git\ncd parabol\ncp .env.example .env   # add your own vars\npnpm i\npnpm db:start\npnpm dev\n```\n\nApp runs at: https://localhost:3000/\n\n### Deploy\n\n```bash\n# Workaround for a pnpm SSH key bug: https://github.com/pnpm/pnpm/issues/7243\ngit config --global url.\"https://github.com/enahum/redux-offline.git\".insteadOf git@github.com:enahum/redux-offline.git\npnpm i \u0026\u0026 pnpm build \u0026\u0026 pnpm predeploy \u0026\u0026 pnpm start\n```\n\n### Developer Docs\n\n- [Code Reviews](./docs/codeReview.md)\n- [Create new GraphQL Mutations](./packages/server/graphql/public/README.md)\n- [Docker](./docker/README.md)\n- [File Storage (CDN, Local, S3)](./packages/server/fileStorage/README.md)\n- [GraphiQL, Private Schema Admin](./packages/server/graphql/private/README.md)\n- [Integrations (GitHub, Jira, Slack, etc.)](./docs/integrations.md)\n- [PostgreSQL](./packages/server/postgres/README.md)\n- [How to Ship](./docs/deployment.md)\n\n---\n\n## Core Team \u0026 Maintainers\n\n- [Jordan Husney](https://github.com/jordanh)\n- [Terry Acker](https://github.com/ackernaut)\n- [Matt Krick](https://github.com/mattkrick)\n- [Georg Bremer](https://github.com/Dschoordsch)\n\n## License\n\nCopyright (c) 2016-present, Parabol, Inc.\n\nDual-licensed under the GNU AFFERO GENERAL PUBLIC LICENSE, Version 3.0 while holding, at Parabol's sole discretion, the right to create new licenses. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparabolinc%2Fparabol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparabolinc%2Fparabol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparabolinc%2Fparabol/lists"}