سجل الإصدارات

ملاحظات إصدار ArabDev

كل تغيير في ArabDev، إصدارًا بعد إصدار: الميزات الجديدة والتحسينات والإصلاحات وأعمال الأمان والتغييرات الخاصة بالمطوّرين. استخدم عوامل التصفية لعرض نوع واحد من التغييرات، أو اكتب للبحث.

1.0.0

أحدث إصدار: ArabDev 1.0.0، الإصدار العام الأول

صدر في .

  • إجمالي التغييرات
  • جديد
  • تحسين
  • إصلاح
  • أمان
  • للمطوّرين

ArabDev 1.0.0

الأحدث

الإصدار العام الأول من ArabDev: مجتمع للمطوّرين الناطقين بالعربية لكتابة المنشورات التقنية ومتابعة بعضهم واكتشاف مواضيع جديدة، بالعربية والإنجليزية بالكامل. البنود الموسومة بـجديد تصف ما يأتي به هذا الإصدار، أما بنود تحسين وإصلاح فتصف التغييرات التي أُجريت أثناء اختبار الإصدار قبل إطلاقه.

  • محرر حقيقي للكتابة التقنيةعناوين وكتل شيفرة وجداول وروابط وثلاثة خطوط وستة أحجام وخمسة ألوان تتكيّف مع المظهر، مع معاينة حية ومسوّدات.
  • العربية أولًا، والإنجليزية أيضًاتنقلب الواجهة بالكامل بين اليمين إلى اليسار واليسار إلى اليمين، وكل فقرة تجد اتجاهها بنفسها.
  • خلاصة لها نهايةثلاثة تبويبات و20 منشورًا في الصفحة وصفحات مرقّمة بدل التمرير اللانهائي.
  • إعلانات صادقة ومتوقَّعةموسومة بوضوح، بعد كل 8 منشورات، ولا تُختار أبدًا بناءً على معلوماتك الشخصية.
  • آمن من التصميمكلمات مرور Argon2id، وجلسات دوّارة تكتشف السرقة، ومحتوى منظَّف، وصور مرفوعة منقّاة.
  • لا نبيع بياناتك أبدًالا أدوات تتبّع، ولا تحليلات خارجية، وسياسة خصوصية بلغة واضحة.

الحسابات وتسجيل الدخول

  • جديدصفحة ترحيبية مقسومة: قصة ArabDev في جانب، وتسجيل الدخول أو إنشاء الحساب في الجانب الآخر. وعلى الهواتف يأتي الجزءان فوق بعضهما.
  • جديدأنشئ حسابًا باسم مستخدم وبريد إلكتروني وكلمة مرور (تُكتب مرتين). إنشاء الحساب يسجّل دخولك مباشرة.
  • جديداسم المستخدم من 3 إلى 20 حرفًا، بأحرف إنجليزية وأرقام وشرطات سفلية، ويبدأ بحرف، ولا يميّز بين الأحرف الكبيرة والصغيرة.
  • جديدلا يمكن تسجيل الأسماء المحجوزة مثل admin وapi وsettings وexplore وsupport.
  • جديدفحص فوري لتوفّر اسم المستخدم أثناء الكتابة، مع علامة صح خضراء أو رسالة واضحة مثل «اسم المستخدم هذا مستخدم بالفعل».
  • جديديتحقق حقل البريد من عدم استخدام العنوان في حساب آخر بمجرد مغادرتك له.
  • جديدقواعد كلمة المرور: من 8 إلى 128 حرفًا، وحرف واحد ورقم واحد على الأقل، ودون تكرار مفرط.
  • جديدشريط لقوة كلمة المرور يقيّمها أثناء الكتابة: ضعيفة أو مقبولة أو جيدة أو قوية.
  • جديدزرّا إظهار وإخفاء في كل حقل لكلمة المرور.
  • جديدتظهر رسائل الخطأ تحت الحقل الذي تخصّه وبلغتك، بدل تنبيه عام.
  • جديدلغة الواجهة التي تستخدمها أثناء التسجيل تصبح لغتك المحفوظة.
  • جديدتسجيل الدخول بالبريد وكلمة المرور، مع خيار إبقائي مسجلًا للدخول الذي يدوم حتى 30 يومًا.
  • جديدمن دون إبقائي مسجلًا للدخول تنتهي الجلسة عند إغلاق المتصفح، وبعد 12 ساعة على الأكثر.
  • جديداستعادة كلمة المرور المنسية: اطلب رابطًا، وافتحه خلال 30 دقيقة، واختر كلمة مرور جديدة.
  • جديدتسجيل الخروج من قائمة الحساب، وهو ينهي الجلسة على ذلك المتصفح.
  • جديدالصفحات التي تحتاج حسابًا ترسل الزوار لتسجيل الدخول ثم تعيدهم إلى حيث كانوا.
  • جديدمن يفتح صفحة الدخول أو التسجيل وهو مسجّل الدخول يُنقل إلى صفحته الرئيسية.
  • جديدتُستعاد جلستك بهدوء عند إعادة فتح ArabDev، دون ظهور صفحة الدخول للحظة.
  • أمانيقول تسجيل الدخول فقط «البريد الإلكتروني أو كلمة المرور غير صحيحة»، ويستغرق الوقت نفسه سواء كان البريد مسجّلًا أم لا.
  • أماننموذج نسيان كلمة المرور يعطي الإجابة نفسها لكل عنوان، فلا يكشف من لديه حساب.
  • أمانإعادة تعيين كلمة المرور تنهي كل الجلسات القائمة للحساب.
  • تحسينلم يعد الزوار يرسلون طلب جلسة غير ضروري في كل زيارة: لا يحاول ArabDev استعادة الجلسة إلا في المتصفحات التي سجّلت الدخول من قبل.

إعداد الزيارة الأولى

  • جديدنافذة إعداد من أربع خطوات تُفتح في أول زيارة بعد إنشاء الحساب.
  • جديدشريط تقدّم وعدّاد مثل «الخطوة 2 من 4» يوضّحان موضعك.
  • جديدالخطوة 1: ارفع صورة شخصية مع معاينة دائرية فورية أثناء الرفع، ويمكنك استبدالها أو إزالتها.
  • جديدالخطوة 2: عدّل اسم المستخدم (مع فحص التوفّر نفسه)، وحدّد الاسم الظاهر، واكتب نبذة قصيرة مع عدّاد للأحرف.
  • جديدالخطوة 3: اختر اهتماماتك من 25 موضوعًا. تظهر المواضيع المختارة بعلامة صح إضافة إلى الخلفية الملوّنة.
  • جديدالخطوة 4: حتى ثمانية مطوّرين مقترحين بناءً على الاهتمامات التي اخترتها للتو، ولكل منهم زر متابعة.
  • جديديمكن تخطّي كل خطوة وإغلاق النافذة في أي وقت، وإكمال ما تخطّيته لاحقًا من الإعدادات.
  • جديديُحفظ إنهاء الإعداد أو إغلاقه في حسابك، فلا يظهر مجددًا على أي جهاز.
  • جديدتنتهي الخطوة الأخيرة بزر «الانتقال إلى الرئيسية» الذي يفتح خلاصة شكّلتها اختياراتك.
  • جديدعلى الهواتف يُفتح الإعداد بملء الشاشة لتتسع كل خطوة براحة.

التنقل والصفحات

  • جديدعمود تنقل بعناوين على الشاشات العريضة: الرئيسية، واستكشاف، والإشعارات، والمحفوظات، والملف الشخصي، والإعدادات، وزر منشور جديد.
  • جديدشريط أيقونات ضيق مع تلميحات على الأجهزة اللوحية.
  • جديدشريط تنقل سفلي على الهواتف يضم الرئيسية واستكشاف وإنشاء والإشعارات والملف الشخصي.
  • جديدعمود جانبي على الشاشات العريضة فيه مطوّرون مقترحون وإعلان واحد والوسوم الشائعة.
  • جديدقائمة حساب فيها تعديل الملف والمسودات والمحفوظات والإعدادات ومفاتيح المظهر واللغة وروابط التوثيق وتسجيل الخروج.
  • جديدصفحة المحفوظات تعرض كل ما حفظته، الأحدث حفظًا أولًا.
  • جديدصفحة المسودات بترقيم صفحات ومقتطفات ووسوم.
  • جديدشاشة ودودة لـ«الصفحة غير موجودة» مع طريق للعودة إلى الرئيسية.
  • جديدصفحتك الرئيسية هي لوحة التحكم على arabdev.site/dashboard، والعنوان arabdev.site يأخذك إليها مباشرة (أو إلى تسجيل الدخول).
  • جديدرابط «الدعم» في قائمة الحساب وفي كل تذييل، يفتح رسالة بريد إلى support@arabdev.site.
  • جديدلكل قسم من الإعدادات عنوانه الخاص، مثل /settings/privacy.
  • جديدكل صفحة تُحمَّل فقط عند فتحها أول مرة، فتبقى الزيارة الأولى خفيفة.
  • جديدعناوين تبويب المتصفح تصف الصفحة، مثل عنوان المنشور أو اسم الشخص.
  • جديدعناصر تحميل مؤقتة بشكل المحتوى الذي تنوب عنه.

