Real-time OFAC sanctions monitoring dashboard — daily diff tracking, interactive world map, AI-powered intelligence summaries, and a unified sanctions screening engine.
Live Demo: sanctionspulse.vercel.app
Disclaimer: This is an independent open-source project for educational and research purposes only. It is not affiliated with, endorsed by, or a substitute for OFAC. For official sanctions data, visit ofac.treasury.gov.
SanctionsPulse tracks daily changes to the U.S. Treasury OFAC sanctions lists (SDN + Consolidated) — currently 19,000+ entities across 178 countries and 75 active programs.
| Feature | Description |
|---|---|
| Dashboard | Stats overview, full searchable registry (19K+ entries), daily changes table, activity timeline, programs panel |
| Screening | Screen names, addresses, IDs, crypto wallets, and vessels against the full OFAC list with fuzzy/phonetic matching — under 100ms |
| Map | Interactive choropleth + bubble overlay showing sanctions density by country with click/hover details |
| Programs | Searchable explorer for all 75 active OFAC sanctions programs with entry counts and daily activity |
| Intelligence | AI-generated daily briefings (executive summary, risk analysis, hotspots) + interactive chat (requires Groq API key) |
- Node.js 18+ and npm
git clone https://github.com/Yashap-96/SanctionsPulse.git
cd SanctionsPulse
npm install
npm run devOpen http://localhost:5173. The app ships with pre-fetched data — no API keys or Python setup required.
Requires Python 3.11+:
cd scripts
pip install -r requirements.txt
python run_daily.pyDownloads ~121MB of XML from OFAC, parses, diffs, and rebuilds all data files. Needs ~1GB RAM.
- Get a free key at console.groq.com/keys
- Create
.envin project root:GROQ_API_KEY=gsk_your_key_here - Restart the dev server
| Layer | Technology |
|---|---|
| Frontend | React 19 + TypeScript + Vite 7 |
| Styling | Tailwind CSS 4 |
| Map | MapLibre GL JS |
| Charts | Recharts |
| AI | Groq API (llama-3.3-70b) |
| Data Pipeline | Python 3.11+ (lxml) |
| Automation | GitHub Actions (daily cron) |
| Deployment | Vercel (Edge Functions) |
| Data | JSON files in /data (git-tracked) |
- Fork this repo and connect it at vercel.com/new
- Set
GROQ_API_KEYin Vercel environment variables (for AI chat) - Deploy — Vercel auto-detects Vite
The GitHub Actions workflow runs daily at 13:00 UTC. Add these repo secrets:
GROQ_API_KEY— AI summary generationVERCEL_TOKEN— Auto-deploy to VercelVERCEL_ORG_ID/VERCEL_PROJECT_ID— Vercel project identifiers
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Ensure the build passes:
npm run build - Open a Pull Request
MIT — see LICENSE.
- OFAC — Sanctions data source
- World Monitor — Design inspiration
- MapLibre GL JS — Open-source map rendering
- Groq — Fast AI inference
- CARTO — Dark Matter basemap tiles
- Natural Earth — Country boundary data