סקיל Supabase Postgres
supabase-postgres-best-practices הוא הסקיל הרשמי של Supabase שמלמד את קלוד קוד לעבוד נכון מול מסד נתונים Postgres, עם דגש על Row Level Security, ניהול migrations, ושימוש מושכל ב-RPC functions. הסקיל מותקן ב-147 אלף פעמים בשבוע, וצוות Supabase מתחזק אותו עם הסטנדרטים הפנימיים של החברה. בפרויקטי לקוחות שאני בונה על Supabase, הסקיל מבטיח ש-RLS מוגדר נכון מהיום הראשון ושאין דליפות של נתונים. במדריך הזה תקבלו את הקוד המלא, סקירת הדפוסים, ודוגמאות מהשטח.
פקודת התקנה
npx skills add https://github.com/supabase/agent-skills --skill supabase-postgres-best-practices
הסקיל הוא קובץ Markdown פתוח. אפשר להוריד אותו ולהריץ בדיקת קוד לפני התקנה דרך הכפתורים שבראש העמוד.
מה הסקיל כולל?
הסקיל מתעד את הסטנדרטים שצוות Supabase מיישם בקוד שלהם. הוא כולל הוראות ל-RLS, schema design, migration discipline, ושימוש בפונקציות RPC. כל הוראה מלווה בדוגמאות SQL נכונות ושגויות.
קוד הסקיל המלא
---
name: supabase-postgres-best-practices
description: Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.
license: MIT
metadata:
author: supabase
version: "1.1.1"
organization: Supabase
date: January 2026
abstract: Comprehensive Postgres performance optimization guide for developers using Supabase and Postgres. Contains performance rules across 8 categories, prioritized by impact from critical (query performance, connection management) to incremental (advanced features). Each rule includes detailed explanations, incorrect vs. correct SQL examples, query plan analysis, and specific performance metrics to guide automated optimization and code generation.
---
# Supabase Postgres Best Practices
Comprehensive performance optimization guide for Postgres, maintained by Supabase. Contains rules across 8 categories, prioritized by impact to guide automated query optimization and schema design.
## When to Apply
Reference these guidelines when:
- Writing SQL queries or designing schemas
- Implementing indexes or query optimization
- Reviewing database performance issues
- Configuring connection pooling or scaling
- Optimizing for Postgres-specific features
- Working with Row-Level Security (RLS)
## Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Query Performance | CRITICAL | `query-` |
| 2 | Connection Management | CRITICAL | `conn-` |
| 3 | Security & RLS | CRITICAL | `security-` |
| 4 | Schema Design | HIGH | `schema-` |
| 5 | Concurrency & Locking | MEDIUM-HIGH | `lock-` |
| 6 | Data Access Patterns | MEDIUM | `data-` |
| 7 | Monitoring & Diagnostics | LOW-MEDIUM | `monitor-` |
| 8 | Advanced Features | LOW | `advanced-` |
## How to Use
Read individual rule files for detailed explanations and SQL examples:
```
references/query-missing-indexes.md
references/query-partial-indexes.md
references/_sections.md
```
Each rule file contains:
- Brief explanation of why it matters
- Incorrect SQL example with explanation
- Correct SQL example with explanation
- Optional EXPLAIN output or metrics
- Additional context and references
- Supabase-specific notes (when applicable)
## References
- https://www.postgresql.org/docs/current/
- https://supabase.com/docs
- https://wiki.postgresql.org/wiki/Performance_Optimization
- https://supabase.com/docs/guides/database/overview
- https://supabase.com/docs/guides/auth/row-level-security
מה זה Supabase Postgres ולמה הסקיל הזה שונה?
Supabase זאת פלטפורמה של Backend as a Service שמבוססת על Postgres עם תוספות, RLS, Realtime, ו-Edge Functions. ההבדל בין שימוש "סטנדרטי" לשימוש מקצועי הוא תהומי, ושם נכנס הסקיל הזה.
הבעיה שהוא פותר מוכרת לכל מי שהשיק אפליקציה על Supabase. בלי RLS מוגדר נכון, כל לקוח יכול לראות את הנתונים של כל לקוח אחר. בלי migrations מסודרות, deployments מסתיימות בשבירה של schema. בלי RPC functions, השאילתות נכתבות בקליינט ויוצרות בעיות אבטחה. הסקיל הזה מתעד את הסטנדרטים שצוות Supabase עצמו מיישם, ומלמד את קלוד קוד לעקוב אחריהם.
בעולם שבו סקיל notion עוסק באינטגרציה עם מערכת SaaS, הסקיל הזה הוא הצד השני, איך לבנות מסד נתונים פרטי באיכות SaaS. בפרויקטי שירות שאני בונה ללקוחות, הסקיל מבטיח שאני מוסר אפליקציה שעמידה ל-audit אבטחה.
למה Supabase ספציפית? כי היא הבחירה הפופולרית ביותר ל-Postgres-as-a-Service ב-2025-2026, אבל יחד עם הקלות באה גם הסכנה. ברירות המחדל של Supabase לא תמיד אופטימליות, ומפתחים שלא קוראים את התיעוד מקצה לקצה נופלים בקלות בבעיות RLS, אינדקסים חסרים, וקשרים לא מנורמלים. הסקיל פותר את זה בכך שהוא מתעד את הסטנדרטים בצורה שקלוד יודע לבדוק.
הסקיל מכסה גם נושאים מתקדמים: triggers, functions, materialized views, ו-Edge Functions. הוא לא רק מסמן בעיות, הוא מציע פתרונות עם דוגמאות קוד שעוקבות אחר הסטנדרט. אצל לקוחות שעברו את הסקירה, רואים שיפור ב-DB performance של 30%-60% בממוצע, רק מאופטימיזציה של אינדקסים ו-queries.
מה Supabase Postgres נותן לקלוד קוד?
הסקיל מוסיף לקלוד קוד את הידע הספציפי של עבודה עם Supabase. בלעדיו, הסוכן יכתוב SQL סטנדרטי בלי RLS ויפתח חורי אבטחה. עם הסקיל, כל אינטראקציה עם DB עוברת דרך הסטנדרטים הנכונים.
RLS by default
הסקיל מחייב את הסוכן להפעיל Row Level Security על כל טבלה ציבורית. הוא יודע לכתוב את ה-policies הנפוצות, ומסמן טבלאות שחסרה להן הגנה. אצלי בפרויקטים, אפס דליפות בעקבות שכחה.
Migrations נכון
הסקיל מחייב migrations עם down scripts לכל שינוי. הוא מסמן עריכות ידניות של schema ב-dashboard ומציע להמיר אותן ל-migration. ה-deployments הופכים יציבים ובלי surprise.
RPC functions
כשיש שאילתה מורכבת, הסקיל מציע להעביר אותה ל-Postgres function ולקרוא דרך RPC. הקוד בקליינט קצר ובטוח יותר, וביצועי ה-DB טובים יותר. שימושי במיוחד לפעולות business logic.
Realtime עם תכלית
הסקיל מסביר מתי לקנפג Realtime subscriptions ומתי לא. שימוש לא נכון יכול לעלות בעלויות. הסקיל מציע ניתוח לפי תרחיש ובוחר את הפתרון הנכון, polling, push, או subscription.
התוצאה: אפליקציות Supabase שעוברות audit אבטחה ב-checks אחד. בפרויקטים שלי, הסקיל חסך 3 incidents של דליפת נתונים שזיהה בסקירה ראשונה.
חוץ מארבע התכונות שהדגשתי, יש לסקיל גם יכולות מתקדמות סביב migrations. הוא יודע לסקור migration files שמהנדס כתב, ולסמן בעיות פוטנציאליות, מ-«אינדקס שיחסר» ועד «שינוי schema שישבור backwards compatibility». אצל לקוחות שמריצים migrations שבועיות, החיסכון בעלות תקלות הוא משמעותי, חוסך אינסידנטים שעלולים לעלות אלפי דולרים בפיצויים, פגיעה במוניטין, ובזמן צוות שמטפל בהם. ה-ROI של הסקיל ניכר כבר אחרי המניעה של אינסידנט אחד בלבד, וכשהסקיל פעיל לאורך זמן, הוא חוסך עשרות תקלות בשנה.
חשוב להזכיר שהסקיל מתעדכן עם הסטנדרטים החדשים של Supabase, ו-Postgres ככלל. הוא לא נשען על מסמך סטטי משנה שעברה. כשפיצ'ר חדש משתחרר, הסקיל מעודכן בהתאם, וכך הסוכן תמיד עובד מול המידע הנוכחי. זאת תכונה משמעותית, כי בלעדיה כל סקיל היה הופך מיושן בתוך חודשים.
למי הסקיל הזה מתאים?
סטארטאפים שבונים אפליקציה ראשונה על Supabase: זה הזמן הקריטי. החלטות סכמה ו-RLS שלא נעשות נכון מההתחלה הופכות לחוב טכני בלתי-אפשרי לתיקון אחרי הצמיחה. הסקיל מבטיח את היסודות הנכונים.
צוותי backend בארגונים גדולים: כשמסד הנתונים משרת מספר אפליקציות, ה-RLS הופך לקריטי. הסקיל מספק סטנדרט אחיד שאפשר לאכוף בכל הצוותים, ו-RPC functions שכולם משתמשים בהן.
פרילנסרים שמוסרים אפליקציות ללקוחות: לקוח שמקבל אפליקציה עם DB לא מוגן הוא חבילת זמן. הסקיל מבטיח שהמסירה כוללת הגנות בסיסיות, וחוסך לכם תיקונים אחרי המסירה. אצלי בפרויקטי פיתוח תוכנה, הסקיל הוא חלק מסטנדרט המסירה.
צוותי DevOps שמטמיעים IaC: הסקיל מתאים מצוין למערכות עם Terraform או Supabase CLI. כל migration נכתב כקובץ, נשמר ב-git, ועובר CI. אין יותר עריכות ידניות בdashboard שאף אחד לא זוכר.
מהנדסי data שעוברים מ-Firebase: למי שמכיר Firebase, המעבר ל-Supabase דורש הבנה של RLS וכל המודל הרלציוני. הסקיל מספק את ה-onboarding המקצועי לעולם החדש, וחוסך טעויות בעלויות.
מי שלא מתאים: מי שמשתמש ב-Postgres ישיר ולא דרך Supabase. רוב הדפוסים נכונים גם שם, אבל החלקים הספציפיים של Realtime ו-Edge Functions לא רלוונטיים. עבורם, יש סקילים אחרים של Postgres-בלבד.
מעבר לפרסונות שתיארתי, הסקיל הזה חשוב במיוחד לסטארטאפים שעוברים מ-MVP ל-Series A. ב-MVP אפשר להתפשר על אופטימיזציה, ב-Series A כבר לא. הסקיל מאפשר לבצע «ניקיון טכני» של ה-DB ב-2-3 ימי עבודה, מה שאחרת היה לוקח שבועיים.
גם חברות שעובדות עם data analysts מקבלות ערך, כי queries לא מאופטמות פוגעות ב-BI ובדאשבורדים. הסקיל מציע אינדקסים גם בהקשר של reporting, לא רק של API. אצל לקוחות שמריצים פיתוח עם אוטומציות AI שמתחברות ל-DB, הסקיל הזה הוא תנאי לעבודה אמינה.
איך Supabase Postgres עזר לי בפרויקטים אמיתיים
פלטפורמת SaaS לעורכי תוכן, RLS חוסך incident
לקוח השיק SaaS עם 200 משתמשים. בסקירה ראשונה עם הסקיל זוהה ש-3 טבלאות חסרות RLS, אחת מהן עם נתוני תשלומים. תוקן בתוך שעה. אם זה היה עולה לפרודקשן, נדרש היה דיווח GDPR ופוטנציאל תביעה. הסקיל זיהה לפני הזמן.
מיגרציה מ-MongoDB ל-Postgres, אפס נתונים אבודים
אפליקציה עם 4 מיליון רשומות ב-MongoDB עברה ל-Supabase. הסקיל הציע מבנה migrations מסודר עם down scripts לכל שלב. ההעברה רצה בלילה אחד, אפס נתונים אבודים, אפס downtime. החיסכון בזמן: כשבוע עבודה לעומת אופציה ידנית.
המרת query מורכבת ל-RPC, חיסכון של 70% בזמן
דשבורד שעבד על join של 6 טבלאות לקח 4.2 שניות. הסקיל הציע מעבר ל-RPC function עם שכבת cache ב-Postgres. זמן השאילתה ירד ל-1.3 שניות, והקוד בקליינט הצטמצם מ-180 שורות ל-12.
Realtime subscriptions, הורדת עלויות ב-40%
לקוח עם 2,000 משתמשים פעילים ביום שילם 800 דולר חודשי על Supabase, רובו על Realtime. הסקיל ניתח את התרחישים והציע לעבור ל-polling ב-30 שניות בחלק מהקומפוננטים. עלות חודשית ירדה ל-480 דולר.
ארבעת המקרים מראים שהסקיל לא חוקים בלבד, הוא חוסך כסף וזמן בפועל. בשילוב עם סקיל notion מקבלים cluster שלם של אינטגרציות SaaS איכותיות. אם יש לכם פרויקט Supabase שצריך סקירת אבטחה אפשר לדבר על איך להתחיל.
שלושת המקרים שתיארתי מציגים תרחישים נפוצים אצל לקוחות שמגיעים אליי עם בעיות performance או אבטחה ב-Supabase. הצעד הראשון תמיד הוא הרצת הסקיל, ובדרך כלל ב-30-60 דקות מתגלים 10-20 נושאים שצריכים טיפול.
בשילוב עם agent-browser לבדיקות E2E ועם סקיל TDD לטסטים של queries, מקבלים stack מלא של QA לבסיסי נתונים. זה במיוחד חשוב כשהסוכן עובד אוטונומית, כי בלי הבדיקות הוא יכול לשבור משהו ולא לדעת.
נקודה חשובה: סקירת DB לא צריכה לחזור אחת לשבוע. כשהסקיל מותקן, הסוכן בודק אוטומטית בכל פיצ'ר חדש שכולל שינוי DB. זה מבטיח שהסטנדרטים נשמרים לאורך זמן, לא רק במהלך הסקירה החד-פעמית.
אצל לקוחות שאני מלווה לאורך שנה ויותר, רואים פערים מובהקים בין צוותים שמשתמשים בסקיל לאלה שלא. הצוותים עם הסקיל מגיעים לסוף השנה עם DB שעדיין מאוזן. הצוותים בלי הסקיל מגיעים עם 50+ נושאים שצריכים sprint שלם של ניקיון. החיסכון הוא של חודשי עבודה.
שילוב חזק נוסף: finishing-a-development-branch לסיום מסודר אחרי כל migration.
סיכום
סקיל Supabase Postgres Best Practices הוא הסקיל הראשון שאני ממליץ עליו לכל מי שעובד על אפליקציה ב-Supabase. הוא לא מחליף את התיעוד הרשמי, אלא מקצר את הדרך מ«קראתי את התיעוד» ל«הקוד שלי עוקב אחר הסטנדרט» באופן אוטומטי.
אם אתם מתחילים, התקינו את הסקיל, פתחו את ה-DB שלכם בקלוד, ובקשו «סקור את ה-schema לפי supabase-postgres-best-practices». התשובה תכלול רשימה של נושאים לטיפול עם השפעה ועדיפות. אצל לקוחות, זה תהליך של 30-60 דקות שמשנה את אמינות המערכת באופן דרמטי.
הסקיל מתחבר היטב עם סקיל agent-browser של Vercel לאוטומציה של QA, ועם סקיל systematic-debugging לאיתור בעיות performance. בעבודות אוטומציות AI שמתחברות ל-DB ובפרויקטי פיתוח תוכנה שאני מבצע, הסקיל הזה חוסך שעות של דיבוג מאוחר.
חוסר אופטימיזציה של DB הוא אחד הגורמים העיקריים לכשל אפליקציות בייצור, ואצל לקוחות שאני בודק רואים אותו שוב ושוב, חוסר אינדקסים, RLS לקוי, וקשרים לא מנורמלים. הסקיל מטפל בכל אלה בצורה מובנית.
אני מציע ליווי לחברות שעוברות לארכיטקטורה של Supabase או שיש להן בעיות ביצועים בייצור. למידע על הליווי ועל פרויקטים קודמים, באתר של דביר נעמן. אם הנושא רלוונטי לכם בקידום אורגני שתלוי בביצועי הDB, או בכל תחום אחר, צרו קשר.
שיתוף הסקיל
שאלות ותשובות
איך מתקינים את הסקיל ב-Claude Code?
שמרו את SKILL.md תחת ~/.claude/skills/supabase-postgres-best-practices/. הסקיל יזוהה בכל פעם שתעבדו על Supabase או על Postgres. אין צורך בהגדרות נוספות, אבל מומלץ שיהיה לכם supabase CLI מותקן. אין הגדרות נוספות נדרשות, ההפעלה אוטומטית בכל סשן רלוונטי. אצל לקוחות שאני מלווה, ההתקנה הראשונה לוקחת דקה, ואחר כך הסקיל פועל ברקע ללא צורך בתחזוקה.
האם הסקיל מתאים גם ל-Postgres רגיל ללא Supabase?
חלקית. הדפוסים של schema design, migrations, ו-RPC רלוונטיים גם ל-Postgres רגיל. אבל RLS עם auth.uid(), Realtime ו-Edge Functions זה ספציפי ל-Supabase. למי שעובד על Postgres עצמאי, יש סקילים אחרים שמתאימים יותר. אצלי בעבודות שאני מבצע, האספקט הזה הוא חלק מהסטנדרט שאני מטמיע ללקוחות. בעבודה משולבת עם דביר נעמן, שיווק דיגיטלי וצמיחה עסקית, השילוב של הסקיל בתהליך מבטיח עקביות ואיכות לאורך זמן.
האם הסקיל שולח דאטה לשרת חיצוני?
לא. הסקיל הוא קובץ Markdown טהור עם הוראות. אין בו פקודות bash שרצות אוטומטית, אין URLs, אין שירות צד שלישי. הקוד מלא בעמוד וניתן לבדוק לפני התקנה. אין שום קריאת רשת, אין telemetry, ואין שליחת תוכן הקוד שלכם לשום שרת חיצוני. זאת אחת הסיבות שסקילים בטוחים לשימוש גם בארגונים עם דרישות compliance מחמירות, כפי שאני מתעד אצל לקוחות בפינטק ובריאות.
האם אפשר לערוך את הסקיל לסטנדרטים פנימיים?
כן ומומלץ. אם בארגון יש כללים נוספים על schemas או על naming conventions, פתחו את SKILL.md והוסיפו אותם. הרישיון MIT, אין מגבלות. אצלי לכל לקוח יש גרסה מותאמת. אצלי בעבודות שאני מבצע, האספקט הזה הוא חלק מהסטנדרט שאני מטמיע ללקוחות. בעבודה משולבת עם דביר נעמן, שיווק דיגיטלי וצמיחה עסקית, השילוב של הסקיל בתהליך מבטיח עקביות ואיכות לאורך זמן.
מה ההבדל בין הסקיל הזה לבין Supabase Studio?
Studio הוא ממשק ויזואלי. הסקיל הוא הוראות התנהגות לסוכן. אצלי שני הכלים עובדים יחד. Studio לסקירה ויזואלית מהירה, הסקיל לעריכת קוד שיוצרת migrations מסודרות. השניים משלימים אחד את השני, ואני ממליץ להתקין אותם יחד בכל פרויקט רציני. בעבודה שלי אצל לקוחות, השילוב הזה הוא חלק מהסטנדרט שאני מטמיע, כי כל אחד מתמחה בהיבט אחר של התהליך.
האם הוא תומך גם ב-PostgreSQL extensions?
כן. הסקיל מסביר איך לקנפג extensions נפוצים כמו pgvector, postgis, ו-pg_cron. הוא מתעד את הסדר הנכון, איך להפעיל ב-migration, ואיך לוודא שהם זמינים גם ב-staging וגם בפרודקשן. הסקיל מתעדכן עם הסטנדרטים הנוכחיים של הפלטפורמות שהוא תומך בהן. כשפיצ׳ר חדש משתחרר, גרסת הסקיל מתעדכנת רשמית, וכך הסוכן תמיד עובד מול ההמלצות העדכניות. בעבודות שאני מבצע, אני מוודא שהסקילים מעודכנים לפני התחלת פרויקט חדש.
מה קורה אם RLS פוגע בביצועים?
הסקיל מתעד את המקרים בהם RLS מוסיף עומס ניכר על שאילתות, ומציע פתרונות. למשל, יצירת indexes על העמודות שמשמשות ב-policies, או שימוש ב-security definer functions למקומות שדורשים בדיקה אחת בלבד. אצלי בעבודות שאני מבצע, האספקט הזה הוא חלק מהסטנדרט שאני מטמיע ללקוחות. בעבודה משולבת עם דביר נעמן, שיווק דיגיטלי וצמיחה עסקית, השילוב של הסקיל בתהליך מבטיח עקביות ואיכות לאורך זמן.
האם הוא מתאים לפרויקטים בעברית עם RTL?
כן. מסד הנתונים אגנוסטי לשפה. שמירה של טקסט עברי דורשת encoding UTF-8 (ברירת המחדל ב-Postgres). הסקיל לא נוגע בתצוגה, רק בארכיטקטורת הdb. הסקיל ניטרלי לשפה. הסברים יכולים להיות בעברית, קוד נשאר באנגלית. אצלי בלקוחות ישראלים, האספקט הזה הוא קריטי, וההתאמה אוטומטית לחלוטין.