Watchpuppy
Vercel signals in, action out.
This starter app receives multiple Vercel drain streams and turns them into a normalized intake layer for alerting, anomaly detection and future Linear issue creation.
Current scope
- Receives Vercel drains for logs, web analytics and speed insights
- Verifies every request signature with the shared drain secret
- Normalizes JSON arrays, single objects and NDJSON payloads
- Keeps a clean seam for routing incidents into Linear next
Endpoints
POST /api/vercel/logsPrimary route for runtime, build and static log drains.POST /api/vercel/web-analyticsIntake for page views and custom analytics events.POST /api/vercel/speed-insightsIntake for web vitals and performance metrics.POST /api/vercel/log-drainCompatibility alias for the original logs endpoint.Where this can go
- Auto-create Linear issues for repeated production errors.
- Detect conversion drops from analytics event changes.
- Open incidents when Core Web Vitals degrade across releases.
- Correlate deployment IDs with spikes in failures or latency.