OB
אופיר ברנס
Builder · TLV
חזרה לכל הפרויקטים
Automation · 2026 · Personal Project

SnapDrift

מערכת ניטור שינויים בדפי אינטרנט עם snapshot diffing, scheduler ו-webhook routing — אוטומציה מותקנת ב-zbang-api.

SnapDrift

מערכת אמיתית מותקנת ופעילה ב-zbang-api שתופסת snapshot של דפי אינטרנט על פי לוח-זמנים, מחשבת diff בין נקודות זמן, ומפעילה webhook על כל דריפט.

5+ פיצ'רים פעילים:

  1. ניהול צופים (Watchers) — CRUD מלא, כל צופה עם URL, CSS selector אופציונלי, תדירות בדיקה (5ד-7ימים), צבע, קטגוריה, וקונפיגורציית webhook אישית.
  2. Snapshot engine — fetch אסינכרוני עם httpx, follow_redirects, User-Agent בהתאמה, ומדידת זמן תגובה. כל snapshot נשמר ב-Postgres עם hash SHA-256, אורך תוכן, וסטטוס HTTP.
  3. Diff viewer — חישוב unified_diff בין snapshot קודם לנוכחי, ספירת added/removed lines, וצביעת השורות בצבעי טאל/קורל לקריאה מהירה.
  4. Scheduler tick — endpoint שמריץ את כל הצופים שהגיע זמנם, מעדכן next_check_at, ומפיק לוג ביצוע.
  5. Webhook alert routing — בכל שינוי שזוהה, payload JSON נשלח אוטומטית ליעד שהוגדר על הצופה, ותוצאת המסירה (סטטוס/שגיאה) נשמרת בטבלת alerts.
  6. Analytics dashboard — KPI cards, SVG chart היסטוגרמה+קו (checks vs drift), leaderboard עם progress rings, ו-sparklines פר-watcher.
  7. 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)
· TECHNOLOGY ·
FastAPI SQLAlchemy Postgres httpx difflib SVG charts Vanilla JS RTL/Hebrew glassmorphism codex-image

פרויקטים קשורים.

· YOUR PROJECT NEXT ·

הפרויקט הבא שלך?

בוא נדבר