0%
Aymen
العودة إلى الأعمال
ويبمُنجز2026

PostPlan

أداة تخطيط ونشر على وسائل التواصل — تقاويم متعددة العلامات التجارية، ومسارات موافقة، ونشر مجدول على ثماني منصات.

دَوري
مطور Full Stack
الفترة
أكتوبر 2025 — يوليو 2026
الحالة
مُنجز
نظرة عامة

PostPlan منصّة SaaS من فئة Planable تخطّط فيها فرق التسويق محتواها على الشبكات الاجتماعية، وتجمع الموافقات، ثم تنشر. لكل علامة تجارية تقويمها الخاص، وتمرّ المسودّات عبر مسار موافقات يشمل أعضاء الفريق والعملاء قبل جدولتها نحو ثماني شبكات — Facebook وInstagram عبر Graph API v25، وX عبر واجهتها v2، وLinkedIn وغيرها.

أما البنية الخلفية فخادم Fastify مبني وفق clean architecture، يعتمد على قاعدة PostgreSQL خاصة به ومصادقة بواسطة JWT — وهي حزمة انتقل إليها المنتج بعد الخروج من Supabase. وتتولى Stripe الاشتراكات عبر خطط Free و‏29$ و‏79$ و‏199$، حيث يشكّل عدد العلامات التجارية المتصلة الرافعة التي تنقل العميل من خطة إلى أخرى.

التحدّي

المشكلة المطلوب حلّها

نشر منشور واحد إلى ثماني شبكات يعني التعامل مع ثماني واجهات برمجية مختلفة — Graph API v25 لـFacebook وInstagram، وواجهة X بإصدارها v2، وواجهة LinkedIn وسواها — لكلٍّ منها آلية مصادقة وبنية حمولة وأنماط أعطال خاصة بها. ويضاف إلى ذلك قيد تشغيلي: لا يجوز أن يخرج أي محتوى قبل موافقة الفريق والعميل. كما كان الخادم الأول المبني على Supabase يربط البيانات والمصادقة والاستضافة بطرف ثالث، في حين احتاج المنتج إلى امتلاكها بنفسه.

الحل

كيف بُني

أُعيد بناء الخادم تطبيقَ Fastify بطبقات clean architecture: حالات الاستخدام — التخطيط والموافقة والنشر — معزولة خلف موائمات HTTP رقيقة، وكل شبكة مدمجة عبر واجهتها الرسمية — Graph API v25 وX v2 وLinkedIn وغيرها. وانتقلت البيانات إلى قاعدة PostgreSQL مُدارة ذاتيًا والمصادقة إلى JWT، لتكتمل بذلك الهجرة من Supabase.

يتحكم مسار الموافقات في خط النشر: لا يصل المنشور إلى المجدول إلا بعد استيفاء موافقات الفريق والعميل المطلوبة. وتقوم الفوترة على Stripe بخطط Free و‏29$ و‏79$ و‏199$، حيث يحدّد عدد العلامات التجارية المتصلة الانتقال إلى الخطة الأعلى.

أبرز الميزات

ماذا يفعل

🗓️

تقاويم متعددة العلامات

لكل علامة تجارية متصلة تقويم تخطيط مستقل، فتبقى تدفقات محتوى العملاء المختلفين منفصلة بوضوح.

✅

مسارات الموافقات

تمرّ المسودّات بموافقة الفريق والعميل قبل أي جدولة — فلا يُنشر شيء دون مراجعة.

📤

النشر إلى ثماني شبكات

تكاملات مباشرة مع Facebook وInstagram (عبر Graph API v25) وX (v2) وLinkedIn وغيرها تنشر كل منشور عبر الواجهة الرسمية للمنصة.

⏰

نشر مجدول

تُوضع المنشورات المعتمدة في قائمة الانتظار وتُرسل في موعدها المحدد إلى الشبكات المتصلة.

💳

فوترة على أساس العلامات

اشتراكات Stripe بخطط Free و‏29$ و‏79$ و‏199$، وعدد العلامات التجارية المتصلة هو رافعة التسعير بين الخطط.

🔐

ملكية المصادقة والبيانات

حلّت مصادقة JWT وقاعدة PostgreSQL مخصّصة محل Supabase، لتصبح الهوية والبيانات تحت سيطرة المنتج بالكامل.

التقنيات المستخدمة

بُني باستخدام

الواجهة الأمامية

Next.js

يشغّل Next.js واجهة الويب؛ فالتوجيه المبني على الملفات وتقسيم الشيفرة لكل مسار يجعلان لوحة تحكم متعددة الشاشات (تقاويم، موافقات، فوترة) قابلة للإدارة ضمن قاعدة React واحدة.

TypeScript

يمتد TypeScript عبر العميل والخادم، وكان حاسمًا أثناء الهجرة من Supabase إلى Fastify وعند نمذجة بنى الحمولة المختلفة للشبكات الثماني؛ إذ يكشف المترجم انحراف العقود قبل أن تكشفه الواجهات.

الخلفية

Fastify

يشكّل Fastify طبقة الـAPI في خادم الـclean architecture: إطار Node خفيف يُبقي مسارات HTTP موائمات رقيقة فوق حالات استخدام التخطيط والموافقة والنشر، بفضل نظام الإضافات والتحقق بالمخططات.

البيانات

PostgreSQL

بعد الخروج من Supabase صار المنتج يملك بياناته في PostgreSQL، حيث يربط التكامل العلائقي العلامات والمنشورات والموافقات والاشتراكات بمفاتيح أجنبية ومعاملات حقيقية.