توقف عن استخدام Firebase... جرب هذا البديل المفتوح المصدر (Appwrite)

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00فایربیس (Firebase) مذهل حقاً، إلى أن يبدأ تطبيقك بالنمو فعلياً.
00:00:03عندما يزداد المستخدمون وحركة المرور، تكتشف فجأة أن المشكلة ليست في الواجهة الخلفية، بل
00:00:09في الفاتورة.
00:00:10والأسوأ من ذلك، تدرك أنك لا تملك السيطرة على الواجهة الخلفية، بل فایربیس هو من يملكها.
00:00:14لكن، ماذا لو استطعت الاحتفاظ بكل المزايا الرائعة: الهوية، وقاعدة البيانات، والتخزين، والوظائف
00:00:19الفورية، وكل هذا، مع تشغيلها بنفسك وامتلاك بياناتك الخاصة؟
00:00:24هذا هو "آب رايت" (Appwrite)، وهو مشروع مفتوح المصدر بدأ الكثير من المطورين بالانتقال إليه
00:00:28خلال العام الماضي.
00:00:29دعونا نرى كيفية إعداده في بضع دقائق فقط.
00:00:37نعلم أن فایربیس يوفر لنا الهوية، وقاعدة بيانات فورية، وتخزيناً، ورسائل، وكل هذه
00:00:42الأدوات الجيدة.
00:00:43ولهذا السبب يبدأ الكثير من المطورين من هناك.
00:00:45يمنحنا آب رايت نفس هذه اللبنات الأساسية، بالإضافة إلى إدارة الفرق، والاستضافة الذاتية، ومزودي الرسائل،
00:00:52وحتى أدوات الذكاء الاصطناعي.
00:00:54الفرق هنا بسيط للغاية.
00:00:55إنه خادمك، وجهاز الـ VPS الخاص بك، وإعداداتك، وقواعدك أنت.
00:00:59إذا كنت تستمتع بهذه الأنواع من الأدوات مفتوحة المصدر التي تسرع سير عملك، فتأكد من
00:01:03الاشتراك في قناة Better Stack.
00:01:05الآن مع آب رايت، نحصل على نظام هوية بالبريد الإلكتروني، وOAuth، والروابط السحرية، وتسجيل الدخول المجهول،
00:01:10وحتى المصادقة الثنائية (MFA).
00:01:12تحصل على قاعدة بيانات فورية تمزج بين بنية المستندات والبنية العلاقاتية.
00:01:15وتحصل على ميزة تخزين مع تحويل الملفات.
00:01:17لدينا وظائف بدون خادم (Serverless) بأكثر من 13 لغة، ورسائل للدفع والبريد الإلكتروني والـ SMS، وكل هذه
00:01:23الأمور الرائعة.
00:01:24ويمكنك استضافته ذاتياً أو استخدام السحابة.
00:01:27وهنا الجزء الذي يدهش معظم الناس.
00:01:28رغم قوته الكبيرة، إلا أن استضافته ذاتياً سهلة حقاً.
00:01:32لذا دعونا لا نكتفي بالحديث عنه.
00:01:34لنبدأ فعلياً في تشغيله لأريكم كيف تدمجون آب رايت
00:01:38في أحد مشاريعكم.
00:01:39الخطوة الأولى بسيطة.
00:01:41تأكد من أن Docker يعمل، حسناً؟
00:01:43ثم في منصة الأوامر (Terminal)، أريدكم أن تشغلوا هذا الأمر، ثم سنقوم
00:01:46بتشغيل أمر Docker Compose هنا.
00:01:49وهذا كل شيء.
00:01:50تم إعداد الواجهة الخلفية بالفعل.
00:01:51إنها جاهزة للعمل.
00:01:52سيأخذنا هذا إلى هذه الصفحة حيث يمكنك إما إنشاء حساب أو تسجيل الدخول إلى
00:01:56حساب آب رايت الحالي الخاص بك.
00:01:58الآن سنقوم بإنشاء مشروع جديد هنا.
00:02:00سأسميه "TodoApp" لأن هذا ما سنعرضه.
00:02:04وبعد ذلك سننسخ معرف المشروع (Project ID).
00:02:06سنحتاج لإضافة هذا إلى ملف ENV الخاص بنا لاحقاً، حيث يمكنك حفظه الآن، أو
00:02:10يمكنك وضعه مباشرة في ملف ENV.
00:02:13بعد ذلك، سنضيف منصة ويب للتطوير المحلي.
00:02:16سأذهب إلى الهوية، ثم تطبيقات الويب، ثم إضافة منصة.
00:02:19يمكننا ضبط اسم المضيف على "localhost" فقط وسنحفظه كما هو.
00:02:23الآن يمكننا إعداد قاعدة البيانات الخاصة بنا وسننشئ مجموعة (Collection).
00:02:26بالنسبة لقاعدة البيانات ككل، فإن المجموعة هي مجرد جدول داخل تلك القاعدة.
00:02:30ويمكننا إنشاء أي عدد نحتاجه من الأعمدة.
00:02:33لهذا المشروع، سأستخدم أشياء مثل البريد الإلكتروني، والعنوان، والمحتوى، ولنقل
00:02:38معرف المستخدم (User ID).
00:02:40يمكننا الدخول هنا وضبط الأذونات.
00:02:42خيار "Any" مخصص لأي شخص، سواء قام بتسجيل الدخول أم لا.
00:02:45لذا سأضبط تلك على القراءة فقط.
00:02:48أما كل شيء آخر فسيكون للمستخدم الذي قام بتسجيل الدخول بالفعل.
00:02:51بما أنها قائمة مهام،
00:02:52فلنقم بجميع عمليات CRUD الأساسية من قراءة وتحديث وحذف وكل ذلك.
00:02:57هذا واحد من أفضل الأجزاء لأن آب رايت يتولى كل هذا مباشرة في الواجهة الخلفية.
00:03:02الأمر سهل للغاية.
00:03:03مجرد اختيار بضع خانات.
00:03:05الآن يمكننا ربطه بالكود الخاص بنا.
00:03:06يمكننا إضافة نقطة النهاية (Endpoint)، وكل البيانات لدينا، وهي معرف المشروع،
00:03:10ومعرف قاعدة البيانات، واسم الجدول نفسه مباشرة في ملف ENV الخاص بمشروعك.
00:03:16وما يبدو كأنه إعداد كامل للواجهة الخلفية هو في الواقع مجرد قطع صغيرة ربطناها
00:03:20داخل آب رايت ونقلناها إلى الكود الخاص بنا.
00:03:23حسناً.
00:03:24الآن لنختبر الأمر.
00:03:25يمكننا تشغيله.
00:03:26سأذهب إلى هنا وأنشئ حساب مستخدم جديد.
00:03:29لذا سنقوم بالتسجيل.
00:03:30وبمجرد تسجيل الدخول، يمكننا محاولة إنشاء مهمة.
00:03:33سأعطيها عنواناً وسأضع نوعاً من الوصف وسنقوم
00:03:37بالإضافة.
00:03:38وها قد انتهينا.
00:03:39يمكنكم رؤية أنه لا توجد أخطاء، صح؟
00:03:41يتم إرسال البيانات إلى تطبيقنا.
00:03:43وإذا عدنا إلى آب رايت، يمكننا رؤية بعض البيانات القادمة.
00:03:48الآن إذا قمت بتشغيل هذا في علامتي تبويب، في إحداهما نكون قد سجلنا الدخول وفي الأخرى
00:03:53لن نكون قد سجلنا الدخول.
00:03:54إذا أدخلت بيانات في التبويب الأول، فستظهر في التبويب الثاني الذي يحتوي على
00:03:59حقل القراءة فقط لأي شخص سواء سجل دخوله أم لا.
00:04:03بكمية قليلة جداً من الكود، أصبح لدينا كل شيء متزامن مع نظام الهوية
00:04:08وهي تقوم فعلياً بأخذ البيانات وتعبئة قاعدة البيانات وسحبها لنراها
00:04:13في صفحات متعددة.
00:04:14لذا لماذا ينتقل المطورون فعلياً إلى آب رايت؟
00:04:17حسناً، السبب الأول واضح جداً.
00:04:18وهو الملكية.
00:04:19أنت تملك البيانات حقاً، أليس كذلك؟
00:04:21هذا مشروع مفتوح المصدر.
00:04:23ويسمح لك بحماية المزيد من ذلك.
00:04:25بالإضافة إلى عدم وجود رسوم لكل مستخدم، صح؟
00:04:27بينما تنمو في فایربیس أو سوبابيس (Supabase)، ستكون هناك رسوم خفية.
00:04:31حسناً، ليست خفية تماماً، ولكن ستكون هناك رسوم مع تلك الأشياء.
00:04:35ومعظم الميزات التي لدينا هنا في آب رايت، موجودة بالفعل في فایربیس
00:04:39وسوبابيس.
00:04:40لذا فنحن لا نفقد أي شيء فعلياً.
00:04:42يمكنك استضافته ذاتياً أو استخدام سحابتهم، ومكتبات البرمجيات (SDKs) لديهم جيدة جداً مع أشياء مثل
00:04:47React و Flutter.
00:04:49مرة أخرى، لا يزال مفتوح المصدر.
00:04:51لذا فهو ليس مثالياً تماماً، ولكن كمطورين، يمكننا حل معظم هذه الأمور بسرعة.
00:04:55لذا لن يكون الأمر عقبة كبيرة.
00:04:57الأمر الأول هو أنك تحتاج لمعرفة Docker، ولكن ذلك سهل بما فيه الكفاية.
00:05:00حسناً.
00:05:01إذا كنت تعرف Docker، فهذا رائع لأننا نقوم بتشغيله بسرعة كبيرة.
00:05:05لا توجد شبكة توصيل محتوى (CDN) عالمية مدمجة أو وظائف حافة (Edge functions).
00:05:07لذا إذا كنت تريد ذلك، سيتعين عليك دمج شيء مثل Cloudflare.
00:05:10قاعدة البيانات مبنية على MariaDB.
00:05:13لذا فهي لا تحتوي على Postgres كما هو الحال في سوبابيس.
00:05:16وإذا كنت تريد التوسع بشكل كبير، ستحتاج إلى نوع من المراقبة، وهذا ينطبق
00:05:20على أي أداة مستضافة ذاتياً من هذا النوع.
00:05:22وهنا تبرز أهمية أدوات مثل Better Stack.
00:05:26الآن، هل يجب عليك استخدامه فعلياً، أو ربما السؤال الأفضل هو لمن صُمم هذا؟
00:05:30ربما أنت مطور أو شركة ناشئة تحاول تجنب هذه الفواتير المتزايدة.
00:05:34حسناً.
00:05:35هذا رائع.
00:05:36هذا مذهل حقاً.
00:05:37إذا كنت تهتم أكثر بالخصوصية والتحكم، فهذا سيكون جيداً أيضاً.
00:05:40بالنسبة لمطوري Flutter والموبايل الذين يريدون مكتبات SDK جيدة جداً، سيكون هذا رائعاً
00:05:44لذلك أيضاً.
00:05:45تذكروا، نحن نقلل الفاتورة هنا حقاً.
00:05:47لذا إذا كنت تهتم بتوفير المال، فقد يشمل ذلك أي شخص هنا.
00:05:49أجل، ستكون هذه أداة رائعة لذلك.
00:05:52إذا كان فایربیس يبدو باهظ الثمن مع نموك وسوبابيس يبدو وكأنه يحتوي على الكثير من
00:05:56الأجزاء المتحركة، فأشعر أن آب رايت قد يكون الحل الوسط بينهما.
00:06:00ولهذا السبب هو خيار قوي جداً مع دخولنا عام 2026.
00:06:04لذا في بضع دقائق فقط، قمنا بتشغيل واجهة خلفية، وزامنا كل شيء، ورأينا سبب
00:06:08كون هذا خياراً جيداً للكثير من المطورين الذين يبحثون عن بديل لفایربیس وسوبابيس.
00:06:13إذا كنت ترغب في تجربة ذلك، فقد وضعت بعض الروابط والمستندات في الوصف، توجه
00:06:17إليها وتحقق منها.
00:06:18يستغرق الأمر أقل من بضع دقائق لتشغيله.
00:06:20لذا فهو يستحق التجربة بالتأكيد.
00:06:21إذا كنت تستمتع بفيديوهات البرمجة والأدوات مفتوحة المصدر مثل هذه، فتأكد من الاشتراك
00:06:25في قناة Better Stack.
00:06:27نراكم في فيديو آخر.

