Skip to main content
EngineeringStartup Engineering

لماذا نستخدم Supabase كخادم خلفي افتراضي لنا (ومتى لا نستخدمه)

Mortgy
4 min read

يبدأ كل مشروع جديد بنفس السؤال: ما هو الواجهة الخلفية؟ على مدار العام الماضي، كان إجابتنا الافتراضية هي Supabase — وقد وفرت لعملائنا مئات الساعات وآلاف الدولارات. لكنها ليست الإجابة الصحيحة دائماً. إليك إطار عملنا في اتخاذ القرار.

ما الذي توفره Supabase مجاناً

Supabase هي بديل مفتوح المصدر من Firebase مبني على PostgreSQL. بشكل افتراضي، تحصل على: المصادقة (بريد إلكتروني، OAuth، روابط سحرية، هاتف)، قاعدة بيانات PostgreSQL كاملة مع واجهات برمجية REST و GraphQL يتم إنشاؤها تلقائياً من مخططك، اشتراكات فورية عبر WebSockets، تخزين الملفات مع شبكة توزيع المحتوى، وظائف حدية للمنطق بدون خادم، وأمان على مستوى الصف للتحكم في الوصول الدقيق.

بالنسبة لمنتج قابل للتطبيق على الفور النموذجي، هذا يغطي 80-90% من احتياجات الواجهة الخلفية الخاصة بك دون كتابة سطر واحد من كود الخادم. يتحدث الواجهة الأمامية الخاصة بك مباشرة إلى Supabase عبر مجموعات عميل البرنامج الخاصة بهم (متاحة لـ JavaScript و Flutter و Swift و Kotlin و Python). المصادقة وعمليات CRUD وتحميل الملفات والتحديثات الفورية تعمل جميعاً فوراً.

أساس PostgreSQL هو المميز الرئيسي عن Firebase. تحصل على نمذجة بيانات علائقية صحيحة واستعلامات معقدة مع JOINs والبحث عن النص الكامل وأعمدة JSON والنظام البيئي الكامل لملحقات PostgreSQL (PostGIS للبيانات الجغرافية المكانية و pgvector لتضمينات الذكاء الاصطناعي و pg_cron للمهام المجدولة). عندما ينمو تطبيقك، فأنت لن تكون محاصراً في قاعدة بيانات احتكارية.

توفير التكاليف الفعلي: دراسة حالة

بالنسبة لـ FinFlow (دراسة الحالة الخاصة بنا لتطبيق التمويل الشخصي)، استخدام Supabase وفر تقريباً 3 أسابيع من وقت التطوير مقارنة ببناء واجهة خلفية مخصصة Node.js. كانت المصادقة ستستغرق 3-4 أيام. سقالات واجهة برمجية REST أيام 2-3 أخرى. الاشتراكات الفورية أيام 2-3. تخزين الملفات وتكوين شبكة توزيع المحتوى أيام 1-2. كان الأمان على مستوى الصف يتطلب بناء طبقة برمجيات وسيطة مخصصة.

على جانب الاستضافة، تغطي الطبقة المجانية من Supabase معظم منتجات قابلة للتطبيق على الفور بشكل مريح (قاعدة بيانات 500MB، تخزين 1GB، 50000 مستخدم نشط شهري). تتعامل خطة Pro بسعر 25 دولاراً/شهر مع تطبيقات الإنتاج حتى نطاق كبير. قارن ذلك بتشغيل خادم PostgreSQL الخاص بك وخدمة المصادقة وتخزين الملفات وخادم WebSocket — فأنت تنظر إلى 100-300 دولار على الأقل شهرياً في تكاليف البنية الأساسية وحدها.

أمان على مستوى الصفوف: الميزة التي تستخدمها معظم الفرق بشكل ناقص

أمان على مستوى الصفوف (RLS) هو الميزة الأساسية في Supabase والميزة التي تتجاهلها معظم الفرق أو تطبقها بشكل غير صحيح. يتيح لك RLS تحديد سياسات الوصول على مستوى قاعدة البيانات — يمكن للمستخدمين فقط قراءة أو كتابة الصفوف التي تطابق هويتهم. هذا يعني أن واجهة برمجة التطبيقات الخاصة بك لا يمكنها أن تسرب البيانات عن طريق الخطأ حتى لو كان لديك خطأ في كود الواجهة الأمامية.

نفرض قاعدة صارمة على كل مشروع Supabase: يجب تفعيل RLS على كل جدول من اليوم الأول، مع سياسات واضحة لكل عملية. بدون استثناءات. هذا يضيف 15-20 دقيقة من الإعداد لكل جدول لكنه يزيل فئة كاملة من ثغرات الأمان. لقد رأينا تطبيقات منافسة يتم شحنها مع تعطيل RLS — مما يعني أن أي مستخدم مصرح به يمكنه قراءة بيانات أي مستخدم آخر. لا تقع في هذا الخطأ.

عندما لا تكون Supabase الخيار الصحيح

Supabase ليست حلاً عالمياً. نلجأ إلى الواجهات الخلفية المخصصة في هذه السيناريوهات: منطق الأعمال المعقد الذي لا يندرج بدقة في سياسات قاعدة البيانات (سير العمل متعدد الخطوات، أنماط الحكايات)، التطبيقات التي تحتاج إلى التكامل مع واجهات برمجة تطبيقات خارجية متعددة بتسلسلات منسقة، الأنظمة التي تتطلب مصادر الأحداث أو أنماط CQRS، والتطبيقات ذات معالجة الخلفية الثقيلة (نسخ الفيديو، استدلال ML الجماعي).

بالنسبة لهذه الحالات، نبني عادة واجهة برمجة تطبيقات Node.js مع Prisma ORM، ولا نزال نستخدم PostgreSQL كقاعدة البيانات. طبقة البيانات تبقى كما هي — نضيف فقط طبقة تطبيق مناسبة في الأعلى. أحياناً نستخدم نهجاً هجيناً: Supabase للمصادقة والوقت الفعلي، مع واجهة برمجة تطبيقات مخصصة لمنطق الأعمال المعقد.

قالب مشروع Supabase الخاص بنا

لقد بنينا قالب مشروع Supabase داخلي نستخدمه لكل مشروع جديد. يتضمن: تكوين مصادقة قياسي مع بريد إلكتروني و Google OAuth، هجرة أساسية مع جداول شائعة (الملفات الشخصية، الإعدادات، السجل القابل للتدقيق)، سياسات RLS لجميع الجداول، وظائف الحافة للتعامل مع رد اتصال Stripe وإرسال البريد الإلكتروني، وسكريبت seed لبيانات التطوير.

يسمح لنا هذا النموذج بالانتقال من الصفر إلى تطبيق مصرح به وعامل مع أمان مناسب في حوالي 30 دقيقة. إذا كنت تقيم Supabase لمشروعك القادم وتريد أن ترى كيف يبدو الإعداد على مستوى الإنتاج، فلا تتردد في التواصل معنا — نحن سعداء بشرح نهجنا لك.

Mortgy

Founder & CEO