الأدلة التقنية

أي أداة حجز مواعيد تناسب عيادتك أو فريقك؟

أربع حالات حجز مختلفة، من العيادة إلى قاعة الاجتماعات، والأداة مفتوحة المصدر التي تناسب كل حالة منها.

أي أداة حجز مواعيد تناسب عيادتك أو فريقك؟

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

وسوف نناقش في هذا المقال ما يلي:

  • أربع حالات حجز مختلفة، والسؤال الذي يحدد الأداة.
  • Easy!Appointments لحجز الخدمات مع مقدميها، وCal.com وفرعه المفتوح Cal.diy لروابط الاجتماعات، وRallly لاستطلاع المواعيد، وLibreBooking للقاعات والأجهزة.
  • الترخيص وحالة الصيانة ومتطلبات الاستضافة والعربية لكل أداة، كما رأيناها في المستودع وفي تجربتنا.
  • جدول مقارنة، ودليل قرار، وأخطاء شائعة عند الاختيار.

وقد كتبنا دليل تثبيت عملي للأداتين الأكثر طلباً، ويمكنك الانتقال إليهما مباشرة:

دليلEasy!Appointments: حجز مواعيد العيادات ومراكز الخدمةكيف تشغل Easy!Appointments على سيرفرك لحجز الخدمات مع مقدميها، وما الذي يحتاج انتباهك في العربية والمنطقة الزمنية.دليلCal.com على سيرفرك: بديل Calendly لحجز الاجتماعاتما الذي تستطيع استضافته من Cal.com بعد تحوله إلى الكود المغلق، وكيف تشغله وتربطه بتقويمك ونظامك.

أربع مشكلات حجز مختلفة

الصورة التالية تبين الحالات الأربع، ولاحظ أن الفرق بينها ليس في شكل التقويم، وإنما في جوابين: من الذي يختار الوقت؟ وما الذي يحجز؟

مخطط من أربعة أعمدة: حجز خدمة حيث يختار العميل الخدمة ومقدمها ووقتاً متاحاً مع Easy!Appointments، ورابط اجتماع يختار منه المدعو وقتاً من أوقاتك الفارغة مع Cal.com أو Cal.diy، واستطلاع جماعي يصوت فيه الجميع ثم تقرر مع Rallly، وحجز قاعة أو جهاز مشترك مع LibreBooking
من يختار الوقت، وما الذي يحجز؟ جوابا هذين السؤالين يحددان الأداة
  1. حجز خدمة مع مقدمها Service Booking: عيادة أو صالون أو مركز صيانة، فيه خدمات لكل منها مدة وسعر، ومقدمو خدمة Providers لكل منهم جدول عمل Working Plan واستراحات وإجازات، ويختار العميل الخدمة ثم مقدمها ثم وقتاً فارغاً، وتحتاج موظف استقبال Secretary يدير مواعيد عدة أطباء. وهنا العميل هو من يختار، والمحجوز هو وقت شخص يقدم خدمة.
  2. رابط اجتماع Meeting Scheduling: ما تقدمه خدمة Calendly، فأنت تنشئ نوع اجتماع Event Type مثل «مكالمة تعارف 30 دقيقة»، وترسل الرابط، فيرى المدعو أوقاتك الفارغة بعد أن تقرأ الأداة تقويمك وتستبعد المشغول منه، ثم يصل الموعد إلى تقويمك تلقائياً. وهنا أيضاً المدعو هو من يختار، ولكن من وقت شخص واحد أو فريق، ومركز الأداة هو التقويم.
  3. استطلاع جماعي Group Poll: ما تقدمه خدمة Doodle، فأنت تقترح عدة أوقات، ويصوت المشاركون دون حساب، ثم تختار أنت الوقت الذي يناسب أكثرهم. وهنا لا أحد يحجز وقتاً محدداً من البداية، والقرار في النهاية للمنظم.
  4. حجز الموارد Resource Booking: قاعة اجتماعات أو مختبر أو سيارة أو جهاز عرض، يحجزها موظفو الجهة نفسها، وتحتاج موافقة Approval أحياناً، وحصصاً Quotas، ومنع التداخل. وهنا المحجوز شيء وليس شخصاً، ومن يحجز موظف وليس عميلاً.