الملفات الشخصية

  • جديدملفات شخصية عامة على /u/username يمكن قراءتها دون حساب.
  • جديديعرض الملف الصورة والاسم الظاهر و@اسم المستخدم والنبذة والموقع والموقع الإلكتروني وشهر الانضمام.
  • جديدأعداد المتابَعين والمتابِعين والمنشورات، ويفتح أول عددين القائمتين الكاملتين.
  • جديدشارة «يتابعك» عندما يتابعك الشخص.
  • جديدتظهر الاهتمامات كرقائق تفتح صفحة الوسم المطابق.
  • جديدتبويبات الملف: المنشورات (مع إعادات النشر)، والردود (التعليقات مع رابط منشورها)، والمحفوظات في ملفك أنت.
  • جديدكل تبويب في الملف مقسّم إلى صفحات من 20 عنصرًا.
  • جديدصفحتا المتابِعين والمتابَعين تعرضان كل شخص في بطاقة فيها النبذة والاهتمامات وزر المتابعة.
  • جديدمحرر للملف الشخصي: الاسم الظاهر (حتى 50 حرفًا)، واسم المستخدم، والنبذة (حتى 280)، والموقع (حتى 60)، والموقع الإلكتروني (حتى 200)، والاهتمامات.
  • جديديبقى زر الحفظ معطّلًا حتى يتغيّر شيء، وتظهر المشكلات تحت الحقل المعني.
  • جديدتُضاف https:// تلقائيًا إلى عناوين المواقع التي تخلو منها، ويُعرض العنوان باسم نطاق قصير.
  • جديدالصور الشخصية: JPEG أو PNG أو WebP أو GIF حتى 5 ميغابايت، تُقصّ مربعًا في الوسط ويُعاد تحجيمها إلى 400×400.
  • جديدمن لا صورة له تظهر الأحرف الأولى من اسمه على دائرة ملوّنة.
  • جديداستبدال الصورة الشخصية أو إزالتها يحذف الملف القديم.
  • جديدصفحة ودودة للملفات غير الموجودة بدل رسالة خطأ.
  • جديدمن يخفي قوائمه تظهر في قوائمه عبارة «هذا الحساب يُبقي قائمة متابعاته خاصة».
  • تحسينتبقى تبويبات الملف الشخصي مثبّتة أسفل الشريط العلوي أثناء التمرير.
  • إصلاحلم يعد يظهر خط سفلي شارد تحت الصورة الشخصية عند النقر عليها.

الصفحة الرئيسية

  • جديدخلاصة رئيسية بثلاثة تبويبات: لك، والمتابَعون، والأحدث.
  • جديدتبويب «لك» يجمع المنشورات حسب اليوم، ثم يعرض من تتابعهم أولًا، ثم المنشورات المطابقة لاهتماماتك، ثم البقية، والأحدث أولًا داخل كل مجموعة. لا يُخفى شيء، بل يُعاد ترتيبه فقط.
  • جديدتبويب «المتابَعون» يعرض منشوراتك ومنشورات من تتابعهم والمنشورات التي أعادوا نشرها.
  • جديدإذا أعاد عدة أشخاص تتابعهم نشر المنشور نفسه، يظهر مرة واحدة مع اسم من أعاد نشره.
  • جديدتبويب «الأحدث» يعرض كل المنشورات من الأحدث إلى الأقدم بدقة.
  • جديدترقيم صفحات على الخادم: 20 منشورًا في الصفحة مع أزرار السابق والتالي وروابط مرقّمة. لا تمرير لانهائي.
  • جديدعلى الهواتف تُستبدل روابط الصفحات بعبارة مختصرة مثل «الصفحة 2 من 5».
  • جديديُحفظ التبويب ورقم الصفحة في العنوان (/dashboard?tab=following&page=2)، فتبقى في مكانك عند إعادة التحميل أو المشاركة.
  • جديدالانتقال إلى صفحة أخرى يعيدك إلى أعلى الخلاصة.
  • جديدمربع «على ماذا تعمل الآن؟» في أعلى الخلاصة يفتح المحرر.
  • جديدعناصر تحميل بشكل المنشورات بدل مؤشرات الدوران.
  • جديدحالات فراغ مفيدة: «لا توجد منشورات بعد» مع زر لكتابة منشور، وتبويب متابَعين فارغ يرشدك إلى صفحة الاستكشاف.
  • جديدزر لإعادة المحاولة إذا تعذّر تحميل الخلاصة.
  • تحسينتبقى الصفحة الحالية ظاهرة وباهتة قليلًا أثناء تحميل الصفحة التالية، فلا تومض الشاشة فارغة أبدًا.

محرر المنشورات

  • جديدمحرر منشورات غني مع عنوان اختياري حتى 200 حرف.
  • جديدفقرات وعناوين وعناوين فرعية.
  • جديدغامق ومائل وتسطير ويتوسطه خط وشيفرة ضمن السطر.
  • جديدقوائم نقطية ومرقّمة، بما في ذلك القوائم المتداخلة.
  • جديداقتباسات تظهر بشريط أحمر في بداية السطر.
  • جديدكتل شيفرة بخلفية داكنة، دائمًا من اليسار إلى اليمين حتى داخل المنشورات العربية.
  • جديدجداول بصف عناوين: أدرج جدولًا، وأضف صفوفًا وأعمدة أو احذفها، واحذف الجدول.
  • جديدروابط عبر نافذة لإضافة رابط على النص المحدد أو تغييره أو إزالته.
  • جديدمحاذاة النص: البداية والوسط والنهاية والضبط، وفق اتجاه كل فقرة.
  • جديدثلاثة خطوط: تجوال (Tajawal) وألكسندريا (Alexandria) وأنتون (Anton)، ويظهر كل منها بخطّه في القائمة.
  • جديدستة أحجام للنص: 14 و16 و18 و20 و24 و30.
  • جديدخمسة ألوان للنص (أحمر، وأحمر داكن، وحبري، ورمادي فحمي، وخافت)، لكل منها درجة للوضع الفاتح وأخرى للداكن، فيبقى النص الملوّن مقروءًا في الوضعين.
  • جديدزرّا تراجع وإعادة.
  • جديدتُبرز أزرار شريط الأدوات عندما يكون تنسيقها نشطًا عند المؤشر.
  • جديديبقى شريط الأدوات مثبّتًا أسفل الشريط العلوي أثناء كتابة المنشورات الطويلة، ويتمرر أفقيًا على الشاشات الضيقة.
  • جديداختصارات لوحة المفاتيح، مثل Ctrl + B للغامق وCtrl + E للشيفرة ضمن السطر وCtrl + Alt + C لكتلة شيفرة.
  • جديداختصارات بأسلوب Markdown أثناء الكتابة: ## لعنوان، و- لقائمة، و``` لكتلة شيفرة، و**bold** للغامق.
  • جديدمفتاح Tab في الجدول ينتقل إلى الخلية التالية، ويضيف صفًا من الخلية الأخيرة.
  • جديدكل فقرة وعنوان وعنصر قائمة وخلية جدول تختار اتجاهها من أول حروفها، فتمتزج العربية والإنجليزية بشكل طبيعي في منشور واحد.
  • جديدأرفق صورة واحدة لكل منشور (JPEG أو PNG أو WebP أو GIF حتى 5 ميغابايت) مع شريط تقدّم للرفع وزر إزالة.
  • جديدتُصغَّر الصور الكبيرة لتتسع ضمن 1600×1600 وتُحفظ بصيغة WebP.
  • جديدإزالة صورة رفعتها للتو قبل الحفظ تحذفها من الخادم.
  • جديدأرفق رابطًا واحدًا يدور حوله المنشور؛ يظهر أسفل المنشور كبطاقة فيها اسم الموقع وعنوانه.
  • جديدحتى 5 وسوم لكل منشور، تُدخل بمفتاح Enter أو تُختار من الاقتراحات أو تُلصق مفصولة بفواصل.
  • جديدمعاينة حية تعرض المنشور تمامًا كما سيراه القرّاء: بجانب المحرر على الشاشات العريضة، وخلف تبويب «معاينة» على الأصغر.
  • جديدالمسوّدات: احفظ كل شيء دون نشر، بما فيه العنوان والنص والوسوم والصورة والرابط.
  • جديدبعد الحفظ الأول تحصل المسوّدة على عنوانها الخاص (/drafts/12)، فتصبح إعادة التحميل آمنة.
  • جديدصفحة المسودات تعرض مسوّداتك، الأحدث تعديلًا أولًا، مع مقتطفات ووسوم وزر حذف.
  • جديدنشر المسوّدة يحوّلها إلى منشور ويحذف المسوّدة.
  • جديدسؤال «تجاهل التغييرات؟» عند مغادرة المحرر وفيه عمل غير محفوظ، إضافة إلى تحذير المتصفح نفسه عند إغلاق التبويب.
  • جديدعدّل منشوراتك بالمحرر نفسه؛ وتظهر على المنشورات المعدّلة علامة «معدّل».
  • جديدرسائل واضحة للمنشور الفارغ أو الرابط غير الصالح، تظهر حيث تقع المشكلة.
  • تحسينقائمة حجم الخط عريضة بما يكفي لعرض قيمها كاملة.
  • إصلاحلم تعد نافذة مغادرة المحرر تكرّر سؤالها مرتين.
  • أمانالمحتوى الملصوق يحتفظ فقط بالخطوط والأحجام والألوان التي يوفّرها المحرر، ويُزال كل ما عداها على الخادم عند النشر.

