لماذا Astro؟
أولًا، لاحظ أنك تستطيع استخدام أي إطار عمل للواجهة الخلفية تفضّله.
لكن عليّ أن أقترح واحدًا، وأنا أختار Astro لأنه أداتي المفضّلة على الإطلاق.
إن لم تكن على ألفة به، فدعني أشرح الأساسيات.
أنا أستخدمه منذ سنوات الآن، وقد بنيت به عشرات المواقع.
يمكنك إنشاء مواقع ثابتة أو مواقع مُعرَّضة على الخادم (server-rendered)، أو هجينة (بعض الصفحات ثابتة وبعضها مُعرَّض على الخادم)
وهذا يضمن أنك لن تستخدم سوى موارد الخادم التي تحتاجها فعلًا، وأنك تستطيع نشره على أي منصّة نشر رئيسية، بما في ذلك منصّات الخوادم عديمة الخادم (serverless).
له نموذج ذهني بسيط.
افتراضيًا، لا تُرسَل أي شيفرة JavaScript إلى جهة العميل. إطلاقًا. فالصفحات تُولَّد على الخادم، وقت البناء افتراضيًا.
ثم لا يكاد يرسل سوى HTML.
وهذا يجعله مثاليًا لحزمة AHA.
يوفّر لغة قوالب شبيهة بـ JSX مثالية في رأيي (أعدّ JSX أفضل ميزة قدّمتها React). لكن، بخلاف JSX في React، يُعرِض Astro على الخادم، إمّا وقت البناء أو وقت الطلب (SSG أو SSR).
وباستخدام لغة القوالب هذه يمكننا تصميم واجهات المستخدم على الخادم باستخدام مكوّنات قائمة على JavaScript، كما اعتدت في واجهة العميل، واستخدام صيغة الاستيراد في JavaScript لاستخدامها (وهي ميزة تُغيّر كل شيء).
وإن أردت، يمكنك بعد ذلك إضافة أي نوع من أطر عمل واجهة العميل تريده، ضمن ما يُعرف بـ «بنية الجزر» (island architecture). فأنت تستطيع إضافة مكوّن React، أو مكوّن Svelte، أو أي شيء تريده، داخل صفحة. لا تقول «React يشغّل الموقع» بل «الموقع يشغّل شيئًا من React في هذه الصفحة». وهذا جيّد حين تحتاج تفاعلية أكثر مما تتيحه أدوات الحزمة AHA الافتراضية.
يتيح لنا بناء تطبيق متعدّد الصفحات (Multi Page Application) سريع.
ويمكنك إنشاء مسارات API بسهولة.
ومع العرض على الخادم يمكنك معالجة طلبات النماذج (form submission) باستخدام FormData و Request و Response من منصّة Web. ومعالجة ملفات تعريف الارتباط، والاتصال بقاعدة بيانات، وأي شيء تريده.
يمكنك أن تفعل ما تشاء، في الأساس.
ثم إن معظم المواقع تعتمد على المحتوى، وقصّة المحتوى في Astro لا تُضاهى. دعم Markdown جاهزًا، ومجموعات محتوى (content collections) للمواقع الغنية بالمحتوى، ومعالجة الصور، وغيرها الكثير.
له قيم افتراضية سليمة.
إنه يكتسب رواجًا، لكنه يظل وفيًّا لمبادئه.
الفريق الذي يبنيه رائع.
لكن، إن كنت تفضّل ذلك، فجلب واجهتك الخلفية الخاصة بك إلى هنا.
لا مشكلة.