وقد يتساءل البعض: أليس CalDAV كافياً، فنضع تقويماً مشتركاً للقاعة على سيرفر Radicale ونترك الفريق يضيف المواعيد؟ والإجابة أن التقويم المشترك يحفظ المواعيد ويزامنها، كما شرحنا في مقال CalDAV وCardDAV، ولكنه لا يمنع شخصين من إضافة موعدين في الوقت نفسه، ولا يعرض للعميل الأوقات الفارغة فقط، ولا يرسل تأكيداً وتذكيراً، وهذه هي الطبقة التي تضيفها أدوات الحجز فوق التقويم. وأما إذا كنت تبني نظام حجز بنفسك بآلاف الطلبات في اللحظة نفسها، فمشكلة الحجز المكرر Double Booking والأقفال شرحناها في مقال نظام حجز التذاكر، وهذا المقال عن الأدوات الجاهزة.

Easy!Appointments لحجز الخدمات

Easy!Appointments تطبيق ويب مكتوب بلغة PHP على إطار CodeIgniter، ويحفظ بياناته في MySQL، ويطوره Alex Tselegidis منذ سنوات، والترخيص GPL-3.0 للكود كله دون نسخة Enterprise مغلقة. وأحدث إصدار مستقر هو 1.6.0 بتاريخ 27 مايو 2026، وفي سبتمبر 2026 صدر الإصدار التجريبي 1.6.1-beta.1، وآخر نشاط في المستودع كان في 7 أكتوبر 2026. ويحتاج بحسب دليل التثبيت Apache 2.4 وPHP 8.2 وMySQL 5.7 أو أحدث، ويوجد له Docker Image رسمي.

وهو مبني حول المفاهيم التي تحتاجها العيادة بالضبط: الخدمات Services وتصنيفاتها، ومقدمو الخدمة Providers ولكل منهم جدول عمل واستراحات واستثناءات، والسكرتارية Secretaries الذين يديرون مواعيد مقدمين محددين، والعملاء Customers، ثم صفحة حجز عامة من خطوات: اختيار الخدمة ومقدمها، ثم التاريخ والوقت، ثم بيانات العميل، ثم التأكيد. ويزامن مواعيد كل مقدم خدمة مع Google Calendar أو مع أي سيرفر CalDAV، وفيه REST API وWebhooks، ودخول عبر LDAP.

وأما العربية، فملف الترجمة العربية في الإصدار 1.6.0 فيه 572 نصاً، وهو العدد نفسه في الملف الإنجليزي، أي أن الترجمة مكتملة من حيث العدد، ولكن الواجهة لا تنقلب من اليمين إلى اليسار، فطلب دعم RTL مفتوح منذ 2016 في التذكرة 110، وقد رأينا النتيجة في تجربتنا: نصوص عربية صحيحة داخل تخطيط من اليسار إلى اليمين.

صفحة الحجز في Easy!Appointments باللغة العربية من تثبيتنا، وفيها خطوة اختيار الخدمة ومقدمها بنصوص عربية، والتخطيط من اليسار إلى اليمين
صفحة الحجز في Easy!Appointments 1.6.0 من تثبيتنا: الترجمة كاملة، والاتجاه من اليسار إلى اليمين
  • نقاط القوة: النموذج المناسب للعيادات ومراكز الخدمة دون تعديل، وخفيف لأنه PHP وMySQL، وكله GPL دون ميزات مدفوعة، ومزامنة CalDAV وGoogle لكل مقدم خدمة في الاتجاهين، وترجمة عربية مكتملة.
  • نقاط الضعف: لا يوجد دعم RTL، والواجهة بسيطة الشكل مقارنة بالأدوات الحديثة، والمطور الرئيسي شخص واحد، وملف Docker الرسمي يفعل Xdebug، والمنطقة Asia/Riyadh ليست في قائمة المناطق الزمنية، وفي تجربتنا قبل سبعة حجوزات من عشرة طلبات متزامنة على الموعد نفسه، وكل ذلك مشروح في الدليل.