اختصارات المحرر وMarkdown

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

  • جديدCtrl + B للغامق، وCtrl + I للمائل، وCtrl + U للتسطير.
  • جديدCtrl + Shift + S لنص يتوسطه خط.
  • جديدCtrl + E للشيفرة ضمن السطر.
  • جديدCtrl + Alt + 2 لعنوان، وCtrl + Alt + 3 لعنوان فرعي.
  • جديدCtrl + Shift + 8 لقائمة نقطية، وCtrl + Shift + 7 لقائمة مرقّمة.
  • جديدCtrl + Shift + B لاقتباس.
  • جديدCtrl + Alt + C لكتلة شيفرة.
  • جديدCtrl + Z للتراجع، وCtrl + Shift + Z أو Ctrl + Y للإعادة.
  • جديدShift + Enter لسطر جديد داخل الفقرة نفسها.
  • جديدTab وShift + Tab لزيادة إزاحة عنصر القائمة وإنقاصها.
  • جديدعلى أجهزة Mac يعمل حيثما تذكر الاختصارات Ctrl.
  • جديداكتب ## ثم مسافة لعنوان، أو ### ثم مسافة لعنوان فرعي.
  • جديداكتب - أو * أو + ثم مسافة لقائمة نقطية.
  • جديداكتب 1. ثم مسافة لقائمة مرقّمة تبدأ من ذلك الرقم.
  • جديداكتب > ثم مسافة لاقتباس.
  • جديداكتب ``` ثم مسافة لكتلة شيفرة، ويمكنك إضافة اسم لغة مثل ```python.
  • جديداكتب --- لخط فاصل أفقي.
  • جديدأحِط النص بـ** للغامق، وبـ* أو _ للمائل، وبـ~~ لخط في الوسط، وبعلامتي backtick للشيفرة ضمن السطر.
  • جديدكتابة عنوان ويب أو لصقه متبوعًا بمسافة يحوّله إلى رابط.
  • جديدلصق عنوان أثناء تحديد نص يحوّل النص المحدد إلى رابط.
  • جديدنافذة الجدول تتيح اختيار 1 إلى 20 صفًا و1 إلى 8 أعمدة، وهل يكون الصف الأول صف عناوين.
  • جديدداخل الجدول يقدّم زر الجدول: إضافة صف أسفل، وإضافة عمود بعد، وحذف صف، وحذف عمود، وحذف الجدول.
  • جديدالجداول العريضة تتمرر أفقيًا على الشاشات الصغيرة بدل ضغط محتواها.
  • جديدتُضاف https:// تلقائيًا إلى عناوين الروابط المكتوبة دونها.
  • جديداختيار المحاذاة النشطة مرة أخرى يلغيها ويعيد الفقرة إلى محاذاتها الطبيعية.

قراءة المنشورات

  • جديدبطاقات المنشورات تعرض الكاتب والوقت النسبي (مع التاريخ الدقيق عند التمرير فوقه) والعنوان والمحتوى والصورة وبطاقة الرابط والوسوم.
  • جديدتُقصّ المنشورات الطويلة في الخلاصة بتلاشٍ لطيف ورابط «اقرأ المزيد».
  • جديدالنقر في أي مكان على البطاقة يفتح المنشور، إلا على الروابط والأزرار والنص الذي تحدّده.
  • جديدصفحة كاملة للمنشور بمحتواه الكامل وزر متابعة الكاتب والنقاش.
  • جديدوقت قراءة تقديري في أعلى كل صفحة منشور.
  • جديدالمنشورات التي بلا عنوان تُعنون باسم كاتبها.
  • جديدقائمة ⋯ في المنشورات فيها «نسخ الرابط» للجميع، و«تعديل المنشور» و«حذف المنشور» للكاتب.
  • جديدحذف المنشور يطلب تأكيدًا ويوضّح أن تعليقاته وإعجاباته وإعادات نشره وحفظه ستُحذف معه.
  • جديدالإشارات (@username) في المنشورات تُشعِر الأشخاص المشار إليهم، حتى 10 أشخاص لكل منشور.
  • جديدالروابط داخل المنشورات تُفتح في تبويب جديد.
  • جديدالاقتباسات والقوائم والجداول تحتفظ باتجاه اللغة المكتوبة بها، حتى داخل واجهة اللغة الأخرى.
  • جديدالصور في المنشورات موصوفة لقارئات الشاشة باستخدام عنوان المنشور.
  • جديدصفحة واضحة للمنشورات المحذوفة أو غير الموجودة.
  • إصلاحأصبح زر المتابعة في صفحة المنشور يوضّح هل تتابع الكاتب بالفعل، بدل أن يعرض «متابعة» دائمًا.
  • إصلاحأصبحت الوسوم المكتوبة بالعربية تظهر بالاتجاه الصحيح.

الإعجاب وإعادة النشر والحفظ والمشاركة

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

التعليقات

  • جديدقسم «النقاش» تحت كل منشور، الأقدم أولًا، 20 تعليقًا في الصفحة.
  • جديدتعليقات نصية من 1 إلى 2000 حرف، مع الحفاظ على الأسطر الجديدة وعدّاد للأحرف.
  • جديدأرسل بزر «تعليق» أو بـCtrl + Enter.
  • جديدالردود: اختر «رد» لتظهر رقاقة «ردًا على @username»، واحذف الرقاقة للإلغاء.
  • جديدبعد النشر ينتقل النقاش إلى الصفحة التي تحتوي تعليقك الجديد.
  • جديدالإشارات في التعليقات تصبح روابط إلى الملفات الشخصية وتُشعِر المشار إليهم.
  • جديدإشعار واحد لكل شخص في كل تعليق، حتى لو كان التعليق ردًا عليه وإشارة إليه معًا.
  • جديديمكن حذف التعليقات من كاتبها أو كاتب المنشور أو أحد المسؤولين، وتُحذف ردودها معها.
  • جديدالتعليقات العربية والإنجليزية تتحاذى كل منها بشكل صحيح بمفردها.
  • إصلاحأصبحت كل إشارة في التعليق رابطًا؛ فقد كانت كل إشارة ثانية في التعليق قد تُفوَّت.
  • إصلاحلم تعد أسماء المستخدمين الإنجليزية داخل الجمل العربية تقفز إلى موضع خاطئ في السطر.

المجتمع والإشراف

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

المتابعة والاقتراحات

  • جديدتابع أو ألغِ المتابعة من الملفات الشخصية وبطاقات الاقتراحات وقوائم الأشخاص وصفحات المنشورات.
  • جديديتحوّل زر «تتابعه» إلى «إلغاء المتابعة» بالأحمر عند التمرير فوقه أو التركيز عليه بلوحة المفاتيح، فيتضح الإجراء قبل تنفيذه.
  • جديداقتراحات «مطورون قد تهتم بهم» تُحسب نقاطها من الاهتمامات المشتركة (3 نقاط لكل منها) ومن تتابعهم ممن يتابعونهم (نقطتان لكل منهم).
  • جديدلا تتضمن الاقتراحات أبدًا حسابك، ولا من تتابعهم، ولا الحسابات المعطّلة، ولا من أوقفوا ظهورهم في البحث والاقتراحات.
  • جديدالزوار غير المسجّلين يرون المطوّرين الأكثر متابَعة.
  • جديدمتابعة شخص تحدّث عدد متابعيه وعدد من تتابعهم في كل مكان دفعة واحدة.
  • جديدإلغاء المتابعة قبل أن يقرأ الشخص الإشعار يسحب الإشعار.