Key Takeaway

يعتبر Appwrite الخيار الأمثل للمطورين والشركات الناشئة الذين يبحثون عن توازن بين سهولة الاستخدام، والتحكم الكامل في البيانات، وتقليل تكاليف البنية التحتية مقارنة بالحلول السحابية المغلقة.

Highlights

يعد Appwrite بديلاً قوياً ومفتوح المصدر لمنصة Firebase، حيث يوفر للمطورين تحكماً كاملاً وخصوصية أكبر لبياناتهم.

تتميز المنصة بتوفير ميزات متكاملة تشمل المصادقة (Auth)، وقواعد البيانات الفورية، وتخزين الملفات، والوظائف السحابية (Functions).

تعتمد استراتيجية التسعير في Appwrite على الاستضافة الذاتية، مما يلغي التكاليف المخفية أو الرسوم المتزايدة مع نمو عدد المستخدمين.

عملية الإعداد بسيطة للغاية وتعتمد بشكل أساسي على Docker، مما يسمح بتشغيل واجهة خلفية كاملة في غضون دقائق.

يدعم Appwrite أكثر من 13 لغة برمجة للوظائف بدون خادم، ويوفر مكتبات برمجية (SDKs) ممتازة لمنصات مثل React و Flutter.

على الرغم من قوته، يفتقر النظام حالياً لشبكة توصيل محتوى (CDN) مدمجة، مما يتطلب دمج أدوات خارجية مثل Cloudflare للتوسع العالمي.

