Warning
Status: This project was developed as a technical demonstration and is not currently updated or maintained. Users must provide their own API keys to populate live data. Please be aware that video stream identifiers are dynamic and some feeds may have changed or become unavailable since the initial publication.
A real-time situational awareness dashboard designed for prediction market traders and geopolitical analysts. This terminal synchronizes live news feeds, social intelligence, and prediction market data into a single unified interface.
- Live News Grid: Multi-channel monitoring of high-uptime news broadcasts (Sky News, Al Jazeera, ABC, DW, NBC, France 24).
- AI SITREP: Automated situational reports generated using Gemini 2.0 Flash with Google Search grounding. Analysts get real-time synthesis connecting breaking news events to specific market price movements.
- Market Ticker: Low-latency price monitoring across Polymarket and Kalshi, with unified 24h volume and price change indicators.
- Social Pulse: OSINT aggregation from X and Telegram to catch breaking signals before they hit mainstream headlines.
- Persistent Caching: Optimized API architecture using Supabase to manage rate limits and ensure high availability.
- Frontend: Next.js (App Router), Tailwind CSS, Framer Motion
- State Management: Zustand
- Data Fetching: TanStack Query
- Backend: Next.js Edge Functions
- Database/Cache: Supabase
- AI/LLM: Google Gemini 2.0 Flash (via Vertex AI)
- External APIs: YouTube Data API v3, Apify (Twitter Scraper)
- Node.js (v18+)
- pnpm or npm
- Supabase account (for caching layer)
For both local development and production (Vercel), you must provide the following environment variables:
| Variable | Description | Source |
|---|---|---|
GOOGLE_API_KEY |
Gemini 2.0 Flash / Search Grounding | Google AI Studio |
YOUTUBE_API_KEY |
Live stream detection & metadata | Google Cloud Console |
APIFY_API_KEY |
Twitter/X & Social OSINT scraping | Apify Console |
NEXT_PUBLIC_SUPABASE_URL |
Supabase project endpoint | Supabase Dashboard |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Supabase anonymous public key | Supabase Dashboard |
- Connect Repository: Link your GitHub repository to a new project on Vercel.
- Configure Environment Variables: Copy the variables listed above into the Vercel project settings.
- Internal API Routing: The project uses
VERCEL_URL(automatically provided by Vercel) to handle internal API calls between the SITREP generator and the market data endpoints. - Edge Runtime: This project leverages Vercel Edge Functions for low-latency market data processing. Ensure your regions are configured appropriately (default is set to
iad1invercel.json).
Run the following SQL in your Supabase SQL Editor to initialize the caching schema:
create table cache (
key text primary key,
data jsonb not null,
updated_at timestamp with time zone default now()
);
-- Enable RLS
alter table cache enable row level security;
-- Allow service role access
create policy "Allow all for service role" on cache
using (true)
with check (true);-
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Open http://localhost:3000 in your browser.
/src/app: Next.js routes and API endpoints./src/components: UI components organized by functional domain (video, social, dashboard)./src/lib: Core utility functions including the Supabase caching layer./src/store: Client-side state management for the video grid and market data./src/types: Unified TypeScript definitions for consistent data modeling.
This project uses persistent server-side caching to prevent API key exposure and manage consumption quotas. Ensure that you do not commit your .env files to public repositories.