الاستكشاف والرائج والوسوم

  • جديدصفحة استكشاف مفتوحة للجميع، فيها البحث والمنشورات الرائجة والوسوم الشائعة ومطوّرون للمتابعة.
  • جديد«الرائج هذا الأسبوع» يرتّب منشورات آخر 7 أيام حسب الإعجابات مضافًا إليها ضعف التعليقات وضعف إعادات النشر، تفضيلًا للنقاش.
  • جديدإذا لم يُنشر شيء خلال الأسبوع الأخير، يعرض الرائج الترتيب على الإطلاق بدل ألا يعرض شيئًا.
  • جديدوسوم شائعة مرتّبة حسب الاستخدام خلال آخر 30 يومًا، مع إبراز الثلاثة الأولى.
  • جديدصفحات للوسوم على /tags/name فيها منشورات الوسم، الأحدث أولًا، وعدد المنشورات التي تستخدمه.
  • جديدتُرتَّب الوسوم تلقائيًا: أحرف صغيرة، والمسافات تصبح شرطات، وتُزال # في البداية، والوسوم العربية مدعومة.
  • جديدتُدمج التهجئات الشائعة في وسم واحد، مثل jsjavascript وc++cpp وnode.jsnodejs.
  • جديد25 اهتمامًا، من JavaScript وRust إلى الأمن السيبراني وتصميم الواجهات، كل منها مرتبط بوسم ليلتقي الناس بالمنشورات.
  • جديدأسماء الاهتمامات مترجمة إلى العربية حيث يستخدم المطوّرون اسمًا عربيًا، وتبقى كما هي للغات والأطر.
  • جديدعلى الشاشات الأصغر تنتقل الوسوم الشائعة والاقتراحات إلى أعلى صفحة الاستكشاف.
  • تحسينصفحات الوسوم تعرض عدد المنشورات بصيغ الجمع الصحيحة في العربية والإنجليزية.

الإشعارات

  • جديدإشعارات للإعجابات والتعليقات والردود والمتابعين الجدد وإعادات النشر والإشارات.
  • جديدشارة حمراء لغير المقروء على عنصر الإشعارات، تتحدّث كل 30 ثانية.
  • جديدالإشعارات غير المقروءة لها خلفية ملوّنة واسم بخط غامق وعلامة «جديد»، فتبرز دون الاعتماد على اللون.
  • جديدكل إشعار يعرض من قام بالفعل، وما فعله، وعنوان المنشور، ونص التعليق في حالة التعليقات.
  • جديداختيار الإشعار يعلّمه كمقروء ويفتح المنشور أو الملف الشخصي.
  • جديد«تعليم الكل كمقروء».
  • جديدلا إشعارات لأفعالك أنت، ولا تكرار عند إعادة الإعجاب أو المتابعة أو إعادة النشر.
  • جديديمكن إيقاف كل نوع من الإشعارات من الإعدادات.
  • جديداختر من يمكنه إرسال إشعار إشارة إليك: الجميع، أو من تتابعهم، أو لا أحد.
  • جديدقائمة الإشعارات مقسّمة إلى صفحات من 20، وتتحدّث كل دقيقة وهي مفتوحة.

الإعدادات

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

رسائل واضحة

  • جديد«محاولات كثيرة. انتظر قليلًا ثم حاول مجددًا.» عند بلوغ حد الطلبات.
  • جديد«انتهت جلستك. سجّل الدخول مرة أخرى.» عندما تنتهي الجلسة.
  • جديد«اسم المستخدم هذا محجوز.» للأسماء التي يستخدمها الموقع نفسه.
  • جديد«كلمتا المرور غير متطابقتين.» عندما يختلف حقلا كلمة المرور.
  • جديد«اجمع بين الحروف والأرقام لتصبح أصعب في التخمين.» لكلمات المرور الضعيفة.
  • جديد«يجب ألا يتجاوز حجم الصورة 5 ميغابايت.» و«استخدم صورة بصيغة JPEG أو PNG أو WebP أو GIF.» للصور المرفوضة.
  • جديد«هذا الملف ليس صورة صالحة.» للملفات التالفة أو المتنكّرة.
  • جديد«هذه الصورة صغيرة جدًا.» و«أبعاد هذه الصورة كبيرة جدًا.»، مع الحدود الدقيقة في الويكي.
  • جديد«اكتب شيئًا قبل النشر.» عندما يخلو المنشور من نص.
  • جديد«أدخل رابطًا صحيحًا يبدأ بـ http:// أو https://.» للروابط المرفقة غير الصالحة.
  • جديد«لا يمكنك إعادة نشر منشورك.» عند محاولة إعادة نشر منشورك.
  • جديد«تعذر الاتصال بالخادم.» عند انقطاع الاتصال، مع زر لإعادة المحاولة حيث يفيد.
  • جديدكل رسالة موجودة بالعربية والإنجليزية، ومقالة «حل المشكلات» في الويكي تشرح كلًا منها.

الإعلانات

  • جديدإعلانات في الخلاصات بعد كل 8 منشورات، أي إعلانان على الأكثر في صفحة من 20 منشورًا، ولا تظهر أبدًا في مواضع عشوائية.
  • جديدموضع إعلاني واحد في العمود الجانبي على الشاشات العريضة.
  • جديدكل إعلان يحمل علامة «إعلان» داخل إطار، ويذكر من يروّج له، ويستخدم إطارًا متقطعًا وخلفية ملوّنة حتى لا يُخلط بالمنشورات.
  • جديدأيقونة معلومات تشرح سبب ظهور الإعلانات.
  • جديدتُختار الإعلانات بناءً على الموضع واللغة ورقم الصفحة فقط، وتتناوب بين الصفحات بشكل متوقَّع.
  • جديديمكن توجيه الإعلانات للعربية أو الإنجليزية أو كلتيهما، ويمكن أن يكون لها تاريخ بداية ونهاية.
  • جديدتُعدّ مرات الظهور والنقرات كمجاميع، ولا ترتبط أبدًا بالأشخاص.
  • جديدينطلق ArabDev بإعلاناته الخاصة، الموسومة بـ«مُروَّج من ArabDev».
  • جديدلا إعلانات داخل المنشورات أو التعليقات أو الملفات الشخصية أو نتائج البحث أو الإشعارات أو الإعدادات، ولا نوافذ منبثقة.
  • إصلاحعلامة الإعلان في الواجهة الإنجليزية لم تعد تُكتب بأحرف كبيرة كأنها صراخ.
  • إصلاحالقوائم التي لا تعرض إعلانات أبدًا، مثل تبويبات الملف الشخصي، لم تعد تطلبها.

العربية والإنجليزية والاتجاه من اليمين إلى اليسار

  • جديدواجهة عربية كاملة وهي الافتراضية، وواجهة إنجليزية كاملة.
  • جديدتبديل اللغة يقلب التخطيط كله دفعة واحدة: التنقل والقوائم والأدراج والمسافات والمحاذاة.
  • جديدالأيقونات ذات الاتجاه، مثل أسهم الرجوع وأسهم الصفحات والتراجع، تنعكس في العربية.
  • جديدصيغ جمع عربية صحيحة للأعداد: للمفرد والمثنى والجمع القليل والكثير صيغة لكل منها.
  • جديدالتواريخ والأوقات النسبية بلغة الواجهة، مثل «منذ 3 ساعات» و«3 hr. ago».
  • جديدأرقام غربية (0–9) في اللغتين، وهي الأسهل قراءة بجوار الشيفرة.
  • جديدأسماء المستخدمين وعناوين البريد والشيفرة تظهر دائمًا من اليسار إلى اليمين، حتى في الجمل العربية.
  • جديدرسائل الخطأ القادمة من الخادم تصل بلغتك.
  • جديدتُضبط لغة الصفحة واتجاهها قبل ظهورها الأول، فلا وميض عند التحميل.
  • جديدكل نصوص الواجهة في ملفّي ترجمة، فلا شيء مكتوب بلغة واحدة داخل الشيفرة.
  • إصلاحأصبح مفتاح اللغة متاحًا على الهواتف قبل تسجيل الدخول.

التصميم والوضع الداكن

  • جديدهوية ArabDev: «Arab» بالأحمر و«Dev» بالأسود (وبالأبيض في الوضع الداكن)، بخط Anton.
  • جديدخط ألكسندريا للعناوين، وتجوال للنصوص، وأنتون للشعار والإحصاءات، وكلها مستضافة لدى ArabDev نفسه.
  • جديدهوية بصرية حمراء وبيضاء مع وضع داكن مضبوط بعناية.
  • جديدوضع داكن يتبع جهازك افتراضيًا، مع اختيار يدوي في الإعدادات وقائمة الحساب.
  • جديدلا وميض لمظهر خاطئ أثناء تحميل الصفحات.
  • جديدتخطيط بثلاثة أعمدة على الشاشات العريضة، وشريط أيقونات على الأجهزة اللوحية، وشريط تنقل سفلي على الهواتف.
  • جديدزر «إنشاء» أحمر في منتصف شريط التنقل على الهواتف.
  • جديدأيقونة ArabDev لتبويب المتصفح.
  • إصلاحلم يعد رأس الصفحة على الهواتف ينقسم إلى سطرين.