Timeline

مقدمة عن مشاكل Firebase وحل Appwrite

يبدأ الفيديو بتسليط الضوء على التحديات التي يواجهها المطورون مع منصة Firebase، خاصة فيما يتعلق بالتكاليف المرتفعة مع نمو التطبيق وفقدان السيطرة على الواجهة الخلفية. يطرح المتحدث تساؤلاً جوهرياً حول إمكانية الحصول على نفس الميزات مع الاحتفاظ بملكية البيانات. هنا يتم تقديم Appwrite كحل مفتوح المصدر بدأ يجذب المطورين بشكل كبير خلال العام الماضي. يوضح هذا القسم أن الدافع الأساسي للانتقال هو الرغبة في الاستقلالية التقنية والمادية. يعد هذا التمهيد مهماً لفهم الفجوة التي يسدها Appwrite في سوق أدوات التطوير.

الميزات الأساسية والفرق الجوهري

يستعرض هذا الجزء اللبنات الأساسية التي يوفرها Appwrite والتي تشابه ما يقدمه Firebase مثل الهوية وقواعد البيانات والتخزين. يضيف Appwrite ميزات إضافية مثل إدارة الفرق، ومزودي الرسائل، وأدوات الذكاء الاصطناعي، مع ميزة الاستضافة الذاتية. يكمن الفرق الجوهري في أن المطور يمتلك الخادم (VPS) والقواعد الخاصة به بالكامل. يشرح المتحدث أيضاً تنوع أنظمة المصادقة المتاحة، بما في ذلك الروابط السحرية والمصادقة الثنائية (MFA). هذا القسم يثبت أن الانتقال إلى بديل مفتوح المصدر لا يعني التضحية بالوظائف المتقدمة.

