منصة SaaS هي برنامج سحابي واحد تشترك فيه شركات كثيرة، ولكل شركة بياناتها المعزولة ومستخدموها وباقتها. قبل أي ميزة تحتاج المنصة ثلاثة أساسات، عزل بيانات العملاء (تعدد المستأجرين)، والاشتراكات والفوترة المتكررة، والأدوار والصلاحيات داخل كل حساب. في Q Studio نبنيها بـ Next.js وقاعدة PostgreSQL، ويبدأ النموذج التفاعلي من 500$، والنسخة الأولى بتسجيل دخول وقاعدة بيانات وسير عمل أساسي من 1,500$، والنسخة الأكبر بأدوار ودفع إلكتروني من 3,000$ خلال 5 إلى 6 أسابيع تقريباً.
نظام إدارة عيادة تبنيه لعيادتك أنت شيء، وبرنامج إدارة عيادات تبيعه باشتراك شهري لمئة عيادة شيء آخر تماماً. الميزات قد تبدو متطابقة، لكن الثاني يحتاج إجابات عن أسئلة لا يطرحها الأول أبداً: كيف نضمن ألا ترى عيادة بيانات عيادة أخرى؟ ماذا يحدث عندما تفشل بطاقة مشترك في التجديد؟ كيف ينتقل عميل من الباقة الأساسية إلى المتقدمة في منتصف الشهر؟
هذه الصفحة لأصحاب فكرة برنامج سحابي للشركات (SaaS) يريدون فهم ما يُبنى فعلاً قبل الميزات الظاهرة. وإن كنت تحتاج نظاماً لشركتك وحدها، فالصفحة الأنسب لك برمجة أنظمة الشركات.
ثلاثة أساسات تفرق بين SaaS ونظام عادي
- تعدد المستأجرين: كل شركة مشتركة "مستأجر" له بياناته المعزولة تماماً.
- الاشتراكات والفوترة: باقات وفترات تجربة وتجديد تلقائي وفواتير، دون تدخل يدوي منك.
- الأدوار داخل كل حساب: مالك الحساب يدعو موظفيه ويحدد صلاحياتهم بنفسه.
إذا بُني أي واحد منها بشكل خاطئ في البداية، فإصلاحه بعد وجود عملاء حقيقيين أصعب وأخطر بكثير من بنائه صحيحاً من اليوم الأول.
تعدد المستأجرين: القرار الذي يصعب تغييره لاحقاً
هناك ثلاث طرق شائعة لعزل بيانات العملاء:
| الطريقة | كيف تعمل | متى تناسب |
|---|---|---|
| قاعدة بيانات مشتركة مع معرّف لكل عميل | كل سجل يحمل رقم الشركة، والقاعدة نفسها تمنع الوصول لغير بياناتك | أغلب منصات SaaS في بدايتها، وهي الأوفر تشغيلاً |
| مخطط (Schema) منفصل لكل عميل | جداول منفصلة لكل شركة داخل قاعدة واحدة | عدد عملاء متوسط بحاجة عزل أقوى |
| قاعدة بيانات منفصلة لكل عميل | كل شركة لها قاعدتها | عملاء كبار يشترطون ذلك تعاقدياً |
لأغلب المنصات الجديدة نستخدم الطريقة الأولى على PostgreSQL مع سياسات أمان على مستوى الصفوف (Row Level Security)، وهي ميزة في قاعدة البيانات نفسها تمنع أي استعلام من قراءة بيانات شركة أخرى، حتى لو أخطأ الكود في مكان ما. هذا يعني أن الحماية لا تعتمد على تذكّر المبرمج إضافة شرط في كل شاشة.
الاشتراكات والفوترة المتكررة
هذا الجزء أكبر مما يتوقعه أغلب أصحاب الأفكار. نسخة أولى معقولة تشمل:
- باقات بأسعار شهرية وسنوية، ولكل باقة حدود واضحة (عدد المستخدمين، أو الفروع، أو السجلات).
- فترة تجربة مجانية تنتهي تلقائياً، مع تذكير قبل انتهائها.
- الترقية والتخفيض في منتصف الفترة، مع حساب الفرق بطريقة عادلة ومعلنة.
- فشل التجديد: محاولات إعادة خصم، ورسائل للعميل، ثم تقييد الحساب بعد مهلة، لا حذفه.
- فواتير تصل تلقائياً، بالضريبة إن كنت مسجلاً فيها. وإن كنت في السعودية فراجع متطلبات الفوترة الإلكترونية في الفوترة الإلكترونية للمتاجر والأنظمة.
تنبيه مهم عن بوابة الدفع: الخصم المتكرر من البطاقة يحتاج بوابة تدعم حفظ البطاقة بشكل آمن والخصم الدوري، وليست كل البوابات المحلية تدعمه بنفس السهولة. وبعض وسائل الدفع المحلية الشائعة قد لا تصلح للتجديد التلقائي أصلاً. نحدد هذا مبكراً عند ربط بوابة الدفع. والبديل لعملاء الشركات غالباً فاتورة سنوية تُدفع بتحويل بنكي، مع تفعيل يدوي من لوحة الإدارة.
ومن الناحية الشرعية: الاشتراك الشهري بسعر معلوم لا إشكال فيه. ما نتجنبه هو فرض غرامات تأخير تتزايد مع الوقت على المبالغ المستحقة، فالبديل الصحيح تقييد الخدمة حتى السداد.
الأدوار والصلاحيات: مستويان لا مستوى واحد
في SaaS يوجد مستويان من الصلاحيات، ويخلط بينهما كثيرون:
داخل حساب كل شركة: مالك الحساب (يدير الاشتراك والفوترة)، ومدير (يدير المستخدمين والإعدادات)، وعضو (يعمل على البيانات)، ومشاهد (يقرأ فقط). مالك الحساب يدعو موظفيه بالبريد ويحدد أدوارهم بنفسه دون الرجوع إليك.
على مستوى المنصة كلها: أنت وفريقك. لوحة إدارة عليا ترى فيها كل الشركات المشتركة، وحالة اشتراك كل منها، والإيرادات الشهرية، وتستطيع تمديد تجربة أو منح خصم. وإن احتاج فريق الدعم الدخول إلى حساب عميل لحل مشكلة، فيتم ذلك بإذن مسجَّل في سجل تدقيق، لا بكلمة مرور العميل.
ما يدخل في النسخة الأولى من منصة SaaS
- تسجيل شركة جديدة، وخطوات إعداد أولى قصيرة تقود العميل لأول نتيجة مفيدة بسرعة.
- دعوة المستخدمين والأدوار.
- سير العمل الأساسي الذي يدفع العميل من أجله، واحد أو اثنان فقط، مصقولان جيداً.
- الباقات والاشتراك والفواتير.
- لوحة الإدارة العليا.
- واجهة عربية وإنجليزية إن كان سوقك يحتاجهما.
وما يؤجَّل عادة: تطبيق جوال (الويب يكفي أغلب منصات الشركات في البداية، ونناقش ذلك في تطبيق ويب أم تطبيق جوال؟)، وواجهة برمجية عامة للعملاء، والتقارير المتقدمة، وتخصيص العلامة التجارية لكل عميل.
التقنيات التي نستخدمها
Next.js وReact وTypeScript للواجهة، وPostgreSQL عبر Supabase أو قاعدة مستقلة للبيانات، والاستضافة على Vercel أو سحابة مماثلة. هذا يعني تكلفة تشغيل منخفضة جداً في البداية، تكبر مع عدد المشتركين لا قبله. وكل الحسابات (الاستضافة، وقاعدة البيانات، وبوابة الدفع، ومستودع الكود) تُفتح باسمك من اليوم الأول.
كم تكلف برمجة منصة SaaS؟
| المرحلة | يبدأ من | المدة التقريبية |
|---|---|---|
| نموذج تفاعلي للمسار الأساسي، تعرضه على عملاء محتملين | 500$ (حوالي 1,900 ريال سعودي) | حوالي 5 أيام |
| نسخة أولى بتسجيل دخول وقاعدة بيانات وسير عمل واحد ولوحة إدارة | 1,500$ (حوالي 5,600 ريال سعودي) | حوالي 3 أسابيع |
| نسخة أكبر بسيرين أو ثلاثة وأدوار مستخدمين ودفع إلكتروني | 3,000$ (حوالي 11,250 ريال سعودي) | 5–6 أسابيع |
ترى نسخة عاملة خلال 72 ساعة، والدفع على مراحل بعد رؤية كل مرحلة تعمل. ننصح كثيراً بالبدء بالنموذج التفاعلي: اعرضه على عشرة عملاء محتملين قبل أن تبني الفوترة. اقرأ لماذا في ما هو MVP ولماذا تبدأ به.
ليس في معرض أعمالنا المنشور منصة SaaS حتى الآن. ما نستطيع أن نريك إياه منتجات منشورة فيها حسابات بأدوار مختلفة ولوحات إدارة، مثل لوحة المعلم في تطبيق لوح، ونشرح لك طريقة بنائنا لكل أساس من الثلاثة قبل أن تدفع.
متى لا نكون الخيار المناسب؟
- إذا كان عملاؤك المستهدفون يشترطون شهادات امتثال رسمية للمورد (مثل شهادات أمن المعلومات الدولية) من اليوم الأول، فتحتاج جهة لديها هذه الشهادات.
- إذا كان المنتج يجب أن يُثبَّت على خوادم كل عميل داخل شركته، فهذا ليس SaaS، ويحتاج نموذج تسليم وصيانة مختلفاً.
- إذا كانت المنصة تخدم الإقراض بفائدة أو التداول أو أي نشاط غير متوافق مع الشريعة، فلا نعمل عليها.
- إذا كان البرنامج لشركتك وحدها، فلا تدفع ثمن تعدد المستأجرين والفوترة دون حاجة.
الأسئلة الشائعة
هل يمكن أن يكون لكل عميل رابط خاص مثل company.yourapp.com؟
نعم. النطاقات الفرعية لكل شركة ممكنة، وكذلك ربط نطاق العميل الخاص في مرحلة لاحقة. لكنها ليست ضرورية في النسخة الأولى، والرابط الموحد بعد تسجيل الدخول يكفي أغلب المنصات في البداية.
كيف تُحمى بيانات عملائي من بعضهم؟
بعزل على مستوى قاعدة البيانات نفسها، لا على مستوى الشاشات فقط. كل سجل مرتبط بشركته، وسياسات الأمان في القاعدة ترفض أي طلب لبيانات شركة أخرى. ونختبر هذا تحديداً قبل الإطلاق بمحاولة الوصول إلى بيانات حساب من حساب آخر.
هل أستطيع البدء بالفوترة اليدوية ثم أتمتتها؟
نعم، وهذا خيار ذكي في البداية. تفعّل الاشتراكات يدوياً من لوحة الإدارة بعد تحويل بنكي أو رابط دفع، ثم تُضاف الفوترة التلقائية عندما يصبح عدد المشتركين كبيراً بما يكفي ليستحق.
ماذا يحدث لبيانات عميل ألغى اشتراكه؟
تحدده سياستك المكتوبة: مثلاً يبقى الحساب مقيداً للقراءة فترة معينة، مع إمكانية تصدير بياناته، ثم تُحذف. نبني التصدير والحذف كجزء من المنصة، لأن العملاء يسألون عنهما قبل الاشتراك.
هل تتحمل المنصة آلاف المستخدمين؟
البنية التي نستخدمها تتوسع بشكل جيد مع النمو، وتكلفتها تكبر مع الاستخدام. الأهم من ذلك في البداية أن تصل إلى أول مئة عميل، ثم نقيس ونحسن الأجزاء التي يظهر عليها الضغط فعلاً.
كيف أبدأ؟
اكتب لنا من هو عميلك المستهدف، والمشكلة التي يدفع لحلها، وكيف يحلها اليوم. خلال 24 ساعة تصلك وثيقة نطاق وسعر ثابت. أو ابدأ من مخطط المشروع.
المدونة
دول الخليج
السعودية
مصر
المدونة
المدونة