إمكانية الوصول

  • جديدرابط «انتقل إلى المحتوى» عند أول ضغطة على Tab.
  • جديدكل عنصر تحكّم يمكن الوصول إليه واستخدامه بلوحة المفاتيح، مع إطار تركيز أحمر واضح.
  • جديدللأزرار ذات الأيقونات فقط أسماء منطوقة، ومفاتيح التبديل تعلن هل هي مفعّلة.
  • جديداقتراحات البحث تتبع نمط القائمة المنسدلة القياسي لقارئات الشاشة.
  • جديدالنوافذ الحوارية تُبقي التركيز داخلها حتى تُغلق.
  • جديدمناطق التحميل معلَّمة بأنها مشغولة، والرسائل مثل «تم نسخ الرابط» تُعلَن.
  • جديدلا تُعرض الحالة باللون وحده: للإشعارات غير المقروءة علامة «جديد»، وللاهتمامات المختارة علامة صح.
  • جديدتباين يلبّي الإرشادات الشائعة في الوضعين الفاتح والداكن.
  • جديدتتوقف الحركات عندما يطلب جهازك تقليل الحركة.
  • جديدتكبير الصفحات دون فقدان المحتوى، من الهواتف الصغيرة إلى الشاشات العريضة.
  • جديدلكل صفحة عنوان ذو معنى، مثل عنوان المنشور أو اسم الشخص.

الأداء

  • جديديرسل الخادم 20 منشورًا على الأكثر في كل مرة، وتُجلب كل صفحة بعدد ثابت من استعلامات قاعدة البيانات مهما كان عدد منشوراتها.
  • جديدلا يُحمَّل المحرر إلا عند فتحه، فتبقى قراءة ArabDev سريعة.
  • جديدمكتبة الواجهة والمحرر مقسّمان في حزم منفصلة قابلة للتخزين المؤقت.
  • جديدالبيانات التي عُرضت مؤخرًا تُعاد فورًا وتُحدَّث بهدوء في الخلفية.
  • جديدالوسوم الشائعة وقائمة الاهتمامات مخزّنة مؤقتًا على الخادم.
  • جديدالصور المرفوعة تُقدَّم بترويسات تخزين مؤقت طويلة لأن أسماءها لا تتغير أبدًا.
  • جديدالردود الكبيرة من الواجهة البرمجية مضغوطة.
  • جديدالخطوط مستضافة ذاتيًا بصيغة WOFF2 وتُعرض مع font-display: swap، فيصبح النص مقروءًا فورًا.
  • جديداقتراحات البحث تنتظر توقّفك عن الكتابة بدل الاستعلام مع كل ضغطة مفتاح.
  • جديديعمل SQLite بوضع سجل الكتابة المسبقة (WAL) فلا تحجب القراءة والكتابة بعضهما.

الأمان

  • أمانكلمات المرور مجزّأة بخوارزمية Argon2id، وتُرقّى تلقائيًا إذا أصبحت إعدادات التجزئة أقوى.
  • أمانرموز وصول قصيرة العمر (15 دقيقة) تُحفظ في ذاكرة الصفحة فقط، ولا تُحفظ أبدًا في تخزين المتصفح.
  • أمانرموز الدخول طويلة العمر عشوائية، ولا تُخزَّن إلا كتجزئات SHA-256، وتُرسل في ملف تعريف ارتباط HttpOnly مقصور على نقاط تسجيل الدخول.
  • أمانرموز الدخول تُدوَّر مع كل استخدام؛ وإعادة استخدام رمز قديم تنهي سلسلة الجلسات كلها.
  • أمانتغيير كلمة المرور أو إعادة تعيينها يُبطل فورًا كل رموز الوصول القائمة.
  • أمانتجديد الجلسة وتسجيل الخروج يتطلبان ترويسة مخصصة لا تستطيع المواقع الأخرى إرسالها، وهذا يمنع تزوير الطلبات عبر المواقع.
  • أمانروابط إعادة تعيين كلمة المرور تُستخدم مرة واحدة، وتنتهي بعد 30 دقيقة، ولا تُخزَّن إلا كتجزئات.
  • أمانحدود للطلبات على تسجيل الدخول والتسجيل وإعادة تعيين كلمة المرور والنشر والتعليق والتفاعلات والمتابعة والرفع والبحث.
  • أمانتُشارك حدود الطلبات بين عمليات الخادم عبر Redis عند إعداده.
  • أمانتُنظَّف المنشورات على الخادم بقائمة سماح صارمة للوسوم والسمات والخطوط والأحجام والألوان وأنواع الروابط.
  • أمانتُنظَّف المنشورات مرة أخرى في المتصفح قبل عرضها، كخط دفاع ثانٍ.
  • أمانالروابط في المنشورات تسمح فقط بـhttp وhttps وmailto، وتُعلَّم بـnoopener noreferrer nofollow ugc.
  • أمانتُفك الملفات المرفوعة كصور حقيقية ويُعاد ترميزها؛ وأي شيء آخر يُرفض.
  • أمانحجم الرفع محدود بـ 5 ميغابايت، وتُرفض الأبعاد المتطرفة للصور.
  • أمانترويسات أمان تمنع المواقع الأخرى من تضمين ArabDev في إطار، وتمنع المتصفحات من تخمين أنواع الملفات.
  • أمانكل صلاحية تُفحص على الخادم: الكتّاب وحدهم يعدّلون منشوراتهم، والأشخاص المخوّلون وحدهم يحذفون التعليقات.
  • أمانتغيير البريد الإلكتروني أو حذف الحساب يتطلب كلمة مرورك الحالية.
  • أمانلا يمكن إرفاق الصور إلا من الحساب الذي رفعها.
  • أمانترفض الواجهة البرمجية العمل في بيئة الإنتاج دون مفتاح سري حقيقي.
  • أمانوصول المتصفحات إلى الواجهة البرمجية مقصور على المصادر المُعدّة.
  • أمانتُحذف جلسات الدخول المنتهية وروابط إعادة التعيين القديمة تلقائيًا: عند تشغيل الواجهة البرمجية، ثم كل ست ساعات على الخادم أو مرة يوميًا على Vercel.
  • إصلاحلم يعد تجديد تبويبين للجلسة في اللحظة نفسها يسجّل خروجك: فترة سماح مدتها 20 ثانية تميّز ذلك عن سرقة حقيقية للرمز.

حدود تُبقي ArabDev عادلًا

الاستخدام العادي لا يقترب أبدًا من هذه الحدود. وُجدت لإيقاف إساءة الاستخدام الآلية.

  • أمانتسجيل الدخول: 10 محاولات في الدقيقة لكل شبكة.
  • أمانإنشاء حساب: 10 في الساعة لكل شبكة.
  • أماننسيان كلمة المرور: 5 طلبات كل 15 دقيقة.
  • أمانإعادة تعيين كلمة المرور وتغييرها: 10 لكل منهما كل 15 دقيقة.
  • أمانفحص توفّر اسم المستخدم والبريد: 60 في الدقيقة.
  • أمانتجديد الجلسة: 60 في الدقيقة.
  • أماننشر المنشورات: 30 في الساعة.
  • أمانالتعليقات: 60 كل 10 دقائق.
  • أمانالإعجابات والحفظ وإعادات النشر: 300 في الساعة.
  • أمانالمتابعات: 120 في الساعة.
  • أمانرفع الصور: 30 كل 10 دقائق.
  • أمانالبحث: 120 في الدقيقة.
  • أمانعدّ نقرات الإعلانات: 60 في الدقيقة، فلا يمكن تضخيم المجاميع.
  • جديدالمنشورات: حتى 5 وسوم بطول 30 حرفًا لكل منها، وعنوان من 200 حرف، ورابط مرفق واحد حتى 500 حرف.
  • جديدالمنشور الواحد يُشعِر 10 أشخاص مشار إليهم على الأكثر.

الخصوصية

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

