⚠️ Note: The live demo may not reflect the latest version. The codebase is actively developed — clone locally for the full experience.
Real-time sentiment dashboard for brand mentions from X/Twitter, powered by Next.js, Hugging Face, and Supabase.
- Next.js 16 (App Router) + TypeScript
- Tailwind CSS + Lucide React
- Supabase (
@supabase/supabase-js) - Mock ingestion script with
tsx
- Install dependencies:
npm install- Copy environment variables and fill values:
cp .env.example .env.local- Start development server:
npm run devnpm run dev— start local appnpm run build— production buildnpm run start— run production servernpm run lint— run ESLintnpm run ingest:mock— simulate X ingestion stream fromdata/mockData.jsonnpm run test:ai— run a quick Hugging Face sentiment smoke test
Mock records are stored in data/mockData.json.
Run:
npm run ingest:mockThis streams line-by-line JSON ingestion events to stdout so you can test processing pipelines without external APIs.
Database schema is provided in:
supabase/schema.sql
Apply it in your Supabase SQL editor to create:
brand_mentionssentiment_analyses
Client initialization lives in:
lib/supabase.ts
See .env.example for all required variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYHUGGINGFACE_API_KEYX_BEARER_TOKENMOCK_INGESTION_DELAY_MSREALTIME_PING_URL(optional, defaults to local SSE ping endpoint)