Ghost Watchlist is a lightweight internal dashboard built to help teams keep an eye on SaaS tools being used across the company. It listens for webhook events, logs each detection, and lets you view, filter, sort, and export the data easily.
- Frontend: Next.js (App Router) with Tailwind CSS
- Backend: Node.js with Express and SQLite
- Database: File-based SQLite using
better-sqlite3 - Extras: Toast notifications, CSV/JSON export, responsive layout
Here’s how to get it up and running on your machine:
git clone https://github.com/your-username/ghost-dashboard.git
cd ghost-dashboardBackend
cd ghost-backend
npm installFrontend
cd ../ghost-frontend
npm installBackend
npm run devFrontend
npm run devVisit http://localhost:3000 in your browser to use the dashboard.
To simulate a detection event, send a POST request to:
http://localhost:3001/webhook/new-saasWith a JSON body like this:
{
"timestamp": "2025-07-19T14:32:00Z",
"employee_email": "jane.doe@example.com",
"service_detected": "Dropbox",
"risk_level": "High"
}curl -X POST http://localhost:3001/webhook/new-saas \
-H "Content-Type: application/json" \
-d '{
"timestamp": "2025-07-18T04:02:00Z",
"employee_email": "jane@acme.com",
"service_detected": "Notion",
"risk_level": "Medium"
}'• Auth is simulated with a simple token for now
• Filtering, sorting, and export are handled entirely on the frontend for speed and simplicity
• We're using SQLite for fast setup—great for testing, but not suited for production scale
• No pagination or advanced query filters—this is meant to be lightweight and easy to work with