خطوات الإعداد والتشغيل العملي

ينتقل الفيديو إلى الجانب التطبيقي من خلال شرح كيفية تشغيل Appwrite باستخدام Docker و Docker Compose في خطوات بسيطة. يوضح المتحدث كيفية إنشاء مشروع جديد يسمى "TodoApp" ونسخ معرف المشروع (Project ID) لاستخدامه في ملفات البيئة. يتم شرح عملية إضافة منصة ويب للتطوير المحلي وضبط اسم المضيف على localhost لضمان الاتصال السليم. يؤكد هذا القسم على سهولة الإعداد التقني التي قد يخشاها البعض عند التعامل مع الأدوات المستضافة ذاتياً. تعتبر هذه الخطوات دليلاً عملياً للمطورين لبدء تجربة المنصة فوراً دون تعقيدات.

إعداد قاعدة البيانات والأذونات

يركز هذا القسم على هيكلة البيانات داخل Appwrite، حيث يتم شرح مفهوم المجموعات (Collections) كجداول داخل قاعدة البيانات. يوضح المتحدث كيفية إنشاء الأعمدة مثل البريد الإلكتروني والعنوان، وكيفية ضبط أذونات الوصول بدقة لكل مستخدم. يتم تسليط الضوء على ميزة التحكم في عمليات CRUD (الإنشاء والقراءة والتحديث والحذف) مباشرة من واجهة التحكم. يشيد المتحدث بكيفية معالجة Appwrite لهذه العمليات في الواجهة الخلفية بشكل تلقائي وسلس. هذا الجزء يبرز القوة التنظيمية للمنصة وكيفية حماية البيانات بناءً على هوية المستخدم.

