المقدمة
FORGE هو مصنع تطبيقات — أداة سطر أوامر تُنشئ تطبيقات متكاملة جاهزة للإنتاج من أمر واحد. على عكس أدوات التهيئة التقليدية التي تُنتج هياكل أولية فارغة، يُنشئ FORGE تطبيقات كاملة الوظائف تتضمن المصادقة، والتحكم بالوصول المبني على الأدوار، ولوحات الإدارة، وإدارة المحتوى، ودعم تعدد اللغات، وإعدادات البنية التحتية — كل ذلك مترابط ومتصل وجاهز للتشغيل.
لماذا FORGE؟
بناء تطبيق حديث متكامل من الصفر يعني ربط عشرات المكتبات معاً، وكتابة منطق CRUD المتكرر، وإعداد المصادقة، وتهيئة البنية التحتية، وتكرار نفس الأنماط في كل مشروع. FORGE يزيل كل هذا بالكامل.
بأمر واحد، تحصل على تطبيق عامل كان سيستغرق أسابيع لبنائه:
forge new --name=myappينتج عن هذا تطبيق متكامل — ليس مجرد ملفات على القرص، بل نظام يعمل مع HTTPS وترحيل قاعدة البيانات وبيانات أولية وحساب مدير جاهز لتسجيل الدخول.
نصيحة — FORGE يُنشئ تطبيقات، وليس هياكل أولية
كل مشروع يتم إنشاؤه يتضمن مصادقة عاملة، وعمليات CRUD إدارية، وتوثيق واجهة برمجية، وإدارة محتوى، وقوائم تنقل، وسجل تدقيق، والمزيد. تبدأ ببناء منطق عملك التجاري من اليوم الأول.
حزمة التقنيات
يجمع FORGE بين أفضل التقنيات لكل طبقة من طبقات التطبيق:
| الطبقة | التقنية | السبب |
|---|---|---|
| الخلفية | Rust + Axum | آمنة للذاكرة، فائقة السرعة، غير متزامنة أولاً |
| الواجهة الأمامية (الويب) | Next.js 14+ (App Router) | عرض من الخادم، مكونات React الخادمية، TypeScript |
| الواجهة الأمامية (الإدارة) | Next.js 14+ (App Router) | تطبيق إدارة منفصل مع مكونات shadcn/ui |
| قاعدة البيانات | PostgreSQL 15+ | ترجمات JSONB، بحث نصي كامل، موثوقة |
| التخزين المؤقت | Redis 7+ | مخزن جلسات، تحديد معدل الطلبات، تخزين مؤقت |
| الوكيل العكسي | Caddy | HTTPS تلقائي، إعداد SSL بدون تهيئة |
| الحاويات | Docker + Docker Compose | بيئة تطوير ونشر قابلة للتكرار |
| التنسيق | Tailwind CSS + shadcn/ui | أسلوب الأدوات المساعدة مع مكونات سهلة الوصول |
| النماذج | React Hook Form + Zod | تحقق آمن من الأنواع |
| الحالة | TanStack Query | إدارة حالة الخادم مع التخزين المؤقت |
| الأيقونات | Lucide React | مجموعة أيقونات متسقة وقابلة للتقليم |
الفلسفة الأساسية
التصميم بالعقود أولاً
بُني FORGE على معمارية العقود أولاً. كل وحدة خلفية أو واجهة أمامية أو مزود خدمة أو قالب تُنفّذ عقداً محدداً بوضوح (واجهة). هذا يعني:
- الخلفيات قابلة للتبديل — Rust اليوم، وLaravel أو FastAPI غداً. عقد الواجهة البرمجية يبقى كما هو.
- الواجهات الأمامية قابلة للتبديل — Next.js اليوم، وNuxt.js أو Angular غداً. عقود الصفحات والمكونات تبقى كما هي.
- مزودو الخدمات قابلون للتوصيل — استبدل Twilio بـ Vonage، أو AWS S3 بـ MinIO، دون تغيير كود التطبيق.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ عقد │ │ عقد │ │ عقد │
│ الخلفية │ │ الواجهة │ │ مزود الخدمة │
├──────────────┤ ├──────────────┤ ├──────────────┤
│ • Rust/Axum │ │ • Next.js │ │ • Twilio │
│ • Laravel │ │ • Nuxt.js │ │ • Vonage │
│ • FastAPI │ │ • Angular │ │ • AWS S3 │
│ • Node.js │ │ • Vanilla │ │ • MinIO │
└──────────────┘ └──────────────┘ └──────────────┘قابلية التوسع بالقوالب
يتضمن القالب الأساسي كل ما تحتاجه لتطبيق قياسي: المستخدمون، والأدوار، والصلاحيات، والمصادقة، وإدارة المحتوى، وقوائم التنقل، ورفع الوسائط، والمزيد. القوالب الإضافية تُبنى فوقه لإضافة ميزات متخصصة:
- إدارة العلاقات مع العملاء (CRM) — جهات الاتصال، الصفقات، خطوط الإنتاج، الأنشطة
- مكتب المساعدة (Helpdesk) — التذاكر، اتفاقيات مستوى الخدمة، قاعدة المعرفة
- الفوترة (Invoicing) — الفواتير، المدفوعات، إدارة الضرائب
كل قالب يضيف نماذج البيانات والترحيلات ونقاط الواجهة البرمجية وصفحات الإدارة وصفحات الويب الخاصة به — وكلها تتبع نفس العقود.
محرك قوالب Tera
يستخدم FORGE محرك القوالب Tera لتوليد الأكواد المصدرية. كل ملف في المشروع الناتج يُنشأ من قالب .tera، مع إمكانية الوصول إلى إعدادات مشروعك (الاسم، اللغات، طريقة المصادقة، مزودو الخدمات، والمزيد). هذا يجعل الكود المُنشأ نظيفاً وطبيعياً — دون شروط متناثرة أو مسارات كود غير مستخدمة.
ما الذي تحصل عليه
يتضمن تطبيق FORGE المُنشأ:
- المصادقة — JWT مع رموز التحديث، وتسجيل الدخول، والتسجيل، وإعادة تعيين كلمة المرور، وOTP اختياري
- التحكم بالوصول المبني على الأدوار — صلاحيات دقيقة، وتعيين الأدوار، وفرض عبر البرمجيات الوسيطة
- لوحة الإدارة — إدارة المستخدمين، وإدارة الأدوار، ومحرر المحتوى، ومكتبة الوسائط، وسجلات التدقيق
- تطبيق الويب — صفحات عامة، وملف المستخدم الشخصي، وتنقل ديناميكي، وتبديل اللغات
- إدارة المحتوى — صفحات نصية غنية بمحتوى قابل للترجمة وتوجيه بالمسار
- نظام القوائم — قوائم تنقل ديناميكية يمكن إدارتها من لوحة الإدارة
- إدارة الوسائط — رفع ملفات متعدد الأشكال مع معالجة الصور
- جداول البحث — جداول مفتاح-قيمة قابلة للتهيئة للقوائم المنسدلة والبيانات المرجعية
- تعدد اللغات — ترجمات مبنية على JSONB، ودعم RTL، واكتشاف اللغة لكل طلب
- توثيق الواجهة البرمجية — مواصفات OpenAPI مُنشأة تلقائياً مع Swagger UI وReDoc
- البنية التحتية — Docker Compose، ووكيل Caddy العكسي، وشهادات SSL محلية
- قاعدة البيانات — ترحيلات مُرقّمة، وبذور ببيانات افتراضية، وفهارس مناسبة
معلومة — كل ميزة متكاملة بالكامل
تدفقات المصادقة تتصل بنظام الأدوار والصلاحيات، الذي يتحكم بصفحات الإدارة، التي تدير المحتوى والقوائم، التي تُعرض في تطبيق الويب — مع دعم تعدد اللغات في كل طبقة. لا شيء يُترك كمسودة أو مهمة معلقة.
الخطوات التالية
هل أنت مستعد للبدء؟ اتبع الأدلة بالترتيب:
- التثبيت — تثبيت المتطلبات الأساسية وأداة FORGE
- البداية السريعة — إنشاء وتشغيل أول تطبيق
- الإعدادات — فهم وتخصيص ملف
forge.yaml - بنية المجلدات — تعرّف على كيفية تنظيم المشروع المُنشأ