المشكلة
على غرفة الأخبار الصغيرة التي تدير مواقع WordPress أن تتابع مصادر كثيرة، وتختار الأخبار، وتكتب، وتتحقق من الحقائق، وتجد صورة، ثم تنشر القصة نفسها على القنوات الاجتماعية والبودكاست. وكل خطوة يدوية، وكل منها في أداة مختلفة.
ما الذي بنيته
بنيت منصة ويب متعددة المستخدمين تأخذ الأخبار من الخلاصات ومصادر الويب، وتمر بها عبر الصياغة بالذكاء الاصطناعي وصولًا إلى النشر على WordPress وقنوات أخرى.
- معالج مقالات من 12 خطوة: المصدر، والخبر، والبحث المعمق، وخمسة خيارات للعنوان، والمقدمة، والمتن، ومراجعة للحقائق والقواعد اللغوية، وSEO، والصورة، والصوت، والمراجعة، والنشر. ولكل خطوة نقطة نهاية خاصة بها، فيمكن إعادة الخطوة الفاشلة وحدها.
- شخصيات بالذكاء الاصطناعي: ملفات للكتّاب تتضمن الهوية والنبرة والأسلوب، ويُعاد استخدامها في المقالات. فكل ما يُكتب باسم «كاتب» واحد يحافظ على الصوت نفسه.
- محرك البوتات: بوتات مجدولة تجلب الأخبار وتصفّيها وتكتب بشخصية مختارة ثم تنشر أو تحفظ مسودة. ويتحقق المجدول كل 60 ثانية، ويدعم الجداول اليومية والساعية وبفواصل زمنية وحسب أيام الأسبوع، مع فترة تهدئة تمنع التشغيل المزدوج.
- نشر متعدد القنوات: عدة مواقع WordPress، وFacebook، وInstagram، وX، وSubstack، وبودكاست Spreaker، وWhatsApp، إضافة إلى أخبار صوتية بأصوات ElevenLabs وفيديو بشخصيات HeyGen الافتراضية.
- الأدوار والأرصدة: 7 أدوار، من المشرف إلى المختبِر. ولكل مستخدم حصة من الأرصدة مع سجل لكل إجراء بالذكاء الاصطناعي، وشحن الرصيد عبر PayPal. ويستطيع المشرفون انتحال هوية المستخدم لتقديم الدعم.
- مصممة للفرق في الخارج أيضًا: الواجهة مترجمة إلى 8 لغات، منها العربية والهندية والصينية.
بالأرقام
- 111 معالجًا لمسارات API خلف لوحة التحكم.
- 67 صفحة في التطبيق، بما فيها منطقة الإدارة.
- 8 لغات للواجهة و7 أدوار للمستخدمين بصلاحيات منفصلة.
التقنيات المستخدمة
Next.js 14 مع App Router، وReact 18، وTypeScript، وTailwind CSS. وNextAuth لتسجيل الدخول بالبريد الإلكتروني أو Google أو Facebook. وMySQL 8 عبر mysql2. وOpenAI للنصوص والصور، مع Gemini وElevenLabs وHeyGen كمزودين إضافيين. وتُحفظ مفاتيح API لكل مستخدم مشفّرة بـ AES-256-GCM. وتضيف إضافة WordPress مرافقة مكتوبة بـ PHP أدوار الصحفي وغرفة الأخبار داخل WordPress. كما جهّزت المنصة كمنتج للاستضافة الذاتية، مع أدلة للتثبيت والبنية.
لماذا بهذه الطريقة
اخترت عدم استخدام ORM. فالاستعلامات مكتوبة بـ SQL عادي ذي معاملات عبر mysql2، ويُبنى Next.js في وضع standalone في ملف server.js واحد. والسبب هو الاستضافة: فقد استنفد محرك WASM الخاص بـ Prisma الذاكرة على استضافة cPanel المشتركة، بينما تعمل حزمة standalone على خوادم رخيصة. ويستخدم المستخدمون مفاتيح الذكاء الاصطناعي الخاصة بهم، فلا تدفع المنصة تكلفة استدعاءاتهم.


