Small React + TypeScript dashboard for read-only API workflows.
- Accepts an API key and API base URL.
- Accepts one or more site URLs.
- Resolves
siteIdvalues through site lookup endpoints. - Fetches
GET /api/v1/sites/{siteId}/opportunities. - Filters to Reddit, YouTube, Cited URLs, Prompt Gap, and Wikipedia opportunities.
- Shows grouped suggestions per opportunity with CSV export.
npm install
npm run devnpm run buildThe dashboard now includes an on-demand row evaluator for Sentiment & Share of Voice.
- Frontend calls
POST /api/offsite-evaluate - Vercel uses
api/offsite-evaluate.ts - Local
npm run devserves the same route through Vite middleware
Required environment variables:
OPENAI_API_KEY=...
# Optional override
OPENAI_EVALUATOR_MODEL=gpt-4.1-miniAzure OpenAI is also supported:
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_KEY=...
# Use your Azure deployment name here. If omitted, the evaluator falls back
# to OPENAI_EVALUATOR_MODEL and then gpt-4.1-mini.
AZURE_OPENAI_DEPLOYMENT=gpt-4.1-miniThe evaluator independently fetches the cited URL/thread/video and returns:
- evaluated sentiment
- sentiment confidence score
- rationale and evidence snippet
This repo includes vercel.json with build/output and SPA rewrite config.
- In Vercel, import this GitHub repo.
- Confirm settings:
- Build command:
npm run build - Output directory:
dist
- Build command:
- Deploy and share the generated site URL with your team.
Amplify is supported as a frontend host.
- In Amplify, connect this GitHub repo and deploy the
mainbranch. - Set
VITE_SERVER_API_BASE_URLto your Vercel deployment URL so the frontend can use the hosted backend routes. - Keep backend secrets on Vercel. Use
APP_ALLOWED_ORIGINSon Vercel to restrict access to your Amplify URL.
- Requests are
GETonly. - API key is manual input only and is not persisted in browser
localStorage. - API requests include the configured authentication headers.
- If browser CORS blocks the API, add a server-side proxy for the fetches.