الواجهة البرمجية والمطوّرون

  • للمطوّرينواجهة REST ذات إصدار تحت /api/v1 تغطي كل ما يفعله التطبيق.
  • للمطوّرينتوثيق تفاعلي على /api/docs و/api/redoc، ووصف OpenAPI على /api/v1/openapi.json.
  • للمطوّرينكل نقطة تُرجع قائمة تستخدم ترقيم الصفحات نفسه: page وlimit مُدخلًا، و{items, page, limit, total, pages} مُخرجًا.
  • للمطوّرينأخطاء متسقة: detail مقروء، وcode ثابت، وfield أو errors لمشكلات التحقق.
  • للمطوّرينتُترجم رسائل الخطأ باستخدام ترويسة Accept-Language.
  • للمطوّرينالطلبات التي تتجاوز الحد تُرجع HTTP 429 مع ترويسة Retry-After.
  • للمطوّريننقاط المصادقة: التسجيل، والدخول، والتجديد، والخروج، والتوفّر، ونسيان كلمة المرور، وإعادة تعيينها.
  • للمطوّريننقاط الحساب للملف الشخصي واسم المستخدم والبريد وكلمة المرور والاهتمامات والإعدادات والترحيب والصورة والمحفوظات والحذف.
  • للمطوّريننقطة الخلاصة مع tab=for_you|following|latest وتصفية اختيارية بـtag، إضافة إلى نقطة الرائج.
  • للمطوّريننقاط للمنشورات والمسوّدات والتعليقات والإعجابات والحفظ وإعادة النشر والمتابعة.
  • للمطوّرينبحث مع type=all|posts|users|tags، والوسوم الشائعة، وتفاصيل الوسم، وقائمة الاهتمامات.
  • للمطوّريننقاط للإشعارات مع عدد غير المقروء، وتعليم إشعار واحد، وتعليم الكل.
  • للمطوّرينرفع الوسائط وحذف الملفات المرفوعة غير المستخدمة.
  • للمطوّرينتقديم الإعلانات وعدّ النقرات، ونقاط للمسؤولين لإنشاء الإعلانات وتحديثها وحذفها.
  • للمطوّريننقطة صحة تُبلغ عن حالة قاعدة البيانات وRedis.
  • للمطوّرينخادم بطبقات: مسارات وخدمات ومستودعات، مع مخططات Pydantic لكل طلب ورد.
  • للمطوّريننموذج بيانات SQLAlchemy 2 مُنمَّط من 19 جدولًا مع ترحيلات Alembic.
  • للمطوّرينطبقة تجريد لتخزين الملفات المرفوعة، مع واجهة قرص محلي جاهزة للاستبدال بتخزين كائنات.
  • للمطوّرينطبقة تجريد للبريد؛ ومن دون مزوّد تُكتب الرسائل في سجل الخادم.
  • للمطوّرينعميل API مُنمَّط في الواجهة مع تجديد تلقائي للجلسة لا يُنفَّذ إلا مرة واحدة في الوقت نفسه.
  • للمطوّرينمفاتيح الاستعلام وتحديثات الذاكرة المؤقتة منظّمة بحيث يحدّث تغيير واحد كل قائمة تعرض المنشور أو الشخص نفسه.

نموذج البيانات

  • للمطوّرينusers وprofiles وuser_settings: الحسابات وتفاصيل الملف العامة والتفضيلات، صف واحد لكل منها لكل شخص.
  • للمطوّرينinterests وuser_interests: المواضيع الـ 25 ومن اختارها.
  • للمطوّرينposts وtags وpost_tags: المنشورات ووسومها، مع توحيد أسماء الوسوم.
  • للمطوّرينdrafts: المنشورات غير المنشورة، الخاصة بكاتبها.
  • للمطوّرينcomments: التعليقات والردود، كل منها مرتبط بمنشوره، والردود مرتبطة بالتعليق الذي تجيب عنه.
  • للمطوّرينlikes وbookmarks وreposts وfollows: صف واحد لكل تفاعل، بمفاتيح مركّبة تجعل التكرار مستحيلًا.
  • للمطوّرينnotifications: من فعل ماذا ولمن، وهل قُرئ.
  • للمطوّرينmedia: الصور المرفوعة مع مالكها ونوعها وحجمها وأبعادها.
  • للمطوّرينads: محتوى الإعلان وموضعه ولغته وجدوله وعدّاداته الإجمالية.
  • للمطوّرينrefresh_tokens وpassword_reset_tokens: تجزئات الرموز فقط، ولا القيم الأصلية أبدًا.
  • للمطوّرينعدّادات المنشور (الإعجابات والتعليقات وإعادات النشر) مخزّنة على المنشور ويُعاد حسابها عند حذف الحسابات أو التعليقات، فلا تحتاج القوائم إلى عدّ مكلف.
  • للمطوّرينحذف حساب أو منشور يزيل كل الصفوف التابعة عبر الحذف المتتالي على مستوى قاعدة البيانات.
  • للمطوّرينكل الأوقات مخزّنة بالتوقيت العالمي المنسّق (UTC) وتُرجع مع المنطقة الزمنية.

بنية الخادم

  • للمطوّرينالمسارات رفيعة: تتحقق من المدخلات وتفحص الصلاحيات وتستدعي خدمة.
  • للمطوّرينالخدمات تحمل قواعد العمل: المصادقة والمستخدمون والمنشورات والتفاعلات والتعليقات والإشعارات والاكتشاف والإعلانات والوسائط.
  • للمطوّرينالمستودعات تحمل استعلامات قاعدة البيانات، بما فيها ترتيب «لك» وخلاصة المتابَعين والرائج.
  • للمطوّرينالمُقدِّمات تبني ردود الواجهة لصفحة كاملة دفعة واحدة، فتحمّل الكتّاب والوسوم وحالة تفاعلك في استعلامات مجمّعة قليلة.
  • للمطوّرينأخطاء التحقق تحمل رموزًا ثابتة تترجمها الواجهة، بدل جمل إنجليزية.
  • للمطوّرينالإعدادات مُنمَّطة وتُحمَّل من البيئة، مع قيم افتراضية آمنة للتطوير.
  • للمطوّرينطبقة تخزين مؤقت تستخدم Redis عند توفّره والذاكرة في غير ذلك.
  • للمطوّرينتُعالج الصور بمكتبة Pillow: فكّ وفحص وتحجيم وإزالة للبيانات الوصفية وحفظ بصيغة WebP.
  • للمطوّرينمنظِّف HTML يسمح فقط بما ينتجه المحرر، بما فيه خطوطه وأحجامه وألوان المظهر والمحاذاة واتجاه النص.
  • للمطوّرينبيانات أولية: 25 اهتمامًا و6 إعلانات خاصة بـ ArabDev، تُدرج دون تكرار.
  • للمطوّرينبيانات تجريبية: عشرة مطوّرين خياليين مع منشورات ومتابعات وإعجابات وتعليقات، لتجربة ArabDev محليًا.
  • للمطوّرينتُحذف الجلسات المنتهية وروابط إعادة التعيين القديمة بمهمة خلفية كل ست ساعات على الخادم، وبمهمة مجدولة على Vercel، وكلتاهما تستخدمان التنظيف نفسه.

بنية الواجهة

  • للمطوّرينمنظّمة حسب الميزات: المصادقة والترحيب والمنشورات والمحرر والتعليقات والاكتشاف والبحث والإشعارات والملف والمستخدمون والإعلانات والتفضيلات.
  • للمطوّرينكل صفحة مسار يُحمَّل عند الحاجة، مع حراسة للصفحات الخاصة بالمسجّلين وتلك الخاصة بغير المسجّلين.
  • للمطوّرينبيانات الخادم تُعدّ حديثة 30 ثانية وتُحفظ 5 دقائق؛ ولا تُعاد محاولة أخطاء العميل، وتُعاد أخطاء الخادم مرتين.
  • للمطوّرينتحديثات متفائلة للإعجاب والحفظ وإعادة النشر والمتابعة والإعدادات، تُلغى عند الفشل.
  • للمطوّرينعميل API واحد يضيف رمز الوصول واللغة إلى كل طلب، ويجدد الجلسة مرة واحدة عندما تفشل عدة طلبات معًا.
  • للمطوّرينمظهر مبني على متغيرات CSS للوضعين الفاتح والداكن، فلا يعيد تبديل المظهر رسم التطبيق.
  • للمطوّرينذاكرة أنماط للاتجاه من اليمين إلى اليسار تعكس أنماط التخطيط تلقائيًا للعربية.
  • للمطوّرينمحتوى المنشورات يستخدم خصائص CSS المنطقية، فيحتفظ المحتوى باتجاهه أيًا كانت لغة الواجهة.
  • للمطوّرينكل النصوص تأتي من ar.json وen.json، مع قواعد الجمع العربية.
  • للمطوّرينمجموعة صغيرة مشتركة من اللبنات: حالات الفراغ والخطأ وهياكل التحميل وترقيم الصفحات ونوافذ التأكيد والتنبيهات.
  • للمطوّرينعناوين الصفحات وسمات اللغة تُدار مركزيًا.

