الدليل‹الكود والتصدير
الكود والتصديرمتوسّط‏٩ دقائق قراءة

خصّص حزمتك التقنية

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

الحزمة الافتراضية

عندما لا تحدّد حزمة في موجّهك، يولّد مايندلاب الكود باستخدام تركيبته الافتراضية: واجهة أمامية React مبنية بـ Vite، وخادم FastAPI مكتوب بـ Python، وقاعدة بيانات PostgreSQL. اختيرت هذه الثلاثية لأنها تغطّي أوسع نطاق من حالات الاستخدام، ولديها أنظمة مكتبات ممتازة في الطبقات الثلاث جميعها، ومفهومة جيدًا لدى نماذج توليد الكود في مايندلاب.

الحزمة الافتراضية خيار متين للغالبية العظمى من تطبيقات SaaS، والأدوات الداخلية، ولوحات المعلومات المعتمدة على البيانات. ولا تحتاج إلى الانحراف عنها إلا إذا كان لدى فريقك متطلّب مهارات محدّد، أو قاعدة كود قائمة تبني بجانبها، أو قيد نشر يفضّل بيئة تشغيل مختلفة.

ℹ
ملاحظة.تؤثّر الحزمة التي تختارها على المكتبات التي يستوردها مايندلاب، وكيفية تهيئة المصادقة، وكيفية توليد عمليات ترحيل قاعدة البيانات، وأهداف النشر المتاحة. تغييرها لاحقًا يكلّف أرصدة لأن أجزاءً كبيرة من قاعدة الكود تحتاج إلى إعادة توليد. اختر حزمتك قبل أول تمريرة لتوليد الكود.

اختيار واجهة أمامية

يدعم مايندلاب خيارَين للواجهة الأمامية: React مع Vite (الافتراضي) وNext.js. إليك متى تختار كلًّا منهما:

1
React + Vite — الأفضل لتطبيقات الصفحة الواحدة والأدوات الداخلية
‏React + Vite مثالي عندما يكون تطبيقك خلف تسجيل دخول ولا يحتاج إلى الظهور في محرّكات البحث. لوحات المعلومات الداخلية، ولوحات الإدارة، وبوّابات العملاء، والتطبيقات الكثيفة بالبيانات كلها خيارات رائعة. خادم تطوير Vite سريع، ومُخرج البناء حزمة ثابتة يمكنك تقديمها من أي CDN، والكود المُولّد سهل الفهم والتوسيع. هذا هو الافتراضي لسبب وجيه.
2
Next.js — الأفضل للمنتجات الموجّهة للعامة
اختر Next.js عندما يحتوي تطبيقك على صفحات تحتاج إلى فهرستها محرّكات البحث، أو عندما تريد التصيير من جهة الخادم لتحميل سريع للصفحة الأولى على الاتصالات البطيئة. صفحات التسويق، والمدوّنات، ومتاجر التجارة الإلكترونية، وصفحات هبوط SaaS المقترنة بلوحة معلومات مُصادَق عليها هي حالات الاستخدام الكلاسيكية لـ Next.js. يولّد مايندلاب كود App Router (Next.js 14+) ويضع مسارات API في المشروع نفسه، ما يقلّل الحاجة إلى خدمة خادم منفصلة لعمليات البيانات البسيطة.
💡
نصيحة.إن كنت تبني تطبيق SaaS بموقع تسويقي عام وقسم تطبيق مُصادَق عليه معًا، فاختر Next.js. سيهيّئ مايندلاب صفحات التسويق كمسارات ثابتة وقسم التطبيق كمكوّنات عميل خلف تخطيط محميّ بوسيط (middleware) — كلّه في مشروع واحد.

اختيار خادم

يمكن لمايندلاب توليد كود الخادم بثلاث لغات وأُطر. لكلٍّ منها طابعه المميّز:

1
FastAPI (Python) — الافتراضي، الأفضل للتطبيقات الكثيفة بالذكاء الاصطناعي
‏FastAPI هو الخادم الافتراضي لمايندلاب. وهو الخيار الصحيح عندما يستدعي تطبيقك OpenAI أو Anthropic أو HuggingFace أو أي مكتبة ذكاء اصطناعي أخرى أصلية لـ Python، لأن تلك المكتبات تعطي الأولوية لـ Python والتكامل سلس. كما يتمتّع FastAPI بدعم ممتاز للعمليات غير المتزامنة، وتوليد تلقائي لوثائق OpenAPI، والتحقّق من الطلبات المبني على Pydantic. إن كان فريقك يعرف Python أو كان تطبيقك يقوم بأي شيء يتعلّق بتعلّم الآلة أو معالجة البيانات، فأبقِ على الافتراضي.
2
Express (Node.js/TypeScript) — الأفضل لفِرق JS
اختر Express عندما يكون فريقك أصيلًا في JavaScript أو TypeScript ويريد مشاركة الأنواع بين الواجهة الأمامية والخادم. Express هو الخيار الصحيح للميزات الفورية (websockets، server-sent events)، وعندما تستخدم عميل قاعدة بيانات يعطي الأولوية لـ JavaScript مثل Prisma، أو عندما تريد تجنّب التبديل بين Python وTypeScript في قاعدة الكود نفسها. يولّد مايندلاب كود Express بـ TypeScript مُحدّد الأنواع بالكامل مع مخطّطات تحقّق Zod يمكن مشاركتها مع الواجهة الأمامية.
3
Go Fiber — الأفضل لواجهات API عالية الإنتاجية
‏Go Fiber هو الخيار الأعلى أداءً. اختره عندما تتعامل واجهة API لديك مع عدد كبير جدًا من الطلبات المتزامنة، أو عندما تنشر في بيئات محدودة الموارد (أجهزة افتراضية صغيرة، عُقد طرفية)، أو عندما يكون حجم الملف الثنائي ووقت بدء التشغيل مهمَّين (البنى الكثيفة بالحاويات). Go Fiber أكثر إسهابًا من FastAPI أو Express، لكن الكود المُولّد صريح وسهل التدقيق وينتج صور Docker شديدة النحافة. كما أن Go هو الخيار الصحيح لعمليات نشر دول الخليج أو سيادة البيانات حيث يبسّط ملفٌّ ثنائي واحد قائم بذاته العمليات.
ℹ
ملاحظة.إن اخترت Next.js كواجهتك الأمامية، يمكن لمايندلاب اختياريًا تخطّي توليد خادم منفصل تمامًا واستخدام مسارات API في Next.js لعمليات البيانات. يعمل هذا جيدًا للتطبيقات الأبسط. اذكر 'no separate backend' في موجّهك لاستخدام هذا الوضع.

اختيار قاعدة بيانات

يؤثّر اختيار قاعدة البيانات على توليد مخطّطك، وأدوات الترحيل، وخيارات الاستضافة. يدعم مايندلاب ثلاثة خيارات رئيسية:

1
PostgreSQL — الافتراضي، الأكثر تنوّعًا
‏PostgreSQL هو الافتراضي والخيار الصحيح للغالبية العظمى من التطبيقات. يتعامل مع البيانات العلائقية، ومستندات JSON، والبحث النصّي الكامل في محرّك واحد. يولّد مايندلاب عمليات ترحيل Alembic (FastAPI)، أو عمليات ترحيل Prisma (Express/Next.js)، أو ملفات ترحيل SQL خام (Go Fiber)، بحسب خادمك. PostgreSQL مدعوم من كل مزوّد استضافة مُدارة رئيسي: Supabase، وRailway، وRender، وNeon، وAWS RDS، وخادمك الافتراضي الخاص (VPS).
2
MySQL — الأفضل لبنية MySQL القائمة
اختر MySQL إن كنت تبني بجانب قاعدة بيانات MySQL قائمة، أو إن كانت خبرة فريقك خاصة بـ MySQL. يولّد مايندلاب مخطّطًا وملفات ترحيل متوافقة مع MySQL. لاحظ أن لـ MySQL بعض القيود مقارنةً بـ PostgreSQL: لا نوع UUID أصلي (استخدم VARCHAR(36))، ولا JSONB مع الفهرسة، وقدرات بحث نصّي كامل مختلفة قليلاً. للمشاريع الجديدة، يُفضَّل PostgreSQL عمومًا.
3
Supabase — الأفضل للتكرار السريع مع الميزات المدمجة
‏Supabase منصّة Postgres مُدارة تجمع المصادقة، والاشتراكات الفورية، والتخزين، وواجهات REST/GraphQL المُولّدة تلقائيًا فوق قاعدة بيانات PostgreSQL قياسية. اختره عندما تريد التحرّك بسرعة ولا تريد بناء المصادقة من الصفر، أو عندما تحتاج إلى ميزات فورية (قوائم تتحدّث حيًّا، تحرير تعاوني) دون كتابة كود websocket. يولّد مايندلاب كود عميل Supabase، ويستخدم Supabase Auth بدلًا من طبقة JWT مخصّصة، ويمكنه الاستفادة من Supabase Storage لرفع الملفات. ملاحظة: Supabase خدمة سحابية مُدارة وغير متاحة لعمليات النشر في الموقع أو المعزولة عن الشبكة.