📌
إذا قررت أن Easy!Appointments هو الأنسب لك، فقد شرحنا تثبيته بال Docker Compose، والخدمات ومقدميها وجداول العمل، والبريد وال API والمزامنة، واختبرنا الحجز المكرر وفرق المنطقة الزمنية في دليل Easy!Appointments.

Cal.com وCal.diy لروابط الاجتماعات

كان Cal.com أشهر بديل مفتوح المصدر لخدمة Calendly، وكان كوده في مستودع عام بترخيص AGPLv3 للنواة، مع مجلد ee تحت ترخيص تجاري يحتاج مفتاحاً لميزات الفرق والمنظمات وSSO، ولكن في 15 أبريل 2026 أعلنت الشركة أنها نقلت كود الخدمة إلى مستودع خاص، وأن المستودع العام أصبح باسم Cal.diy بترخيص MIT، بعد حذف ميزات المؤسسات منه، مثل الفرق والمنظمات، ونماذج التوجيه Routing Forms، وسير العمل Workflows، وSSO، والإحصاءات Insights، وال API v1. ويقول ملف README في Cal.diy إنه موجه للاستخدام الشخصي وغير الإنتاجي، وإن من يريد بنية جدولة تجارية فعليه بنسخة Cal.com المستضافة أو بعقد مع الشركة.

والمشكلة العملية اليوم أن صفحة Cal.diy على Docker Hub لا تحتوي على أي إصدار، وآخر وسم Tag في المستودع هو v6.2.0 بتاريخ 1 مارس 2026، أي قبل التحويل، والتذكرة 28995 مفتوحة منذ أبريل حول غياب ال Docker Image، وفيها مستخدم يذكر أن بناءها من الكود استغرق نحو 36 دقيقة واستهلك 6.5 GB من الذاكرة على سيرفر بذاكرة 8 GB. لذلك شغلنا في الدليل آخر Image رسمية منشورة، وهي calcom/cal.com:v6.2.0.

صفحة الحجز في Cal.com بالعربية من تثبيتنا، وفيها معلومات الاجتماع على اليمين والتقويم والأوقات المتاحة لنوع اجتماع مدته 30 دقيقة
صفحة حجز اجتماع في Cal.com v6.2.0 من تثبيتنا، والاتجاه من اليمين إلى اليسار
  • نقاط القوة: أفضل تجربة حجز اجتماعات بين الأدوات المفتوحة، وتقرأ الأوقات المشغولة من Google وMicrosoft 365 وCalDAV، وفيها Webhooks موقعة وتضمين في موقعك Embed، وواجهة عربية باتجاه RTL صحيح، وقيد فريد في قاعدة البيانات يمنع حجز الوقت نفسه مرتين.
  • نقاط الضعف: مستقبل النسخة المفتوحة غير واضح بعد تحويل الشركة إلى الكود المغلق، ولا يوجد Docker Image لـ Cal.diy، والتطبيق ثقيل، فحجم ال Image 8 GB على القرص، وأول تشغيل استغرق عندنا 16 دقيقة، وميزات الفرق وسير العمل خارج النسخة المفتوحة، وفحص التعارض مع التقويم المربوط مغلق افتراضياً.
📌
إذا قررت أن Cal.com هو الأنسب لك، فقد شرحنا ما الذي تستطيع استضافته منه اليوم، وتثبيته، وأنواع الاجتماعات والتوفر، وربطه بتقويم CalDAV وال Webhooks في دليل Cal.com.

Rallly لاستطلاع المواعيد

Rallly بديل لخدمة Doodle، تنشئ فيه استطلاعاً بعدة تواريخ وأوقات، وترسل الرابط، فيصوت المشاركون دون أن ينشئوا حسابات، ثم تختار الوقت النهائي ويصلهم إشعار. وهو مكتوب بلغة TypeScript على Next.js مع PostgreSQL، والترخيص AGPL-3.0، والمشروع نشط جداً، فأحدث إصدار v4.15.4 بتاريخ 6 أكتوبر 2026، وقبله ثلاثة إصدارات في سبتمبر.

