מערכת אמיתית מותקנת ופעילה ב-zbang-api שתופסת snapshot של דפי אינטרנט על פי לוח-זמנים, מחשבת diff בין נקודות זמן, ומפעילה webhook על כל דריפט.
5+ פיצ'רים פעילים:
- ניהול צופים (Watchers) — CRUD מלא, כל צופה עם URL, CSS selector אופציונלי, תדירות בדיקה (5ד-7ימים), צבע, קטגוריה, וקונפיגורציית webhook אישית.
- Snapshot engine — fetch אסינכרוני עם httpx, follow_redirects, User-Agent בהתאמה, ומדידת זמן תגובה. כל snapshot נשמר ב-Postgres עם hash SHA-256, אורך תוכן, וסטטוס HTTP.
- Diff viewer — חישוב unified_diff בין snapshot קודם לנוכחי, ספירת added/removed lines, וצביעת השורות בצבעי טאל/קורל לקריאה מהירה.
- Scheduler tick — endpoint שמריץ את כל הצופים שהגיע זמנם, מעדכן
next_check_at, ומפיק לוג ביצוע. - Webhook alert routing — בכל שינוי שזוהה, payload JSON נשלח אוטומטית ליעד שהוגדר על הצופה, ותוצאת המסירה (סטטוס/שגיאה) נשמרת בטבלת alerts.
- Analytics dashboard — KPI cards, SVG chart היסטוגרמה+קו (checks vs drift), leaderboard עם progress rings, ו-sparklines פר-watcher.
- Workspace settings — שם, retention של snapshots (1-365 ימים), webhook ברירת-מחדל, accent color, digest hour.
ניתן לקנפג: שם workspace · webhook ברירת-מחדל · retention · accent color · digest hour · per-watcher webhook · User-Agent · selector hint · color · category · תדירות (5ד-7ימים)
תוצאות אמיתיות מהמערכת הפעילה:
- 6 צופים פעילים על Hacker News, GitHub Trending, Python.org, Anthropic, Hostinger, httpbin
- 11 snapshots לכודים מ-URLs אמיתיים (HN, GH, Python, Anthropic — סטטוס 200)
- 5 alerts נמסרו ל-
https://httpbin.org/postעם HTTP 200 - 3 diffs אמיתיים (+1/-1) על watcher של
/uuidשמשתנה כל שאילתה
ארכיטקטורה:
- Backend: FastAPI router ב-
/api/snapdrift/*עם 14 endpoints — overview, watchers CRUD+run, snapshots list/detail, alerts log, analytics (timeseries + leaderboard), scheduler tick, settings - DB: 4 טבלאות Postgres (
snapdrift_watchers,_snapshots,_alerts,_settings) עם foreign keys ו-indexes על captured_at + watcher_id - Diff engine:
difflib.unified_diffעם chunking ל-content ארוך, ו-selector engine קליל שתופס id/class/tag - Frontend: 5 views (Dashboard, Watchers, History, Alerts, Settings) — vanilla JS + SVG charts ייחודיים, גופן Frank Ruhl Libre לכותרות + IBM Plex Mono ל-meta + Heebo לבודי
- Hero: codex-generated atmospheric image + 4 codex images בסך הכל (logo, hero, illustration, product mockup)