تحديد الحزمة في الموجّه

أبسط طريقة لتحديد حزمتك هي تضمين إعلان Stack من سطر واحد في موجّهك. يتعرّف مايندلاب على هذا النمط ويستخدمه لتهيئة الطبقات الثلاث جميعها قبل توليد أي كود.

text
Build a project management tool for software agencies.

Stack: Next.js frontend, Express backend, Supabase database.

Users: Agency owners and developers.
- Owners can create client projects, set budgets, and view reports.
- Developers are assigned to projects and log time against tasks.

Data: Clients have many Projects. Projects have many Tasks and
TimeEntries. TimeEntries belong to a Developer and a Task.

The main view is a weekly time-tracking grid. Include a monthly
burn-rate chart on the Owner dashboard.

يمكنك أيضًا أن تكون أكثر تحديدًا إن كانت لديك قيود إضافية:

text
Stack: Next.js 14 App Router frontend, Go Fiber backend,
PostgreSQL 16 database (self-hosted, not managed Supabase).
Deploy target: single VPS running Docker Compose.
No third-party auth providers — use JWT with refresh tokens.
💡
نصيحة.إن ذكرت حزمة في موجّهك لكن لم يستطع مايندلاب تلبية جزء منها (على سبيل المثال، محرّك قاعدة بيانات لا يدعمه بعد)، فسيُشير إلى ذلك في خطوة مراجعة المواصفات ويقترح أقرب بديل متاح. ستتاح لك دائمًا فرصة لتأكيد الحزمة أو تغييرها قبل بدء توليد الكود.

تغيير الحزمة أثناء المشروع

تغيير حزمتك بعد توليد الكود ممكن، لكنه يأتي بتكاليف حقيقية في كلٍّ من الأرصدة والجهد اليدوي. تعتمد درجة الاضطراب على الطبقة التي تغيّرها:

1
تبديل إطار الواجهة الأمامية
الانتقال من React + Vite إلى Next.js (أو العكس) يتطلّب إعادة توليد كل ملفات الواجهة الأمامية. ملفات الخادم وقاعدة البيانات لا تتأثّر. توقّع إنفاق ٣٠–٧٠٪ من تكلفة توليد الواجهة الأمامية الأصلية، حسب عدد الصفحات والمكوّنات في تطبيقك.
2
تبديل لغة الخادم
الانتقال من FastAPI إلى Express أو Go Fiber يتطلّب إعادة توليد كل ملفات الخادم. ملفات الواجهة الأمامية ومخطّط قاعدة البيانات لا تتأثّر، وإن كان عميل API المُولّد في الواجهة الأمامية سيحتاج إلى تحديث. توقّع تكلفة مماثلة لإعادة توليد الخادم من الصفر.
3
تبديل محرّك قاعدة البيانات
هذا أكثر تغيير اضطرابًا. الانتقال من PostgreSQL إلى MySQL، أو من Postgres مُستضاف ذاتيًا إلى Supabase، يتطلّب إعادة توليد عمليات الترحيل، وتحديث تهيئة الـ ORM/العميل، وربما تغيير كيفية تهيئة المصادقة. إن كنت تنتقل من قاعدة بيانات علائقية إلى Supabase، فسيُستبدل أيضًا أي كود مصادقة مخصّص. هذا يُحتسب عمليًا كإعادة توليد شبه كاملة. إن لم تكن متأكّدًا من اختيار قاعدة بياناتك، فقرّر قبل أول تمريرة لتوليد الكود.
⚠
انتبه.تبديل محرّك قاعدة البيانات أثناء المشروع لا يرحّل بياناتك القائمة تلقائيًا. يولّد مايندلاب ملفات ترحيل جديدة لمحرّك قاعدة البيانات الجديد، لكن نقل البيانات من قاعدة بياناتك القديمة إلى الجديدة يتطلّب سكربت ترحيل يدويًا. خطّط لهذا العمل قبل بدء تبديل قاعدة البيانات.