ربط الكود واختبار التطبيق

يشرح المتحدث عملية ربط الواجهة الخلفية الجاهزة بالكود المصدري للتطبيق باستخدام نقاط النهاية ومعرفات قاعدة البيانات في ملف ENV. يتم إجراء تجربة حية لإنشاء حساب مستخدم جديد وإضافة مهام إلى القائمة للتأكد من عدم وجود أخطاء برمجية. يظهر الفيديو كيفية مزامنة البيانات فوراً بين المتصفحات المختلفة، حتى للمستخدمين غير المسجلين بناءً على الأذونات المحددة سابقاً. يوضح هذا الاختبار العملي كفاءة النظام في التعامل مع البيانات الفورية وتحديث واجهة المستخدم. يثبت هذا القسم أن Appwrite يوفر تجربة تطوير متكاملة وسريعة الاستجابة.

لماذا يختار المطورون Appwrite؟

يحلل المتحدث الأسباب الاستراتيجية وراء انتقال المطورين إلى Appwrite، وعلى رأسها ملكية البيانات الكاملة وانعدام الرسوم لكل مستخدم. يتم عقد مقارنة سريعة مع Firebase و Supabase، موضحاً أن Appwrite لا يفتقر للميزات الأساسية المتوفرة فيهما. يتطرق الفيديو أيضاً إلى بعض العيوب أو التحديات مثل الحاجة لمعرفة Docker والاعتقاد بقاعدة بيانات MariaDB بدلاً من Postgres. يتم اقتراح أدوات مكملة مثل Better Stack للمراقبة و Cloudflare لتعويض غياب شبكة توصيل المحتوى المدمجة. هذا التحليل المتوازن يساعد المطورين على اتخاذ قرار مدروس بناءً على احتياجات مشاريعهم.

الفئات المستهدفة والخاتمة

في الختام، يحدد المتحدث الفئات التي س تستفيد أكثر من Appwrite، وهم المطورون والشركات الناشئة المهتمون بالخصوصية وتوفير التكاليف. يصف Appwrite بأنه الحل الوسط المثالي بين تعقيد بعض المنصات وارتفاع تكلفة البعض الآخر في عام 2026. يشجع الفيديو المشاهدين على تجربة المنصة بأنفسهم نظراً لأن عملية الإعداد لا تستغرق سوى بضع دقائق. ينتهي المقطع بدعوة للاشتراك في القناة والاطلاع على الروابط والمستندات التعليمية المرفقة في الوصف. تلخص هذه الخاتمة القيمة المضافة للفيديو وتضع Appwrite كلاعب أساسي في مستقبل تطوير الويب.

Community Posts

View all posts