
دليل Directus CMS: نظام إدارة محتوى headless يعتمد أولاً على قاعدة البيانات للمطورين
معظم أنظمة إدارة المحتوى headless تطلب منك بناء نموذج بياناتك داخل منظومتها. Directus يقلب هذه المعادلة — يُغلّف قاعدة بياناتك SQL الموجودة ويمنحك واجهات REST وGraphQL فورية دون المساس بمخططك. مع ~34.5 ألف نجمة على GitHub واعتماده من شركات كـ Tripadvisor وAdobe وMercedes-Benz، فهو من أكثر الخيارات مفتوحة المصدر قدرةً ضمن أفضل أنظمة إدارة المحتوى headless لعام 2026.
| الخاصية | التفاصيل |
|---|---|
| النوع | نظام إدارة محتوى headless مفتوح المصدر |
| البنية | يعتمد أولاً على قاعدة البيانات (يُغلّف قواعد SQL الموجودة) |
| قواعد البيانات | PostgreSQL، MySQL، MariaDB، SQLite، OracleDB، CockroachDB، MS-SQL |
| الواجهات البرمجية | REST + GraphQL (في آنٍ واحد) |
| الاستضافة الذاتية | مجانية تحت عتبة 5 ملايين دولار (رخصة MIT) |
| السحابة | من 25 دولاراً/شهر |
| ميزات الذكاء الاصطناعي | خادم MCP، مساعد AI (متعدد المزودين) |
| التحرير التعاوني | متاح أصلاً منذ v11.15 |
| الأنسب لـ | الفرق التي لديها قواعد بيانات موجودة، مشاريع تعتمد API أولاً |
| غير مناسب لـ | بناء الصفحات بصرياً، NoSQL، المدونات البسيطة |
| GitHub | ~34.5 ألف نجمة |
| أحدث إصدار | v11.16 (أبريل 2026) |
ما هو Directus CMS؟
Directus هو نظام إدارة محتوى headless مفتوح المصدر يُغلّف أي قاعدة بيانات SQL موجودة بواجهات برمجية REST وGraphQL فورية. خلافاً لـ Strapi أو Payload، لا يُنشئ Directus مخطط قاعدة بيانات خاصاً به — بل يعكس مخططك أنت. يدعم 7 قواعد بيانات تشمل PostgreSQL وMySQL وMariaDB وSQLite وOracleDB وCockroachDB وMS-SQL، وهو مجاني للمؤسسات التي تقل إيراداتها عن 5 ملايين دولار وفقاً لـ التوثيق الرسمي لـ Directus.
تخيّله طبقة ذكية تجلس فوق قاعدة بياناتك. تُحضر قاعدة PostgreSQL موجودة بها 50 جدولاً، توجّه Directus نحوها، وفي غضون دقائق لديك واجهة إدارة كاملة، وتحكم في الصلاحيات القائم على الأدوار، ونقطتا نهاية REST وGraphQL. لا سكريبتات ترحيل. لا إعادة هيكلة للبيانات.
هذا هو معنى "قاعدة البيانات أولاً" عملياً، وهو يختلف جوهرياً عن النهج الكودي الذي يتبعه Strapi (حيث تُعرّف أنواع المحتوى التي تُولّد جداول قاعدة البيانات) أو النهج المُدمج بالإطار الذي يتبعه Payload CMS (حيث يعيش نظام إدارة المحتوى داخل تطبيق Next.js الخاص بك).
شرح بنية "قاعدة البيانات أولاً"
حين وصلنا Directus أول مرة بقاعدة بيانات PostgreSQL موجودة لمشروع عميل، ما فاجأنا هو ضآلة الإعداد المطلوب. Directus يفحص مخطط قاعدة بياناتك تلقائياً — الجداول تصبح "مجموعات"، والأعمدة تصبح "حقولاً" — ويبني واجهة إدارته انطلاقاً مما هو موجود بالفعل.
هذا يعني أن بياناتك لن تُقفل في تنسيق خاص. إن قررت التوقف عن استخدام Directus غداً، تبقى قاعدة بياناتك قاعدة SQL معيارية. جرّب ذلك مع Contentful أو Sanity، حيث يعيش محتواك على خوادمهم بتنسيقهم الخاص.
Directus أيضاً ليس مجرد نظام إدارة محتوى. الفريق يُقدّمه كمنصة بيانات قابلة للتركيب — يستخدمه الناس كـ BaaS (خدمة الواجهة الخلفية)، ولوحات إدارة داخلية، ولوحات بيانات مخصصة. حالة الاستخدام كنظام إدارة محتوى هي الأكثر شيوعاً، لكن البنية تدعم أكثر من ذلك بكثير.
الميزات الرئيسية لـ Directus
يوفر Directus واجهتَي REST وGraphQL بالتوازي، وصلاحيات دقيقة قائمة على الأدوار، ونظام Flows للأتمتة مدمجاً، واستوديو بيانات قابل للسحب والإفلات، وإدارة أصول رقمية، ودعم الدولية أصلاً لأكثر من 50 لغة. منذ v11.15 أصبح التحرير التعاوني ومساعد AI ميزتَين أصليتَين — لا إضافات خارجية.
إليك ما يهمك أكثر إن كنت تُقيّم Directus لمشروع:
واجهتا REST وGraphQL بالتوازي
كلتا الواجهتين متاحتان في آنٍ واحد من البيانات ذاتها دون أي إعداد. لا تختار واحدة دون الأخرى — بل تحصل على الاثنتين معاً. يمكن لفريق الموبايل استخدام REST بينما تستخدم الواجهة الأمامية GraphQL. تتبع الواجهة REST نمطاً واضحاً (/items/{collection}) ونقطة نهاية GraphQL في /graphql.
Flows والأتمتة
Flows هو نظام الأتمتة المحرك بالأحداث في Directus، مدمج مباشرةً في واجهة Data Studio. يمكنك تشغيل سير العمل على أحداث CRUD (إنشاء عنصر، تحديثه، حذفه)، وعلى جداول زمنية (بأسلوب cron)، أو على webhooks. تشمل العمليات إرسال بريد إلكتروني، وتقديم طلبات HTTP، وتشغيل JavaScript مخصص، وتحويل البيانات.
للفرق التي تبني مع الذكاء الاصطناعي، يمتلك Directus حتى خادم Model Context Protocol (MCP) أصلياً — لكن سنتفصّل في ذلك في قسم v11.
الإضافات والتخصيص
يدعم نظام الإضافات hooks (معالجات أحداث جانب الخادم)، ونقاط نهاية مخصصة، ولوحات واجهة المستخدم، وحزم modules كاملة، وعُقد operation لـ Flows. تُبنى الإضافات بـ Vue.js للواجهة الأمامية وبـ Node.js العادي للخلفية. في v11.0 أُعيد هيكلة الإضافات من مجلدات قائمة على الأنواع إلى تنسيق مُجمَّع أنظف.
إليك كيف يقف Directus أمام المنافسين من ناحية الميزات:
| الميزة | Directus | Strapi | Payload | Sanity |
|---|---|---|---|---|
| دعم قواعد البيانات | 7 قواعد SQL | PostgreSQL، SQLite | MongoDB، PostgreSQL | مستضاف (خاص) |
| نوع الواجهة البرمجية | REST + GraphQL | REST (GraphQL كإضافة) | Local API + REST + GraphQL | GROQ + GraphQL |
| الاستضافة الذاتية | نعم (مجانية <5 ملايين $) | نعم (مجانية) | نعم (مجانية) | لا |
| المحرر البصري | Data Studio (يركز على البيانات) | Content-Type Builder | معاينة حية | Sanity Studio |
| الدولية (i18n) | أصلي (50+ لغة) | قائم على الإضافات | على مستوى الحقل | على مستوى المستند |
| الأتمتة | Flows (مدمج) | Lifecycle hooks | Hooks + Jobs | webhooks مدعومة بـ GROQ |
| نموذج التسعير | قائم على الإيرادات (عتبة 5 ملايين $) | قائم على المقاعد | مجاني + سحابة | قائم على الاستخدام |
الجديد في Directus v11 (2025-2026)
أضاف Directus v11 دعم خادم MCP الأصلي (v11.13)، ومساعد AI يدعم OpenAI وAnthropic وGemini (v11.14)، والتحرير التعاوني مع مؤشرات الحضور الحي (v11.15)، وإصدارات المسودة العالمية مع صلاحيات النشر القائمة على الأدوار (v11.16). كل هذه ميزات مدمجة، لا إضافات مجتمعية.
هذا هو المجال الذي يتقدم فيه Directus بأسرع ما يكون، وهو القسم الذي يُغفله معظم المنافسين كلياً. واحد فقط من بين أبرز ستة أدلة تصنيفية يتطرق لأي منها.
خادم MCP ومساعد AI
إصدار v11.13 جعل Directus من أوائل أنظمة إدارة المحتوى التي تمتلك خادم MCP أصلياً. إن كنت تستخدم Claude أو ChatGPT أو أي أداة ذكاء اصطناعي متوافقة مع MCP، فهي تستطيع إدارة محتوى Directus مباشرةً — قراءة المجموعات، وإنشاء العناصر، وتحديث الحقول — كل ذلك مع احترام صلاحيات RBAC الخاصة بك. إن كنت جديداً على MCP، يشرح دليل Model Context Protocol (MCP) البروتوكول بالتفصيل.
مساعد AI (v11.14) منفصل عن MCP — إنه واجهة دردشة مدمجة داخل Data Studio تدعم OpenAI وAnthropic وGemini، وحتى النماذج المحلية عبر Ollama. بحلول v11.16 أصبح متعدد الوسائط: يمكنك رفع الصور وملفات PDF مباشرةً في محادثة الذكاء الاصطناعي لمعالجتها.
التحرير التعاوني وإصدارات المسودة
شُحن التحرير التعاوني في v11.15 مع مؤشرات الحضور الحي (ترى من يُحرّر العنصر ذاته) وقفل على مستوى الحقل لمنع التعارضات. أضاف الإصدار ذاته حزمة نشر Vercel مع صلاحيات نشر قائمة على الأدوار.
v11.16 طوّر تدريج المحتوى أكثر بإصدارات المسودة العالمية. كل عنصر مُصدَّر يحصل تلقائياً على نسخة مسودة. يمكن للمحررين معاينة التغييرات مقابل النسخة الحية والترقية عند الاستعداد. صلاحيات النشر القائمة على الأدوار تتيح لفريق المحتوى تدريج التغييرات دون دفعها بالخطأ إلى الإنتاج.
| الإصدار | التاريخ | الميزات الرئيسية |
|---|---|---|
| v11.0 | 2024 | نظام إضافات جديد، تنسيق مُجمَّع |
| v11.13 | نوفمبر 2025 | دعم خادم MCP الأصلي |
| v11.14 | ديسمبر 2025 | مساعد AI (متعدد المزودين)، واجهة الرأس |
| v11.15 | فبراير 2026 | التحرير التعاوني GA، مساعد AI GA، نشر Vercel |
| v11.16 | أبريل 2026 | إصدارات المسودة العالمية، AI متعدد الوسائط، نشر قائم على الأدوار |
البدء مع Directus (إعداد Docker)
يمكنك تشغيل Directus محلياً بـ Docker في أقل من دقيقتين. أنشئ ملف docker-compose.yml بصورة directus/directus، واضبط اتصال قاعدة البيانات وبيانات اعتماد المسؤول كمتغيرات بيئة، ثم شغّل docker compose up. يبدأ Directus على localhost:8055.
استغرق إعداد Docker أقل من دقيقتين من البداية. إليك ملف docker-compose.yml كاملاً يتضمن PostgreSQL — لا مجرد حاوية Directus، بل المكدس الكامل:
# docker-compose.yml
version: "3"
services:
database:
image: postgis/postgis:16-3.4-alpine
environment:
POSTGRES_USER: directus
POSTGRES_PASSWORD: directus
POSTGRES_DB: directus
volumes:
- directus_data:/var/lib/postgresql/data
directus:
image: directus/directus:11.16
ports:
- "8055:8055"
depends_on:
- database
environment:
KEY: "your-random-key-here"
SECRET: "your-random-secret-here"
ADMIN_EMAIL: "[email protected]"
ADMIN_PASSWORD: "change-me-please"
DB_CLIENT: "pg"
DB_HOST: "database"
DB_PORT: "5432"
DB_DATABASE: "directus"
DB_USER: "directus"
DB_PASSWORD: "directus"
volumes:
- directus_uploads:/directus/uploads
volumes:
directus_data:
directus_uploads:شغّله:
docker compose up -dافتح http://localhost:8055، سجّل الدخول ببيانات اعتماد المسؤول التي ضبطتها، وستكون في Data Studio. من هنا يمكنك إنشاء مجموعات (جداول)، وتعريف حقول (أعمدة)، والبدء في إدارة المحتوى فوراً. متغيرات البيئة KEY وSECRET تُستخدم لتوليد رمز JWT — استخدم سلاسل عشوائية في الإنتاج، لا العناصر النائبة أعلاه.
الاستعلام عن البيانات باستخدام Directus SDK
يوفر Directus JavaScript SDK وصولاً آمناً من حيث الأنواع إلى بياناتك عبر REST وGraphQL معاً. ثبّت @directus/sdk، أنشئ عميلاً بـ createDirectus()، واستخدم readItems() للاستعلام عن المجموعات مع التصفية والترتيب واختيار الحقول.
نمط SDK القابل للتركيب بدا بديهياً بعد العمل مع مكتبات كعميل Supabase. تبدأ بعميل أساسي وتضيف قدرات بتركيب دوال:
// lib/directus.ts
import { createDirectus, rest, readItems, createItem } from '@directus/sdk';
const client = createDirectus('http://localhost:8055').with(rest());
// جلب المقالات المنشورة مع حقول محددة
const articles = await client.request(
readItems('articles', {
fields: ['id', 'title', 'slug', 'content', 'author.name'],
filter: {
status: { _eq: 'published' }
},
sort: ['-date_published'],
limit: 10
})
);إنشاء العناصر يتبع النمط ذاته:
// إنشاء مقالة جديدة
const newArticle = await client.request(
createItem('articles', {
title: 'My New Post',
slug: 'my-new-post',
content: '<p>Hello from Directus.</p>',
status: 'draft'
})
);للمصادقة، تختار بين staticToken() (للتواصل بين الخوادم) وauthentication() (للتطبيقات التي تواجه المستخدم بتدفقات تسجيل دخول):
import { createDirectus, rest, staticToken } from '@directus/sdk';
// جانب الخادم مع رمز ثابت
const client = createDirectus('http://localhost:8055')
.with(staticToken('your-api-token'))
.with(rest());أمثلة على واجهة REST البرمجية
لكل طريقة في SDK نقطة نهاية REST مكافئة. إن كنت تفضل العمل مع curl أو fetch مباشرةً:
# جلب المقالات المنشورة
curl "http://localhost:8055/items/articles?filter[status][_eq]=published&sort=-date_published&limit=10&fields=id,title,slug"
# إنشاء عنصر جديد
curl -X POST "http://localhost:8055/items/articles" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "My Post", "status": "draft"}'استعلامات GraphQL
البيانات ذاتها متاحة عبر GraphQL على /graphql:
query {
articles(
filter: { status: { _eq: "published" } }
sort: ["-date_published"]
limit: 10
) {
id
title
slug
content
author {
name
}
}
}لا حاجة لإعداد GraphQL أو تفعيله منفصلاً — فهو متاح دائماً إلى جانب REST.
Directus مع Next.js (تكامل الإطار)
يستغرق توصيل Directus بـ Next.js ثلاث خطوات: ثبّت @directus/sdk، أنشئ عميل lib/directus.ts، واجلب البيانات في Server Components باستخدام readItems(). يُعيد Directus JSON خاماً، لذا لديك تحكم كامل في التصيير دون مكونات خاصة بالمزود.
هذا أنظف جزء في العمل مع Directus. لا محوّل إطار خاص، لا مكونات React خاصة بـ Directus، لا إضافة بناء. مجرد جلب بيانات. إن كنت عملت مع أي REST API في Next.js، أنت تعرف كيف يعمل هذا بالفعل. للسياق حول اختيارات الإطار، راجع مقارنة Next.js وRemix.
أولاً، أنشئ العميل المشترك (هذا الملف ذاته من قسم SDK، لكن مُهيّأ لنسختك المُوزَّعة):
// lib/directus.ts
import { createDirectus, rest, staticToken, readItems } from '@directus/sdk';
const directus = createDirectus(process.env.DIRECTUS_URL!)
.with(staticToken(process.env.DIRECTUS_TOKEN!))
.with(rest());
export default directus;
export { readItems };ثم استخدمه في Server Component — لا useEffect، لا حالات تحميل، مجرد async/await:
// app/blog/page.tsx
import directus, { readItems } from '@/lib/directus';
export default async function BlogPage() {
const posts = await directus.request(
readItems('posts', {
fields: ['id', 'title', 'slug', 'excerpt', 'date_published'],
filter: { status: { _eq: 'published' } },
sort: ['-date_published'],
})
);
return (
<main>
<h1>Blog</h1>
{posts.map((post) => (
<article key={post.id}>
<h2><a href={`/blog/${post.slug}`}>{post.title}</a></h2>
<p>{post.excerpt}</p>
<time>{post.date_published}</time>
</article>
))}
</main>
);
}هذا كل شيء. لا تقييد بمزود معين. الأسلوب ذاته يعمل مع Astro وNuxt وSvelteKit وأي إطار قادر على تقديم طلبات HTTP. تضمّ وثائق Directus الرسمية أدلة خاصة بـ Astro وNuxt إن أردتها، لكن النمط متطابق: أنشئ العميل، استدع readItems()، قدّم.
تسعير Directus وترخيصه (2026)
Directus مجاني للاستضافة الذاتية تحت رخصة MIT للمؤسسات التي تقل إيراداتها السنوية أو تمويلها عن 5 ملايين دولار. فوق هذا الحد يُطلب ترخيص تجاري للاستخدام في الإنتاج. تبدأ Directus Cloud من 25 دولاراً/شهر (Starter) وتتراوح خطط Professional بين 49 و499 دولاراً/شهر، وفقاً لـ صفحة التسعير الخاصة بهم.
عتبة الـ 5 ملايين دولار في الإيرادات
هذه الحقيقة التجارية الأكثر أهمية بشأن Directus، ومعظم الأدلة إما تدفنها أو تتجاهلها كلياً. إليك كيف تعمل:
- دون 5 ملايين دولار سنوياً في الإيرادات أو التمويل الكلي: مجاني للأبد. رخصة MIT. استضف في أي مكان. لا قيود على الميزات.
- فوق 5 ملايين دولار في الإنتاج: تحتاج ترخيصاً تجارياً. تواصل مع مبيعات Directus للتسعير.
- التطوير والاختبار: مجانيان دائماً بصرف النظر عن حجم الشركة. العتبة تنطبق فقط على بيئات الإنتاج.
يشمل رقم الـ 5 ملايين دولار تمويل رأس المال الجريء، ليس الإيرادات فحسب. لذا شركة ناشئة في مرحلة بذرية بتمويل 6 ملايين دولار تقنياً تتجاوز هذه العتبة. من الناحية العملية، Directus لم تكن عدوانية في التطبيق على الشركات في مراحلها المبكرة، لكن يجب أخذ هذا بعين الاعتبار في تخطيطك.
خطط السحابة
إن لم تكن تريد إدارة البنية التحتية، تتولى Directus Cloud الاستضافة والنسخ الاحتياطي والتحديثات:
- Starter: 25 دولاراً/شهر — مناسب للمشاريع الصغيرة والمواقع الشخصية
- Professional: 49-499 دولاراً/شهر — يتوسع مع التخزين وعرض النطاق وتحويلات الأصول
- Enterprise: تسعير مخصص — اتفاقية مستوى الخدمة، بنية تحتية مخصصة، دعم ذو أولوية
لا ترخيص بالمقعد. فريقك كله يستخدم الخطة ذاتها. قارن ذلك بـ Contentful الذي يحتسب رسوماً لكل مستخدم (راجع تفصيل تسعير Contentful)، أو Sanity الذي يحتسب رسوماً بناءً على استخدام الواجهة البرمجية وعرض نطاق مجموعة البيانات.
| نظام إدارة المحتوى | الطبقة المجانية | بداية التسعير المدفوع | نموذج التسعير | الاستضافة الذاتية |
|---|---|---|---|---|
| Directus | نعم (<5 ملايين $ إيرادات) | 25 $/شهر (سحابة) | قائم على الإيرادات | نعم |
| Strapi | نعم (مفتوح المصدر كلياً) | 29 $/شهر (سحابة) | قائم على المقاعد | نعم |
| Payload | نعم (مفتوح المصدر كلياً) | سحابة (تجريبي) | قيد التحديد | نعم |
| Contentful | نعم (محدود) | 300 $/شهر | مقعد + استخدام | لا |
| Sanity | نعم (محدود) | 15 $/شهر | قائم على الاستخدام | لا |
Directus مقابل Strapi مقابل Payload: مقارنة شاملة
يُغلّف Directus قواعد البيانات الموجودة دون ترحيل، بينما يُولّد Strapi مخططه الخاص من أنواع المحتوى، ويُدمج Payload مباشرةً في تطبيق Next.js الخاص بك. يدعم Directus 7 قواعد بيانات، وStrapi قاعدتَين، وPayload قاعدتَين. الثلاثة مفتوحو المصدر، لكن فلسفاتهم مختلفة جداً.
بعد بناء مشاريع مع Strapi وDirectus على حد سواء، أكبر فرق هو كيفية تفكيرهم في قاعدة بياناتك. مع Strapi، تُعرّف أنواع المحتوى في واجهة الإدارة أو الكود، وينشئ Strapi جداول قاعدة البيانات ويديرها نيابةً عنك. مع Directus، قاعدة البيانات هي مصدر الحقيقة — Directus يقرأها ويتكيف معها.
| الميزة | Directus | Strapi | Payload |
|---|---|---|---|
| البنية | قاعدة البيانات أولاً (يُغلّف قاعدة البيانات الموجودة) | كود أولاً (يُولّد قاعدة البيانات من النماذج) | مُدمج بالإطار (يعيش في Next.js) |
| قواعد البيانات | PostgreSQL، MySQL، MariaDB، SQLite، OracleDB، CockroachDB، MS-SQL | PostgreSQL، SQLite | MongoDB، PostgreSQL |
| الواجهات البرمجية | REST + GraphQL (كلاهما أصلي) | REST (GraphQL كإضافة) | Local API + REST + GraphQL |
| واجهة الإدارة | Data Studio (Vue.js) | Content Manager (React) | Admin Panel (React، مُدمج) |
| نجوم GitHub | ~34.5 ألف | ~68 ألف | ~33 ألف |
| الاستضافة السحابية | Directus Cloud (25 $/شهر+) | Strapi Cloud (29 $/شهر+) | Payload Cloud (تجريبي) |
متى تختار Directus: لديك قاعدة بيانات موجودة، تريد REST+GraphQL بالتوازي من البداية، أو تحتاج دعم قواعد بيانات أقل شيوعاً كـ OracleDB أو CockroachDB.
متى تختار Strapi: تريد المنظومة الأكبر والمجتمع الأوسع، تفضل تعريف أنواع المحتوى عبر الواجهة، أو تبدأ من صفر دون قاعدة بيانات موجودة. اقرأ دليلنا الكامل عن Strapi للتفاصيل.
متى تختار Payload: تريد نظام إدارة المحتوى مُدمجاً مباشرةً في تطبيق Next.js، تفضل الإعداد المعتمد على TypeScript أولاً، أو تحتاج Local API يتخطى HTTP كلياً. راجع تعمقنا في Payload CMS للصورة الكاملة.
متى لا تستخدم Directus
Directus ليس الخيار الصحيح إن كنت تحتاج محرراً بصرياً للصفحات، أو إطاراً متكاملاً مع Next.js، أو خلفية NoSQL. كما أنه يضيف تعقيداً للمشاريع البسيطة التي تكفيها نظام ملفات مسطحة أو WordPress.
رأينا فرقاً تختار Directus حين لا ينبغي لها ذلك، والنمط عادةً واحد من هؤلاء:
- تحتاج محرراً بصرياً للصفحات. Data Studio في Directus ممتاز لإدارة البيانات المنظمة، لكنه ليس منشئ مواقع بالسحب والإفلات. إن كان التحرير البصري أولويتك، انظر إلى Storyblok — راجع دليلنا عن Storyblok لمقارنة ذلك.
- ملتزم بـ NoSQL. Directus حصراً لـ SQL بتصميم. إن كانت بياناتك في MongoDB، فـ Payload CMS هو الخيار الطبيعي.
- مشروعك مدونة بسيطة. إقامة Docker وPostgreSQL وDirectus لمدونة شخصية مبالغة واضحة. WordPress أو Astro مع ملفات markdown أو حتى Ghost ستوصلك إلى النشر بجزء بسيط من الوقت.
- تريد CMS مُدمجاً بالإطار. إن أردت نظام إدارة المحتوى يعيش داخل قاعدة كود Next.js كمواطن درجة أولى، يفعل Payload هذا أصلاً. Directus دائماً خدمة منفصلة.
- أنت منظمة كبيرة. إن تجاوزت شركتك عتبة 5 ملايين دولار، ستحتاج ترخيصاً تجارياً للإنتاج. قيّم هذه التكلفة مقابل البدائل مفتوحة المصدر كلياً كـ Strapi أو Payload، حيث الاستضافة الذاتية مجانية بصرف النظر عن الإيرادات.
لا شيء من هذه عيوب — إنها قرارات تصميم. Directus منصة بيانات، لا منشئ مواقع. معرفة الفرق توفر عليك أشهراً من الإحباط.
الأسئلة الشائعة
ما هو Directus CMS؟
Directus هو نظام إدارة محتوى headless مفتوح المصدر يُغلّف أي قاعدة بيانات SQL موجودة بواجهات برمجية REST وGraphQL فورية. يدعم PostgreSQL وMySQL وMariaDB وSQLite وOracleDB وCockroachDB وMS-SQL. خلافاً لأنظمة إدارة المحتوى التقليدية، لا يُنشئ Directus مخططه الخاص — بل يقرأ بنية قاعدة بياناتك الموجودة ويعكسها تلقائياً.
هل Directus مجاني فعلاً؟
Directus مجاني للاستضافة الذاتية تحت رخصة MIT للمؤسسات التي تقل إيراداتها السنوية أو تمويلها الكلي عن 5 ملايين دولار. فوق هذه العتبة تحتاج ترخيصاً تجارياً للاستخدام في الإنتاج. بيئات التطوير والاختبار مجانية دائماً. تبدأ Directus Cloud، استضافتهم المُدارة، من 25 دولاراً شهرياً.
كيف يختلف Directus عن Strapi؟
Directus يعتمد قاعدة البيانات أولاً — يُغلّف قاعدة SQL الموجودة دون تعديل المخطط. Strapi يعتمد الكود أولاً — تُعرّف أنواع المحتوى وينشئ Strapi جداول قاعدة البيانات. يدعم Directus 7 قواعد بيانات بينما يدعم Strapi 2. كلاهما يوفر REST API، لكن Directus يتضمن GraphQL أصلاً بينما يحتاجه Strapi كإضافة.
ما قواعد البيانات التي يدعمها Directus؟
يدعم Directus سبع قواعد بيانات SQL: PostgreSQL وMySQL وMariaDB وSQLite وOracleDB وCockroachDB وMS-SQL. يتصل بقاعدة بياناتك الموجودة ويفحص المخطط تلقائياً. هذا الدعم متعدد قواعد البيانات فريد بين أنظمة إدارة المحتوى headless — معظم المنافسين يدعمون واحدة أو اثنتين فقط.
هل يمكن لـ Directus أن يحل محل WordPress؟
يمكن لـ Directus أن يحل محل WordPress في إدارة المحتوى، خاصةً للمشاريع headless أو المعتمدة على API. لكن Directus لا يمتلك واجهة أمامية مدمجة ولا قوالب ولا منشئ صفحات. ستحتاج إلى بناء واجهتك الأمامية بإطار كـ Next.js أو Astro. للمدونات البسيطة أو المواقع التي تحتاج تحريراً بصرياً، يظل WordPress أكثر عملية.
هل يمتلك Directus محرراً بصرياً؟
يتضمن Directus Data Studio — واجهة إدارة قوية لإدارة البيانات المنظمة وبناء لوحات البيانات وضبط الصلاحيات. لكنه لا يمتلك منشئ صفحات بصرياً أو محرر مواقع WYSIWYG كـ Storyblok أو WordPress. Directus مُصمَّم لإدارة البيانات، لا لتأليف الصفحات بالسحب والإفلات.
هل Directus مناسب للتجارة الإلكترونية؟
يعمل Directus بشكل جيد كنظام لإدارة معلومات المنتجات — يمكنك نمذجة كتالوجات المنتجات وإدارة السمات وتقديم البيانات عبر الواجهات البرمجية. لكنه ليس منصة تجارة إلكترونية. لن تجد عربة تسوق أو تدفق دفع أو معالجة مدفوعات. اجمعه مع Shopify أو Saleor أو Medusa للطبقة المعاملاتية.
هل يمكنني استخدام Directus مع Next.js؟
نعم. ثبّت حزمة @directus/sdk، أنشئ عميلاً يشير إلى نسخة Directus الخاصة بك، واجلب البيانات في Server Components باستخدام readItems(). يُعيد Directus JSON عادياً، لذا لا حاجة لمكونات React خاصة بالمزود. الأسلوب ذاته يعمل مع أي إطار JavaScript بما فيها Astro وNuxt وSvelteKit.
هل يدعم Directus التحرير التعاوني؟
نعم، منذ الإصدار 11.15 (فبراير 2026). يمتلك Directus تحريراً تعاونياً أصلياً مع مؤشرات الحضور الحي التي تُظهر من يُحرّر ماذا، وقفل على مستوى الحقل لمنع التعارضات. هذه ميزة مدمجة لا إضافة. بالاقتران مع إصدارات المسودة العالمية في v11.16، يمكن للفرق تدريج التغييرات ومعاينتها قبل النشر.
ما هو خادم Directus MCP؟
قدّم Directus خادم Model Context Protocol الأصلي في v11.13 (نوفمبر 2025). يتيح MCP لأدوات الذكاء الاصطناعي كـ Claude وChatGPT التفاعل مع محتوى Directus مباشرةً — قراءة العناصر وإنشاؤها وتحديثها عبر اللغة الطبيعية. يحترم خادم MCP صلاحيات RBAC الموجودة لديك، لذا وصول الذكاء الاصطناعي يتبع القواعد ذاتها التي يتبعها المستخدمون البشريون.