التشغيل والنشر

  • للمطوّرينSQLite قاعدةً للبيانات، مع تفعيل سجل الكتابة المسبقة والمفاتيح الأجنبية ومهلة الانشغال.
  • للمطوّرينالإعداد عبر متغيرات البيئة وملفات .env، مع أمثلة موثّقة.
  • للمطوّرينRedis اختياري: من دونه تعود حدود الطلبات والتخزين المؤقت إلى الذاكرة.
  • للمطوّرينpython -m app.cli seed يضيف الاهتمامات الـ 25 والإعلانات الخاصة، ويمكن تشغيله مرارًا بأمان.
  • للمطوّرينpython -m app.cli seed --demo يضيف عشرة مطوّرين خياليين ومنشوراتهم للتجربة المحلية.
  • للمطوّرينpython -m app.cli make-admin USERNAME يمنح صلاحيات المسؤول.
  • للمطوّرينpython -m app.cli purge-tokens يحذف الجلسات المنتهية وروابط إعادة التعيين القديمة عند الطلب.
  • للمطوّرينإعداد Docker Compose يضم Redis والواجهة البرمجية وحاوية nginx تقدّم التطبيق على المنفذ 8080.
  • للمطوّرينحاوية الواجهة البرمجية تطبّق الترحيلات وتُدرج البيانات الأولية عند بدء تشغيلها.
  • للمطوّرينوحدات تخزين دائمة لملف قاعدة البيانات والوسائط المرفوعة.
  • للمطوّرينتُبنى الواجهة كموقع ثابت، جاهز لـ Vercel أو أي استضافة ثابتة.
  • للمطوّرينخادم التطوير يمرّر /api و/media إلى الواجهة البرمجية.
  • للمطوّرينالويكي وسياسة الخصوصية وملاحظات الإصدار مواقع ثابتة مكتفية بذاتها، بخطوطها وأيقونتها، تُنشر دون خطوة بناء على wiki.arabdev.site وprivacy.arabdev.site وpatch.arabdev.site.
  • للمطوّرينخادم التطوير يقدّم هذه المواقع محليًا على /wiki/ و/privacy/ و/patch-notes/، وتبقى الروابط بينها محلية على جهازك.
  • للمطوّرينبناء التطبيق ينشر الرخصة على arabdev.site/LICENSE.txt.
  • للمطوّرينالمتغير VITE_API_ORIGIN يتيح للتطبيق الوصول إلى واجهة برمجية مستضافة على عنوان آخر، ويمكن تغيير عناوين التوثيق بالطريقة نفسها.
  • للمطوّرينيعمل على Vercel: يبني vercel.json التطبيق ويقدّم الواجهة البرمجية من api/index.py في مشروع واحد، فيتشاركان العنوان نفسه.
  • للمطوّريندعم PostgreSQL للاستضافة (Neon على Vercel)، مع بقاء SQLite الافتراضي للتطوير والاستضافة على خادم واحد. وتعمل الاختبارات على الاثنين.
  • للمطوّرينروابط PostgreSQL المستضافة (postgres:// وpostgresql://) تُوجَّه تلقائيًا إلى مشغّل psycopg 3، ويُتعامل مع مجمّع اتصالات Neon.
  • للمطوّرينعلى Vercel تُرحّل الواجهة البرمجية قاعدة البيانات وتزرع بياناتها بنفسها عند تشغيل أي نسخة، ويمنع قفل في PostgreSQL تعارض النسخ التي تبدأ معًا.
  • للمطوّرينيمكن حفظ الصور المرفوعة في قاعدة البيانات (STORAGE_BACKEND=database) للمستضيفات التي لا قرص لها، وتُقدَّم بترويسات تخزين مؤقت طويلة.
  • للمطوّريننقطة مجدولة للتنظيف اليومي، محمية بـCRON_SECRET ومخفية عندما لا يكون مضبوطًا.
  • تحسينأُزيل دعم MySQL. يستخدم ArabDev قاعدة SQLite للتطوير والاستضافة على خادم واحد، وPostgreSQL عند الاستضافة على Vercel.
  • تحسينتُعاد ترميز الصور بين 4 و5 ميغابايت في المتصفح قبل رفعها لتناسب حدود الاستضافة. والخادم يعيد ترميز كل صورة على أي حال، فلا يتغير شيء مرئي.

التوثيق

  • جديدويكي ArabDev: 25 مقالة بالعربية والإنجليزية تغطي كل ميزة، والأمان، وحل المشكلات، والتطوير.
  • جديدبحث في الويكي يعمل داخل متصفحك، بمطابقة تراعي العربية واختصار /.
  • جديدمربعات محتويات تُولَّد تلقائيًا، وروابط للأقسام، وتنقل بين المقالة السابقة والتالية في كل مقالة.
  • جديدسياسة خصوصية من 28 قسمًا بملخصات بلغة واضحة، وقائمة محتويات تتبع قراءتك، ودعم للطباعة.
  • جديدملاحظات الإصدار هذه، مع تصفية حسب النوع وأعداد حية وبحث.
  • جديدمقالات للقادمين الجدد في الويكي: البدء، وصفحة الأسئلة الشائعة، ومسرد لمصطلحات ArabDev والمطوّرين.
  • جديدأدلة في الويكي لكل ميزة: الملفات الشخصية، والصفحة الرئيسية، وكتابة المنشورات، ومرجع التنسيق، والوسوم والاهتمامات، والتعليقات، والمتابعة، والبحث، والإشعارات، والإعدادات.
  • جديدمقالات في الويكي عن الثقة والأمان: الخصوصية والأمان، وأمان الحساب، والإعلانات، وإرشادات المجتمع.
  • جديدمقالة «حل المشكلات» تشرح كل رسالة شائعة وما يجب فعله حيالها.
  • جديدمقالات للمطوّرين: نظرة على البنية، والتشغيل والاستضافة الذاتية، ومرجع كامل للواجهة البرمجية، والمساهمة والرخصة.
  • جديدصفحات الويكي تعرض مقالة واحدة في كل مرة مع شريط جانبي لكل المقالات، وتبقى تعمل كصفحة طويلة واحدة دون JavaScript.
  • جديدسياسة الخصوصية فيها ملخص «باختصار» لكل قسم، وجداول لملفات تعريف الارتباط ومفاتيح التخزين ومدد الاحتفاظ، وقائمة بقوانين حماية البيانات في تسع دول عربية.
  • جديدسياسة الخصوصية تُبرز القسم الذي تقرؤه وتعرض تقدّم قراءتك.
  • جديدكل مواقع التوثيق تعمل على الهواتف، وتُطبع بشكل نظيف، وتدعم الوضع الداكن، وفيها روابط تخطٍّ لمستخدمي لوحة المفاتيح.
  • جديديفتح التطبيق كل موقع توثيق بلغتك، وتبديل اللغة فيها يحافظ على موضعك.
  • جديدمقالة «التواصل والدعم» في الويكي: support@arabdev.site للمساعدة والأعطال والبلاغات والخصوصية والأمان، وhi@arabdev.site للرعاية والمساهمات والشراكات والأسئلة.
  • جديدروابط إلى الويكي وسياسة الخصوصية وملاحظات الإصدار والرخصة في العمود الجانبي للتطبيق وقائمة الحساب وصفحات الدخول، تُفتح في تبويب جديد.
  • جديدArabDev برنامج حر بموجب رخصة جنو العمومية العامة الإصدار 3، ونصّ الرخصة كاملًا منشور على /LICENSE.txt.
  • جديدملف README يغطي الميزات والبنية والإعداد والتهيئة والنشر والنسخ الاحتياطي.

الاختبارات وجودة الشيفرة

  • للمطوّرين51 اختبارًا آليًا للخادم تغطي المصادقة والجلسات والمنشورات والخلاصات والتعليقات والتفاعلات والإشعارات والرفع والبحث وحذف الحساب والاستضافة بلا خوادم. وتعمل على SQLite وPostgreSQL.
  • للمطوّرينكل اختبار يعمل على قاعدة بيانات جديدة في الذاكرة.
  • للمطوّرينTypeScript صارم في كل الواجهة، يُفحص بـnpm run typecheck.
  • للمطوّرينتنسيق متسق بـ Prettier (npm run format).
  • للمطوّرينمبني على الإصدارات الرئيسية الحالية: React 19 وMaterial UI 9 وReact Router 8 وTanStack Query 5 وTipTap 3 وVite 8 وTypeScript 7.
  • للمطوّرينعلى الخادم: FastAPI وPydantic 2 وSQLAlchemy 2 وAlembic.
  • إصلاحعدة أيقونات أُعيدت تسميتها في Material UI 9 أصبحت تُحمَّل بشكل صحيح.
  • إصلاحأُعيدت كتابة أنماط كانت تعتمد على ميزات أُزيلت من Material UI 9، وهذا أزال أيضًا تحذيرًا في وحدة التحكم.

ما تغيّر أثناء اختبارات ما قبل الإطلاق

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

  • إصلاحتوقفت تبويبات الملف الشخصي عن الالتصاق بأعلى الشاشة بعد تمرير الصفحة.
  • إصلاحكان زر المتابعة في صفحة المنشور يقول «متابعة» دائمًا، حتى لو كنت تتابع الكاتب.
  • إصلاحفي التعليق الذي يحتوي عدة إشارات، لم تكن بعض الإشارات تتحوّل إلى روابط.
  • إصلاحكانت الوسوم العربية تظهر بالاتجاه الخاطئ.
  • إصلاحكانت علامة الإعلان تُعرض بأحرف كبيرة في الواجهة الإنجليزية.
  • إصلاحكان رأس الصفحة على الهواتف ينقسم إلى سطرين في الشاشات الضيقة.
  • إصلاحلم يكن هناك مفتاح للغة على الهواتف قبل تسجيل الدخول.
  • إصلاحكانت الصور الشخصية المستخدمة كروابط تظهر بخط سفلي.
  • إصلاحكانت أسماء المستخدمين الإنجليزية داخل التعليقات العربية قد تظهر في الطرف الخاطئ من الجملة.
  • إصلاحكانت نافذة التغييرات غير المحفوظة تكرّر نصها.
  • إصلاحكانت قائمة حجم الخط في المحرر مقصوصة.
  • إصلاحكان الزوار الذين لم يسجّلوا الدخول قط يرسلون طلب جلسة فاشلًا مع كل تحميل للصفحة.
  • إصلاحكانت قاعدة تنسيق تسبّب تحذيرًا في وحدة تحكم المتصفح.
  • إصلاحكانت تبويبات الملف الشخصي وقوائم أخرى تطلب إعلانات لا تعرضها أبدًا.
  • إصلاحكان فتح ArabDev في تبويبين قد يسجّل خروجك عندما يجدد كلاهما الجلسة في الوقت نفسه.
  • إصلاحكانت بعض الأيقونات مفقودة بعد ترقية مكتبة الواجهة.
  • تحسينأصبح عدد المنشورات في صفحة الوسم يستخدم صيغ الجمع الصحيحة في اللغتين.
  • تحسينأُعيد بناء استعلامات خلاصة المتابَعين وإعادات النشر لتكون أدق وأسرع.
  • تحسينأصبح الخادم يمنع متابعة المرء لنفسه برسالة خطأ واضحة، بدل الاعتماد على قاعدة البيانات.
  • تحسينبُسّطت طبقة قاعدة البيانات لتعمل على SQLite، ثم تعلّمت PostgreSQL أيضًا ليصبح بالإمكان استضافة ArabDev على Vercel بقاعدة بيانات Neon.
  • أمانأصبحت الجلسات المنتهية والمغلقة وروابط إعادة التعيين القديمة تُنظَّف تلقائيًا، كما تصف سياسة الخصوصية.
  • جديدأُضيفت رخصة GNU GPL الإصدار 3 والويكي وسياسة الخصوصية وملاحظات الإصدار هذه قبل الإطلاق.

الإصدار 1.0.0 بالأرقام

  • 2: لغتان كاملتان للواجهة، العربية والإنجليزية، بتخطيطين من اليمين إلى اليسار ومن اليسار إلى اليمين.
  • 3 تبويبات في الخلاصة و20 منشورًا في الصفحة.
  • 5 أنواع من الإشعارات، لكل منها مفتاحه.
  • 25 اهتمامًا مرتبطًا بالوسوم.
  • 3 خطوط و6 أحجام و5 ألوان تتكيّف مع المظهر في المحرر.
  • 19 جدولًا في قاعدة البيانات و49 مسارًا في الواجهة البرمجية.
  • 51 اختبارًا آليًا للخادم.
  • 25 مقالة في الويكي، وسياسة خصوصية من 28 قسمًا، وملاحظات الإصدار هذه، وكلها باللغتين.
  • ملف تعريف ارتباط 1، و0 أدوات تتبّع.

الاهتمامات الـ 25 عند الإطلاق

تُختار أثناء الإعداد أو من الإعدادات، وتُطابَق مع الوسم الظاهر بعد كل اسم.

  • JavaScript javascript
  • TypeScript typescript
  • Python python
  • C++ cpp
  • Rust rust
  • Go go
  • Java java
  • C# csharp
  • React react
  • Vue vue
  • Angular angular
  • Node.js nodejs
  • FastAPI fastapi
  • Django django
  • الذكاء الاصطناعي ai
  • تعلّم الآلة machine-learning
  • الأمن السيبراني cybersecurity
  • Linux linux
  • DevOps devops
  • الحوسبة السحابية cloud
  • قواعد البيانات databases
  • تطوير الألعاب game-development
  • تطوير تطبيقات الجوال mobile-development
  • تصميم الواجهات UI/UX ui-ux
  • المصادر المفتوحة open-source

جرّب الإصدار 1.0.0 محليًا

أسرع طريقة لتشغيل المنظومة كاملة هي Docker Compose من مجلد المشروع:

cp .env.example .env        # set SECRET_KEY
docker compose up --build   # then open http://localhost:8080

وللعمل على الشيفرة، شغّل الواجهة البرمجية والواجهة كلًا على حدة:

cd backend
python -m venv .venv
.venv/Scripts/activate      # macOS/Linux: source .venv/bin/activate
pip install -e ".[dev]"
alembic upgrade head
python -m app.cli seed --demo
uvicorn app.main:app --reload --port 8000

cd ../frontend
npm install
npm run dev                 # http://localhost:5173

مقالة التشغيل والاستضافة الذاتية في الويكي تشرح التهيئة والنشر والنسخ الاحتياطي بالتفصيل.

أين تجد المساعدة

  • ابدأ بمقالتي البدء والأسئلة الشائعة في الويكي.
  • إذا ظهرت رسالة خطأ، فمقالة حل المشكلات تشرح كل رسالة.
  • مشكلات الحساب والأعطال والإبلاغ عن المحتوى وطلبات الخصوصية: راسل support@arabdev.site. وتشرح مقالة التواصل والدعم ما يجب ذكره.
  • وجدت مشكلة أمنية؟ أبلغ عنها بشكل خاص إلى support@arabdev.site بعنوان «أمان»، لا في منشور عام.
  • الرعاية والمساهمات والشراكات والأسئلة الأخرى: راسل hi@arabdev.site.
  • يمكن للمطوّرين استكشاف التوثيق الحي للواجهة البرمجية على /api/docs.

قيود معروفة

أشياء لا يفعلها ArabDev 1.0.0 بعد. ليست وعودًا بموعد، لكنها أول ما ننظر فيه.

  • لا توجد رسائل خاصة بين الأعضاء.
  • لا يوجد مزوّد بريد متصل، لذا تُكتب روابط إعادة تعيين كلمة المرور في سجل الخادم بدل إرسالها بالبريد. يمكن لمن يستضيف ArabDev ذاتيًا ربط مزوّد في email_service.py.
  • لا يوجد بعد زر للإبلاغ عن المنشورات أو التعليقات أو الملفات الشخصية؛ أرسل البلاغات إلى support@arabdev.site.
  • لا يمكن إدارة الإعلانات إلا عبر الواجهة البرمجية؛ لا توجد شاشة إدارة.
  • لكل منشور صورة واحدة.
  • التعليقات نص عادي؛ لا تدعم التنسيق ولا الصور.
  • لا توجد بعد أداة لتنزيل بياناتك بنفسك؛ نسخ بياناتك متاحة عند الطلب.
  • الإشعارات تظهر داخل ArabDev فقط؛ لا إشعارات بالبريد أو إشعارات فورية.
  • مع SQLite تعمل الواجهة البرمجية كعملية واحدة؛ أما الاستضافة على Vercel فتستخدم PostgreSQL.

المتطلبات وملاحظات الترقية

  • المتصفحات: الإصدارات الحالية من Chrome وEdge وFirefox وSafari، على الحاسوب والهاتف.
  • لتشغيل الواجهة البرمجية: Python 3.11 أو أحدث. ولبناء الواجهة: Node.js 20.19 أو أحدث (أو 22.12 وما بعده).
  • هذا هو الإصدار الأول، فلا يوجد ما يُرقّى منه. التثبيتات الجديدة تشغّل alembic upgrade head لإنشاء قاعدة البيانات.
  • اضبط SECRET_KEY، وفي بيئة الإنتاج أيضًا ENVIRONMENT=production وCOOKIE_SECURE=true خلف HTTPS.
  • انسخ arabdev.db ومجلد الوسائط احتياطيًا بانتظام.

شكر وتقدير

يقف ArabDev على أكتاف أعمال رائعة مفتوحة المصدر. شكرًا لكل من يقف خلف:

  • Alexandria خط · رخصة SIL المفتوحة للخطوط
  • Tajawal خط · رخصة SIL المفتوحة للخطوط
  • Anton خط · رخصة SIL المفتوحة للخطوط
  • React واجهة المستخدم
  • Material UI وEmotion المكوّنات والتنسيق
  • stylis-plugin-rtl أنماط الاتجاه من اليمين إلى اليسار
  • React Router التوجيه
  • TanStack Query جلب البيانات وتخزينها مؤقتًا
  • TipTap وProseMirror محرر المنشورات
  • i18next الترجمة
  • DOMPurify التنظيف في المتصفح
  • Axios عميل HTTP
  • Vite وTypeScript أدوات البناء
  • FastAPI وStarlette الواجهة البرمجية
  • Pydantic التحقق
  • SQLAlchemy وAlembic قاعدة البيانات والترحيلات
  • SQLite قاعدة البيانات
  • argon2-cffi تجزئة كلمات المرور
  • PyJWT رموز الوصول
  • nh3 التنظيف على الخادم
  • Pillow معالجة الصور
  • Redis حدود وتخزين مؤقت مشتركان اختياريًا
  • pytest الاختبارات