ولكن انتبه إلى نقطتين: الأولى أن صفحة الترخيص تقول إن الاستضافة الذاتية مجانية للاستخدام الشخصي بمستخدم واحد، وإن الفرق تحتاج مفتاح ترخيص مدفوعاً لمرة واحدة لإصدارات v4: خطة Plus حتى 5 مستخدمين ب 49 دولاراً، وOrganization حتى 50 مستخدماً، وEnterprise لأكثر من ذلك، ولا يحسب المصوتون من الضيوف مستخدمين. والثانية أن الواجهة ليس فيها العربية، فمجلد locales فيه 16 لغة منها الإنجليزية والصينية، وليس فيها العربية ولا أي لغة من اليمين إلى اليسار. وفي تجربتنا شغلنا Rallly مع PostgreSQL وMailpit فقط دون Traefik وتخزين Garage، فعمل إنشاء الاستطلاع والتصويت، والدخول للمنظم برمز من ست خانات يصل بالبريد، أما المصوتون فلا يحتاجون حساباً.

استطلاع في Rallly من تثبيتنا بعنوان اجتماع اللجنة الشهري، فيه أربعة أيام مقترحة وأصوات ثلاثة مشاركين، ويوم الثلاثاء 20 حصل على ثلاثة أصوات، والواجهة بالإنجليزية
استطلاع مواعيد في Rallly v4.15.4 من تثبيتنا: العنوان عربي لأننا كتبناه، والواجهة بالإنجليزية
  • نقاط القوة: يحل مشكلة واحدة بشكل ممتاز، والتصويت دون حساب، وواجهة حديثة وسريعة، والمشروع نشط.
  • نقاط الضعف: لا توجد العربية، والاستخدام في فريق يحتاج ترخيصاً مدفوعاً، والتثبيت الرسمي يجمع Traefik وPostgreSQL وتخزين Garage، ولا يحجز أي وقت في تقويمك.

LibreBooking للقاعات والموارد

LibreBooking نظام لحجز الموارد Resources مثل القاعات والمختبرات والأجهزة والسيارات، وهو فرع Fork من Booked Scheduler بني على آخر إصدار مفتوح منه في 2020، ومكتوب بلغة PHP مع MySQL أو MariaDB، والترخيص GPL-3.0. وفيه ما تحتاجه الجهات: جداول Schedules بفترات محددة، وموافقة المسؤول على الحجز، وحصص لكل مستخدم أو مجموعة، وحجوزات متكررة، ومنع التداخل، وتذكير بالبريد عبر مهام مجدولة. وأحدث إصدار v7.0.0 بتاريخ 6 أكتوبر 2026، ويوجد مستودع Docker رسمي.

📌
في 6 أكتوبر 2026 نشر فريق LibreBooking تنبيهاً أمنياً بدرجة Critical: كل الإصدارات قبل 7.0.0 فيها ملف قديم Web/install/migrate.php كان يستخدم للترحيل من phpScheduleIt، ويستطيع المهاجم دون حساب أن يستغله ليحقن أوامر SQL في قاعدة التطبيق ويغير كلمة مرور مدير النظام ثم يدخل باسمه، حتى لو لم يستخدم أحد ميزة الترحيل أبداً. والإصلاحات لا تنقل إلى الإصدارات القديمة، والدرس هنا أن ملفات التثبيت والترحيل التي تبقى على السيرفر بعد التثبيت جزء من سطح الهجوم، فاحذفها أو امنع الوصول إليها، ولا تترك صفحات الإدارة مفتوحة للإنترنت.

وأما العربية فيوجد ملف ترجمة عربي فيه 948 نصاً من أصل 990 في الملف الإنجليزي، ولكن ملف اللغة العربية لا يغير اتجاه الصفحة، فالخاصية TextDirection تبقى ltr الموروثة من الإنجليزية، بينما يضبطها ملف العبرية على rtl، وقد رأينا ذلك في تجربتنا.

جدول حجز القاعات في LibreBooking من تثبيتنا، القوائم بالعربية، وأسماء الأيام والتواريخ والساعات بالإنجليزية، والجدول من اليسار إلى اليمين
جدول الحجز في LibreBooking 7.0.0 بالبيانات التجريبية: القوائم بالعربية، والجدول والتواريخ بالإنجليزية ومن اليسار إلى اليمين
  • نقاط القوة: النموذج المناسب للقاعات والأجهزة، والموافقات والحصص ومنع التداخل، وكله GPL، والمشروع نشط ويصلح الثغرات بسرعة.
  • نقاط الضعف: واجهة تقليدية، والعربية دون RTL، وليس فيه مزامنة CalDAV ثنائية الاتجاه، وتاريخ أمني يفرض عليك متابعة التحديثات.

