{"slug": "playcall-is-the-open-source-alternative-to-gong", "title": "Playcall is the open-source alternative to Gong", "summary": "Playcall, an open-source alternative to Gong, grades whether sales calls were right for the specific buyer, using Next.js 16, React 19, Supabase, and the Vercel AI SDK with OpenAI, Anthropic, and 15 other providers. The project, available on GitHub, supports document parsing via LlamaParse, audio transcription via OpenAI Whisper, and enrichment via Exa or TheHog, with deployment on Vercel and Supabase.", "body_md": "Most call scorers grade what you said. Playcall grades whether what you said was right for who you were talking to.\n\n** Demo** ·\n\n**·**\n\n[Setup](#setup)**·**\n\n[Deploy](#deploying-to-production)\n\n[Security](/Dphenomenal101/playcall/blob/main/SECURITY.md)**Framework**: Next.js 16 (App Router) + React 19** Database / Auth**: Supabase (Postgres, Auth, RLS, Edge Functions)** AI**: Vercel AI SDK — OpenAI, Anthropic, and 15 other providers; BYOK per workspace** Document parsing**: LlamaParse (PDF, DOCX, PPTX, images, 130+ formats)** Audio transcription**: OpenAI Whisper** File uploads**: Vercel Blob** Enrichment**: Exa or TheHog (buyer/company context)** UI**: Tailwind CSS + shadcn/ui\n\n- Node.js 20+ and pnpm\n[Supabase](https://supabase.com)account[Vercel](https://vercel.com)account[OpenAI](https://platform.openai.com/api-keys)API key (scoring + audio transcription)[LlamaParse](https://cloud.llamaindex.ai)API key (free tier: 10k credits/month)- Enrichment key —\n[Exa](https://exa.ai)(`EXA_API_KEY`\n\n) or[TheHog](https://thehog.ai)(`THEHOG_ACCESS_KEY`\n\n+`THEHOG_SECRET_KEY`\n\n)\n\n```\ngit clone https://github.com/Dphenomenal101/playcall.git\ncd playcall\npnpm install\n```\n\nGo to [supabase.com/dashboard](https://supabase.com/dashboard) → **New project**. Once provisioned:\n\n**Authentication → URL Configuration**: set Site URL and add your domain to Redirect URLs (e.g.`https://yourdomain.com/auth`\n\n)**Authentication → Email Settings**: enable a custom SMTP provider — Supabase's built-in sender is rate-limited on the free tier\n\n```\n# Install the Supabase CLI if you don't have it: https://supabase.com/docs/guides/cli\nsupabase login\nsupabase link --project-ref <your-project-ref>   # Project Settings → General\nsupabase db push\nsupabase functions deploy process-job\n```\n\nSet the secrets the function needs. `WORKSPACE_SECRETS_ENCRYPTION_KEY`\n\nmust be the **same value** you set in your app environment — the Edge Function uses it to decrypt BYOK credentials:\n\n```\nsupabase secrets set WORKSPACE_SECRETS_ENCRYPTION_KEY=your_key\nsupabase secrets set OPENAI_API_KEY=your_key\n# Optional\nsupabase secrets set ANTHROPIC_API_KEY=your_key\nsupabase secrets set EXA_API_KEY=your_key\n# or TheHog:\nsupabase secrets set THEHOG_ACCESS_KEY=your_key\nsupabase secrets set THEHOG_SECRET_KEY=your_key\n```\n\n- Create a Vercel project for this repo at\n[vercel.com/new](https://vercel.com/new) **Storage → Create → Blob**→ connect to project- Pull env vars locally — this writes\n`BLOB_READ_WRITE_TOKEN`\n\nto`.env.local`\n\n:\n\n```\nvercel link\nvercel env pull .env.local\n```\n\n`.env.local`\n\nnow has your Blob token. Add the remaining required values — use `.env.example`\n\nas the reference for what's needed and why:\n\n**Supabase** — from **Project Settings → API**:\n\n`NEXT_PUBLIC_SUPABASE_URL`\n\n`NEXT_PUBLIC_SUPABASE_ANON_KEY`\n\n`SUPABASE_SERVICE_ROLE_KEY`\n\n**LlamaParse** — from [cloud.llamaindex.ai](https://cloud.llamaindex.ai):\n\n`LLAMA_CLOUD_API_KEY`\n\n— your API key`LLAMA_CLOUD_WEBHOOK_SECRET`\n\n— generate with`openssl rand -hex 32`\n\n`LLAMA_CLOUD_WEBHOOK_URL`\n\n— set to`https://yourdomain.com/api/webhooks/llamaparse`\n\n(or your ngrok URL for local dev)\n\n**App URL**:\n\n`NEXT_PUBLIC_APP_URL`\n\n— your app's public base URL. Set to`http://localhost:3000`\n\nfor local dev, and your deployed domain (e.g.`https://yourdomain.com`\n\n) in production. Used for invite links and the LlamaParse webhook URL.\n\n**Other secrets** — generate locally:\n\n```\nopenssl rand -base64 32   # → WORKSPACE_SECRETS_ENCRYPTION_KEY (must match step 4)\nopenssl rand -hex 16      # → CRON_SECRET\npnpm dev\n```\n\nOpen [localhost:3000](http://localhost:3000) and complete the manager onboarding flow.\n\n- Click the button above (or import your repo at\n[vercel.com/new](https://vercel.com/new)) **Storage → Create → Blob**→ connect to your project (`BLOB_READ_WRITE_TOKEN`\n\nis injected automatically)**Project Settings → Environment Variables**— add everything from`.env.local`\n\n, but set`NEXT_PUBLIC_APP_URL`\n\nto your deployed domain (not`http://localhost:3000`\n\n)- Push to your default branch — Vercel deploys automatically and activates the daily keep-alive cron that prevents free-tier Supabase projects from pausing\n\n```\napp/\n  manager/        Manager dashboard, onboarding, playbooks, settings\n  rep/            Rep dashboard, call upload, scorecard\n  api/            Route handlers, webhooks, cron\nlib/\n  data/           Supabase read/write logic\n  ai/             Provider registry, BYOK config resolution\n  enrichment/     Exa and TheHog enrichment providers\n  integrations/   LlamaParse and third-party API clients\n  extraction/     Whisper audio transcription + plain-text file reading\n  security/       Credential encryption at rest\n  jobs/           Async job dispatch\ncomponents/       Shared UI components\nsupabase/\n  migrations/     Database schema\n  functions/      Edge Functions (process-job)\n```\n\nContributions are welcome.\n\n- Fork the repo and create a feature branch.\n- Run the app locally and verify your change in context.\n- Keep changes focused and include any docs updates that make the behavior clearer.\n- Open a pull request with a concise summary of what changed and why.\n\nIf your change affects setup, deployment, or security assumptions, update [README.md](/Dphenomenal101/playcall/blob/main/README.md) and [SECURITY.md](/Dphenomenal101/playcall/blob/main/SECURITY.md) in the same PR.\n\nFor security issues, do not open a public issue. Follow the reporting guidance in [SECURITY.md](/Dphenomenal101/playcall/blob/main/SECURITY.md).", "url": "https://wpnews.pro/news/playcall-is-the-open-source-alternative-to-gong", "canonical_source": "https://github.com/Dphenomenal101/playcall", "published_at": "2026-08-11 23:50:59+00:00", "updated_at": "2026-08-12 00:10:35.329317+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "natural-language-processing", "generative-ai"], "entities": ["Playcall", "Gong", "Next.js", "React", "Supabase", "Vercel AI SDK", "OpenAI", "Anthropic"], "alternates": {"html": "https://wpnews.pro/news/playcall-is-the-open-source-alternative-to-gong", "markdown": "https://wpnews.pro/news/playcall-is-the-open-source-alternative-to-gong.md", "text": "https://wpnews.pro/news/playcall-is-the-open-source-alternative-to-gong.txt", "jsonld": "https://wpnews.pro/news/playcall-is-the-open-source-alternative-to-gong.jsonld"}}