دول الخليج: Postgres سيادي مقابل Supabase المُدار

للفِرق العاملة تحت متطلّبات إقامة البيانات في دول مجلس التعاون الخليجي، أو قوانين حماية البيانات في الإمارات، أو أُطر امتثال إقليمية مماثلة، يُعدّ موقع استضافة قاعدة البيانات أمرًا جوهريًا. تعمل سحابة Supabase المُدارة على مناطق AWS التي قد لا تلبّي متطلّبات إقامة البيانات داخل البلد لفئات البيانات الحسّاسة.

لعمليات النشر في منطقة الخليج، يوصي مايندلاب بالتهيئة التالية:

1
استخدم Postgres سياديًا على VPS في الإمارات
استضِف PostgreSQL ذاتيًا على خادم موجود فعليًا في مركز بيانات متوافق (على سبيل المثال، AWS me-central-1 في الإمارات، أو Microsoft Azure UAE North، أو مزوّد محلّي مثل du أو مراكز بيانات Etisalat). يولّد مايندلاب مخطّط PostgreSQL وملفات ترحيل قياسية تعمل بشكل متطابق على النسخ المُدارة والمُستضافة ذاتيًا.
2
استخدم Go Fiber أو FastAPI كخادم
كلاهما ينتج قابلًا للنشر قائمًا بذاته (ملف Go ثنائي واحد أو تطبيق Python في حاوية Docker) سهل التشغيل على VPS سيادي. تجنّب وضع Next.js فقط (دون خادم منفصل) لعمليات نشر الخليج — فهو يجعل فرض حدود التعامل مع البيانات أصعب.
3
استبدل Supabase Auth بطبقة JWT مُستضافة ذاتيًا
في موجّهك، حدّد 'No Supabase Auth — use JWT with refresh tokens stored in httpOnly cookies.' سيهيّئ مايندلاب نظام مصادقة JWT كاملاً داخل خادمك لا يخزّن أي بيانات مستخدم على خدمات مُدارة خارجية.
4
أعلن قيد النشر في موجّهك
سيعدّل مايندلاب تهيئة Docker Compose والنشر المُولّدة لاستهداف إعداد خادم واحد أو في الموقع بدلاً من التحوّل افتراضيًا إلى Vercel أو Railway.
text
Stack: Next.js frontend, Go Fiber backend,
self-hosted PostgreSQL (UAE data residency required).

Auth: JWT with refresh tokens in httpOnly cookies.
No Supabase. No third-party auth services.
Deploy target: Docker Compose on a single Ubuntu 24.04 VPS.

All data must remain within UAE infrastructure.
ℹ
ملاحظة.لا يقدّم مايندلاب استشارات امتثال قانونية. إن كان تطبيقك يجب أن يلبّي متطلّبات تنظيمية محدّدة (قانون حماية البيانات في مركز دبي المالي العالمي، أو نظام حماية البيانات السعودي PDPL، أو غيرها)، فاستشِر مستشارًا قانونيًا مؤهّلاً. التهيئة أعلاه نقطة انطلاق تقنية، وليست شهادة امتثال.
الخطوات التالية
→ العودة إلى الدليل