المقارنة في جدول

هذه المقارنة كما قرأناها في المستودعات وكما رأيناها في تجربتنا في أكتوبر 2026، والذاكرة هي ما قسناه بالأمر docker stats لكل أداة مع قاعدة بياناتها بعد التجربة ودون حمل، على الجهاز نفسه، فهي أرقام للمقارنة وليست حداً أدنى:

Easy!AppointmentsCal.com / Cal.diyRalllyLibreBooking
الحالةحجز خدمة مع مقدمهارابط اجتماعاستطلاع جماعيقاعات وأجهزة
الترخيصGPL-3.0 كاملاًCal.diy: MIT، وCal.com مغلق منذ أبريل 2026AGPL-3.0، والفرق بمفتاح مدفوعGPL-3.0 كاملاً
آخر إصدار1.6.0 (مايو 2026)v6.2.0 (مارس 2026)v4.15.4 (أكتوبر 2026)v7.0.0 (أكتوبر 2026)
التقنيةPHP وMySQLNext.js وPostgreSQLNext.js وPostgreSQLPHP وMariaDB
Docker Image رسمينعملـ Cal.com v6.2.0 فقط، وCal.diy تبنيه بنفسكنعمنعم
الذاكرة دون حملنحو 600 MB (التطبيق 69 MB وMySQL 532 MB)نحو 1.75 GB (التطبيق 1.7 GB بعد التجربة)نحو 660 MBنحو 230 MB
واجهة عربيةمكتملة، دون RTLشبه مكتملة، وRTL صحيحلا توجدشبه مكتملة، دون RTL
مزامنة التقويمGoogle وCalDAV لكل مقدم خدمةGoogle وMicrosoft 365 وCalDAV وAppleلا يوجدملف ics للاشتراك
API وWebhooksREST API وWebhooksAPI v2 (خدمة منفصلة) وWebhooksلا توجد API عامة موثقةREST API بعد تفعيلها في الإعدادات

أي أداة تختار؟

ابدأ من السؤالين في الصورة الأولى، ثم استخدم القائمة التالية:

  • عندك خدمات ومقدمو خدمة، والعميل يحجز من الخارج: اختر Easy!Appointments، لأن نموذج الخدمة ومقدمها والسكرتارية موجود فيه من البداية، وكله مفتوح.
  • تريد رابط Calendly لك أو لفريق صغير: اختر Cal.com إذا قبلت أن تبقى على v6.2.0 أو تبني Cal.diy بنفسك وتتحمل تحديثه، أو استخدم صفحات الحجز Appointment Schedules في تقويمك الحالي إذا كان موجوداً، والسبب أن أداة بلا تحديثات على الإنترنت مسؤولية أمنية.
  • تريد أن يتفق مجموعة على موعد: اختر Rallly، وإذا كانوا أكثر من مستخدم واحد ينشئ الاستطلاعات فاحسب سعر الترخيص.
  • تريد حجز قاعات أو أجهزة داخل الجهة: اختر LibreBooking من الإصدار 7.0.0 أو أحدث، وضعه خلف الدخول الموحد أو VPN.
  • العربية الكاملة باتجاه RTL شرط أساسي: Cal.com هو الوحيد بين الأربعة الذي يقلب الاتجاه فعلاً في تجربتنا، أما Easy!Appointments وLibreBooking فترجمتهما موجودة دون RTL، فإذا اخترت أحدهما فاختبر الصفحة مع عملائك قبل اعتمادها، أو ساهم في المشروع بإصلاح الاتجاه.

ولا تقم بتشغيل أداة واحدة لكل الحالات، والسبب أن كل أداة من هذه تفرض نموذجها على المستخدمين، فإذا حجزت قاعة في Cal.com كأنها «شخص» فلن تجد موافقات ولا حصصاً، وإذا وضعت العيادة في Rallly فسوف يصوت المرضى بدل أن يحجزوا.

