الخلاصة
إذن، إلى جانب خادم الويب (Web Server)، لدينا أداتان:
- htmx، لتسهيل إنشاء التواصل بين العميل والخادم و«الاستجابة» بعد وصول الردّ
- Alpine.js، لإضافة التفاعلية في جهة العميل (client-side interactivity) إلى كل صفحة
هاتان أداتان حديثتان نسبيًا (الإصدار العام الأول من Alpine.js يعود إلى نوفمبر 2019، أما htmx 0.0.1 فكان في مايو 2020)، لكنني رأيتهما يُذكران كثيرًا في السنوات الأخيرة.
لدى htmx ما يقارب 50 ألف نجمة على GitHub، ولدى Alpine.js أكثر من 30 ألف (وقت كتابة هذا النص)، ما يعني أنهما رائجان بما يكفي. وهما أيضًا مصونان ومطوّران جيدًا.
يمكن تضمين كليهما بسهولة عبر وسم script (script tag) داخل HTML، وليست لديهما أيّ اعتماديات على الإطلاق.
يبسّط هذا بشكل كبير عملية بناء تطبيقاتك، وكون الأداتين مكتوبتين بلغة JavaScript الصرفة يضمن ألّا ينكسر شيء في المستقبل (لأن JavaScript لا تُقدّم تغييرات كاسرة في إصداراتها، تمامًا كما HTML و CSS).
إنها عودة إلى الأساسيات.
تلك التقنيات رائعة، لكنها ليست مثبّتة في الحجر. يمكنك تغييرها بحسب تفضيلك والانتقال إلى غيرها مستقبلًا. إنها مجرّد أدوات.
وليست أُسسًا.

يمكنك اختيار إطار عمل معقّد لتطبيق الصفحة الواحدة (SPA) يعيد اختراع كل شيء، ويجرك على تعلّم أنماط ومفاهيم مخترَعة كليًا.
أو يمكنك استعمال منصّة الويب كما قُصد لها.
بإضافة بعض الطبقات الرقيقة فوقها، لنضيف الأجزاء الأخيرة التي نحتاجها كي نطابق تجربة المستخدم التي يتوقّع الناس منّا القدرة على تقديمها.
الهدف النهائي أن تكون حياتنا أسهل وأبسط، لأن استعمال هذه الحزمة (stack) يمكّنك من تعلّم المفاهيم القليلة التي تحتاجها htmx و Alpine خلال أصيل واحد، ثمّ انتهى الأمر.
النموذج الذهني بسيط للغاية، أقرب بكثير إلى المبادئ الأولى للويب، وهو يتيح لك التركيز على التطبيق الفعلي الذي تبنيه، بدلًا من تعلّم إطار عمل معقّد آخر يفرض مبادئه وأفكاره الخاصة.
هل ألهمتك هذه المقدمة؟
هل فتحت لك الباب لفكرة بناء تطبيق تجريبي بهذه الحزمة مستقبلًا، لترى كيف يبدو شكله؟
آمل ذلك.

