الفهرست، بوابة إلى المدوّنات العربيّة

2020-04-10

في مطلع نيسان الجاري أطلقتُ مُبادرة “الفِهرِست” وهو مجتمعٌ يُعنى بالمدوّنات العربيّة الشخصية، على وجهين:

الأوّل: في قاعدة بيانات ضمت مع الإطلاق أكثر من مئتي مدوّنة عربية (أضف مدوّنتك). نعتمد على هذه القاعدة في جلب أحدث التدوينات المنشورة في الفضاء العربي وإتاحتها للقرّاء في صفحة واحدة.

الآخر: التشبيك فيما بينها من خلال مجتمع افتراضي. يستضيف المدونين أنفسهم، ويفتح باب التواصل، تبادل الأفكار والخبرات، التدوين في حملات وغير ذلك من أشكال التعاون.

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

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

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

الفهرست هو موقع هتمل ساكن Static HTML بُني باستخدام Gatsby وهو مولّد مواقع ساكنة بالاعتماد على React، يختصر عنك تحضير كلًا من React, Webpack, react-router, GraphQl وغيرها من تقنيات بناء الواجهات الأمامية الحديثة. مع غاتسبي كل ما تحتاجه لإنشاء موقعك هو بناء الصفحات pages والقوالب templates بالاعتماد على مكونات JSX. بالإضافة إلى الفهرست استخدمت غاتسبي لبناء مدونتي هذه، ومواقع أخرى عديدة، وهي تجارب جيدة ومُشجعة بالفعل.

قاعدة البيانات تستخدم PostgreSQL، أما واجهة برمجة التطبيقات أنجزتها بالاعتماد على إطار العمل Koa وهو إطار عمل ويب لبيئة Nodejs.

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

هناك سكربت مساعد يجلب صورة og:image لكل تدوينة، يضغطها لتقليل حجمها، ثم يُسند صورًا مُخزنة مُسبقًا لكل تدوينة لا تملك og:image

السكربت بعد ذلك يُطلق أمر إعادة بناء الموقع من جديد. غاتسبي يقرأ مُباشرةً من قاعدة البيانات، يجلب أحدث عشرة مواضيع، ويولد ملفات HTML جديدة، هذا ما يجعل الصفحة الرئيسية خفيفة وسريعة (أقل من 1 ميغابايت).

الآن لاتاحة المزيد من المحتوى، هناك زر “عرض المزيد” والذي سيطلب 10 تدوينات أخرى من الـ API ويدرجها في الموقع. يمكن جلب أحدث 90 تدوينة أخرى بهذه الطريقة، لتعرض الصفحة الرئيسية ما مُجمله مئة مادة.

السكربت السابق مُجدول بالاعتماد على Systemd ليعمل على رأس كل ساعة.

مجتمع الفهرست بدوره يستخدم NodeBB وهو سكربت أستخدمه للمرة الأولى، ويبدو أنه يفي بالغرض حاليًا.

لتعقّب عدد الزوّار وتفاعلهم مع الموقع أستخدم كلًا من خدمتي GoAccess وَ Fathom. أجل لا أستخدم تحليلات غوغل!

هذه هي باختصار كافة التفاصيل التقنية التي يعتمد عليها الفهرست.

هناك تحسيناتٌ أخرى أنوي إضافتها إلى المشروع، لكن هذا يتوقف على هامش الوقت المتاح لدي. لكن حتى وإن لم أجد وقتًا لا تقلق، الفهرست سيبقى يعمل ليُحدّث نفسه بنفسه ويمتع القرّاء العرب بالجديد من عالم المدونات الشخصية.

comments powered by Disqus