أخطاء شائعة عند الاختيار

  • ترك لوحة الإدارة مفتوحة للإنترنت: صفحة الحجز وحدها هي التي تحتاج أن تكون عامة، أما لوحة الإدارة فضعها خلف authentik وForward Auth أو خلف VPN، وتذكر ما حدث في LibreBooking أعلاه.
  • إهمال المنطقة الزمنية: كل هذه الأدوات تحفظ المواعيد بمنطقة زمنية، فإذا اختلفت منطقة السيرفر عن منطقة الأداة أو عن منطقة العميل ظهرت المواعيد بفارق ساعات، وقد شرحنا القاعدة العامة في مقال التاريخ والوقت، ورأينا أثرها الفعلي في دليل Easy!Appointments.
  • البريد بلا إعداد صحيح: التأكيد والتذكير هما نصف قيمة أداة الحجز، فإذا وصلت رسائلها إلى البريد المزعج فسوف يفوت العملاء مواعيدهم، وقد شرحنا ذلك في مقال Transactional Email.
  • الاعتماد على الترجمة دون اختبار: وجود ملف ترجمة عربي لا يعني واجهة RTL، فافتح صفحة الحجز بالعربية على جوال قبل أن تعتمدها لعملائك.

الخلاصة

وصلنا لنهاية الموضوع، وأهم ما فيه:

  • «حجز المواعيد» أربع مشكلات: خدمة مع مقدمها، ورابط اجتماع، واستطلاع جماعي، وحجز موارد، ويحدد الأداة من يختار الوقت وما الذي يحجز.
  • Easy!Appointments للعيادات ومراكز الخدمة، وكله GPL-3.0، وترجمته العربية مكتملة دون RTL.
  • Cal.com أصبح مغلق المصدر منذ 15 أبريل 2026، والنسخة المفتوحة Cal.diy بترخيص MIT دون ميزات المؤسسات ودون Docker Image، وآخر Image رسمية هي v6.2.0.
  • Rallly لاستطلاع المواعيد، ومجاني لمستخدم واحد، والفرق تحتاج ترخيصاً، ولا توجد فيه العربية.
  • LibreBooking للقاعات والأجهزة، ولا تشغل إصداراً أقدم من 7.0.0 بسبب ثغرة الاستيلاء على حساب المدير.
دليلEasy!Appointments: حجز مواعيد العيادات ومراكز الخدمةكيف تشغل Easy!Appointments على سيرفرك لحجز الخدمات مع مقدميها، وما الذي يحتاج انتباهك في العربية والمنطقة الزمنية.دليلCal.com على سيرفرك: بديل Calendly لحجز الاجتماعاتما الذي تستطيع استضافته من Cal.com بعد تحوله إلى الكود المغلق، وكيف تشغله وتربطه بتقويمك ونظامك.دليلالتقويم وجهات الاتصال على سيرفرك مع CalDAV وCardDAVكيف تبقى مواعيدك وجهات اتصالك متطابقة بين الهاتف والحاسوب على سيرفرك، وما الذي يعمل مع Outlook وما الذي لا يعمل.دليلRadicale: سيرفر تقويم وجهات اتصال خفيف لفريقككيف تشغل Radicale خلف Reverse Proxy بكلمات مرور bcrypt وتقويم مشترك للفريق، وتحفظ كل تغيير في git لتسترجعه عند الخطأ.

سجل التحديثات

  • أكتوبر 2026: كتابة المقال، وتشغيل Easy!Appointments 1.6.0 وCal.com v6.2.0 وRallly v4.15.4 وLibreBooking 7.0.0 على الجهاز نفسه، وقراءة ملفات الترخيص والترجمة من المستودعات.
نشرة عرب رووت | ArabRoot

معرفة تستحق مكاناً في بريدك.

مقالات مختارة وأدوات مفيدة وأفكار لمشروعك القادم، في رسالة واحدة كل أسبوع.

يمكنك إلغاء الاشتراك متى شئت. الخصوصية

تم استلام طلبك. افتح بريدك واضغط رابط التأكيد لإتمام الاشتراك.