Skip to main content
EngineeringStartup Engineering

لماذا نعتمد Supabase بديل Firebase كخادم خلفي افتراضي (ومتى لا نفعل)

Mortgy
آخر تحديث 4 دقائق للقراءة
ألواح أساس متراصة تحمل هاتفًا ذكيًا: اختيار الواجهة الخلفية لتطبيق

يبدأ كل مشروع جديد بنفس السؤال: ما هو الواجهة الخلفية؟ على مدار العام الماضي، كان إجابتنا الافتراضية هي 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 للمهام المجدولة). عندما ينمو تطبيقك، فأنت لن تكون محاصراً في قاعدة بيانات احتكارية.

توفير التكاليف الفعلي: أين يذهب الوقت

من واقع خبرتنا، في مشروع MVP نموذجي يوفّر Supabase نحو ثلاثة أسابيع من وقت التطوير مقارنة ببناء واجهة خلفية مخصصة 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 لمشروعك القادم وتريد أن ترى كيف يبدو الإعداد على مستوى الإنتاج، فلا تتردد في التواصل معنا — نحن سعداء بشرح نهجنا لك.

الأسئلة الشائعة

ما هو Supabase؟

Supabase بديل مفتوح المصدر لـFirebase مبني على PostgreSQL. يوفّر المصادقة، وقاعدة بيانات بواجهات REST وGraphQL تُنشأ تلقائياً من مخططك، واشتراكات فورية، وتخزين ملفات، ووظائف حدية، وأماناً على مستوى الصف.

ما الفرق بين Supabase وFirebase؟

الفرق الرئيسي أن Supabase مبني على PostgreSQL، فتحصل على نمذجة بيانات علائقية واستعلامات معقدة مع JOINs وبحث نصي كامل وملحقات مثل PostGIS وpgvector وpg_cron. ولن تكون محاصراً في قاعدة بيانات احتكارية مع نمو تطبيقك.

هل تكفي الخطة المجانية في Supabase لتطبيق MVP؟

تغطي الطبقة المجانية معظم منتجات MVP بشكل مريح، بقاعدة بيانات 500MB وتخزين 1GB و50,000 مستخدم نشط شهرياً. وتتعامل خطة Pro بسعر 25 دولاراً شهرياً مع تطبيقات الإنتاج حتى نطاق كبير.

متى لا يكون Supabase الخيار الصحيح؟

عند وجود منطق أعمال معقد لا يناسب سياسات قاعدة البيانات، أو تكاملات منسقة مع واجهات خارجية متعددة، أو أنماط مصادر الأحداث وCQRS، أو معالجة خلفية ثقيلة. في هذه الحالات نبني عادة API بـNode.js وPrisma مع الإبقاء على PostgreSQL.

Mortgy

المؤسس والرئيس التنفيذي