عن المشروع
GeeksPulse هو مجمّع أخبار مفتوح المصدر للمطورين يجمع المقالات من نحو 50 موجز RSS وAtom مختارًا يدويًا ويعرضها في واجهة واحدة سريعة. يصف المشروع نفسه بأنه خالٍ من الإعلانات والجدران المدفوعة ومتتبعات الإعلانات، ويقوم بتطويره وصيانته مطوّر فردي.
كيف يعمل
تقوم خطوة بناء بـ Node.js (scripts/build-feed.mjs بالإضافة إلى وحدات تحت scripts/lib/) بجلب الموجزات المُهيّأة وتوحيدها، ثم تكتب ذاكرات JSON ثابتة في public/. الواجهة الأمامية مبنية بـ HTML وCSS ووحدات JavaScript ES عادية، لذا يمكن تقديم الموقع كملفات ثابتة دون خادم تطبيقات. يشغّل سير عمل GitHub Actions بناء الموجز وفق جدول زمني (موثّق كل 30 دقيقة) لإبقاء الذاكرة المؤقتة محدّثة. إذا كان ملف الموجز المُبنى مسبقًا مفقودًا أو فارغًا، يعود التطبيق إلى جلب الموجزات مباشرة في المتصفح عبر وسطاء CORS؛ ويصف README هذا بأنه مسار طارئ وليس مسار التحميل المعتاد.
المحتوى والفئات
تُدرج الموجزات في data/feeds.json وتُجمّع في 11 فئة: General وSecurity وAI/ML وPython وJavaScript وJava وDevOps وOpen Source وRust وGo وArchitecture. تشمل المصادر المسمّاة Hacker News وLobsters وArs Technica وThe Register وIEEE Spectrum وKrebs on Security وBleeping Computer وGoogle AI Blog وPlanet Python وJavaScript Weekly ومدونات Docker وKubernetes وLWN.net وRust Blog وGo Blog وMartin Fowler وNetflix Tech Blog وCloudflare Blog، من بين أخرى. إضافة موجز تعني تعديل data/feeds.json وإعادة توليد الذاكرة المؤقتة.
الميزات
- تخطيطات شبكية وقائمة مع تخزين التفضيل في localStorage
- فترات تحديث تلقائي قابلة للتهيئة من دقيقة واحدة إلى ساعة واحدة
- ملخصات ذكاء اصطناعي عند الطلب، باستخدام مقتطفات مخزّنة مسبقًا أو بديل Ollama محلي
- إشارات مرجعية محفوظة محليًا، بالإضافة إلى وقت قراءة تقديري على البطاقات
- اختصارات لوحة المفاتيح: / للبحث، وj/k للتنقل، وo للفتح، وr للتحديث، وEsc للمسح
- لوحة صحة الموجزات تعرض وقت آخر تحديث وعدد الموجزات المتصلة/الفاشلة
- هياكل تحميل أولية، ومشاركة عبر Web Share API مع بديل الحافظة
- أعمال إتاحة: أدوار وتسميات ARIA، وتنقل بلوحة المفاتيح، ودعم prefers-reduced-motion
- سمة داكنة بأسلوب سايبربانك مع لمسات نيون، وحركات glitch وscanline
تشمل مخرجات البناء public/feed.json (حتى 300 مقالة منزوعة التكرار مرتبة من الأحدث أولًا)، وpublic/feed-health.json، وpublic/version.json، وsitemap.xml للصفحة الرئيسية فقط، ومقالات SEO احتياطية تُحقن في index.html.
الاختبار والأدوات
يوثّق المستودع مجموعة اختبارات متعددة الطبقات: اختبارات Vitest للوحدات والتكامل وDOM (يُذكر أنها 171 اختبارًا) بالإضافة إلى اختبارات Playwright الشاملة من طرف إلى طرف (10 اختبارات) على Chromium، مع happy-dom لاختبارات جانب المتصفح وحدود تغطية V8. يشغّل خط CI الاختبارات أولًا، ثم مهمة البناء والنشر، ثم الاختبارات من طرف إلى طرف؛ ويؤدي فشل اختبار وحدة أو تكامل إلى إيقاف الخط. تستخدم التطوير Vite 6 كخادم تطوير ومجمّع للإنتاج، مع fast-xml-parser وollama كاعتماديات وقت البناء.
الخصوصية والدعم
يذكر README أن الموقع يستخدم Google Analytics للحصول على رؤى أساسية حول الزيارات لكن دون متتبعات إعلانية، ولا يبيع بيانات المستخدمين ولا يخصّص الإعلانات. يقبل المشروع المساهمات عبر issues وطلبات السحب ويوفّر رابط دعم PayPal اختياريًا.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.