مدونة NextJS الأساسية: بداية مدونة حديثة باستخدام Next.js 15 و Tailwind

إذا كنت تبحث عن قالب مدونة حديث مبني باستخدام Next.js ، فإن مشروع NextJS Base Blog يُعد نقطة انطلاق ممتازة. إنه تطبيق مدونة مفتوح المصدر كامل الميزات، مبني باستخدام Next.js 15 وReact 19 وTypeScript وTailwind CSS 4 .

يوفر المشروع بنية نظيفة وواجهة مستخدم حديثة componentsوطبقة واجهة برمجة تطبيقات وهمية ، مما يجعله مثالياً للمطورين الذين يرغبون في إنشاء مدونة بسرعة دون إعداد نظام خلفي.

مستودع GitHub: https://github.com/bfotool/nextjs-base-blog

يُعد هذا المشروع مفيدًا بشكل خاص لما يلي:

  • مطورون يتعلمون تطبيق Next.jsRouter

  • إنشاء مدونة أو موقع ويب للمحتوى بسرعة

  • إنشاء مشروع Next.js جاهز

  • تطوير ميزات واجهة المستخدم قبل ربط واجهة برمجة التطبيقات الخلفية الحقيقية

نظرة عامة على المشروع

تم تصميم NextJS Base Blog كقالب مدونة جاهز للإنتاج مع العديد من الميزات الشائعة الموجودة في مواقع المحتوى الحديثة.

يشمل المشروع ما يلي:

  • صفحة رئيسية تحتوي على منشورات مميزة

  • صفحات منشورات المدونة

  • تصفية الفئات

  • البحث في النص الكامل

  • ترقيم الصفحات

  • جدول المحتويات

  • منشورات ذات صلة

  • الوضع الداكن/الفاتح

من أبرز جوانب المشروع طبقة واجهة برمجة التطبيقات الوهمية ، التي تحاكي واجهة برمجة تطبيقات REST باستخدام مُعترضات Axios. وهذا يُمكّن المطورين من بناء التطبيق واختباره دون الحاجة إلى خادم خلفي .

الميزات الرئيسية

الصفحة الرئيسية

تعرض الصفحة الرئيسية عدة أقسام مهمة:

  • منشور البطل المميز

  • فلاتر الفئات

  • شبكة من منشورات المدونة

  • التنقل بين الصفحات

التصميم متجاوب تمامًا ومُحسَّن لكل من أجهزة سطح المكتب والأجهزة المحمولة.

صفحة منشور المدونة

يمكن الوصول إلى كل مقال عبر مسار ديناميكي:

/blog/[slug]

تتضمن صفحة تدوينة المدونة العديد من الميزات المفيدة:

  • محتوى المقال الكامل

  • جدول المحتويات التلقائي

  • الوقت المقدر للقراءة

  • أزرار المشاركة على مواقع التواصل الاجتماعي

  • اقتراحات لمنشورات ذات صلة

تساعد هذه الميزات في خلق تجربة قراءة احترافية مماثلة لمنصات التدوين الحديثة.

صفحات الفئات

يمكن للمستخدمين تصفح المنشورات حسب الفئة.

مثال على المسار:

/blog/category/[slug]

تتيح هذه الميزة للقراء استكشاف المحتوى ضمن مواضيع محددة.

وظيفة البحث

يتضمن المشروع صفحة بحث مدمجة:

/search

يدعم البحث ما يلي:

  • نتائج فورية

  • مدخلات مُعالجة لإزالة الارتداد

  • البحث في العناوين والمقتطفات والوسوم

هذا يحسن سهولة الاستخدام ويساعد المستخدمين على إيجاد المحتوى ذي الصلة بسرعة.

صفحات "نبذة عنا" و"اتصل بنا"

يتضمن المشروع أيضاً صفحات إضافية توجد عادةً في المدونات المهنية.

صفحة "نبذة عنا"

صفحة "نبذة عنا" تقدم:

  • الفريق

  • قصة المشروع

  • القيم الأساسية

صفحة الاتصال

تتضمن صفحة الاتصال نموذجًا تم التحقق من صحته بالكامل مع ما يلي:

  • التحقق من صحة النموذج

  • إشعارات منبثقة

  • ملاحظات حول النجاح والخطأ

دعم الوضع الداكن

يدعم الموقع الوضع الداكن والوضع الفاتح .

تشمل الميزات ما يلي:

  • الكشف التلقائي عن سمات النظام

  • تبديل يدوي

  • حفظ السمات باستخدام التخزين المحلي

طبقة واجهة برمجة تطبيقات وهمية(تطوير بدون واجهة خلفية)

أحد أكثر الأجزاء إثارة للاهتمام في هذا المشروع هو نظام واجهة برمجة التطبيقات المزيفة الخاص به .

بدلاً من استدعاء خادم حقيقي، يستخدم التطبيق معترضات Axios لمحاكاة استجابات REST API.

كيف تعمل واجهة برمجة التطبيقات المزيفة

  1. يتم إنشاء مثيل Axios في:

src/services/api-client.ts
  1. عند تفعيل متغير البيئة:

NEXT_PUBLIC_USE_MOCK_API=true
  1. يتم اعتراض الطلبات قبل وصولها إلى الشبكة.

  2. تقوم معالجات المحاكاة بإرجاع استجابات وهمية مع تأخيرات واقعية(200-600 مللي ثانية).

  3. تتصرف الاستجابات مثل استجابات واجهة برمجة التطبيقات الحقيقية.

يتم تخزين البيانات الوهمية في:

src/mocks/

مشتمل:

  • نماذج من المنشورات

  • المؤلفون

  • فئات

نقاط نهاية واجهة برمجة التطبيقات المتاحة

تدعم واجهة برمجة التطبيقات الوهمية عدة نقاط نهاية:

طريقة نقطة النهاية وصف
يحصل /دعامات منشورات المدونة ذات الصفحات
يحصل /posts/featured المقالات المميزة
يحصل /posts/:slug منشور مدونة واحد
يحصل /فئات قائمة الفئات
يحصل /المؤلفون قائمة المؤلفين
بريد /اتصال إرسال نموذج الاتصال

مجموعة التقنيات

يستخدم المشروع مجموعة أدوات واجهة أمامية حديثة.

طبقة تكنولوجيا
نطاق Next.js 15
مكتبة واجهة المستخدم رد الفعل 19
لغة تايب سكريبت
تصميم Tailwind CSS 4
عميل HTTP أكسيوس
أيقونات تفاعل لوسيد
إزالة الوبر ESLint
التنسيق أجمل

توفر هذه الحزمة ما يلي:

  • أمان النوع القوي

  • بنية قابلة للصيانة

  • تجربة مطور حديثة

هيكل المشروع

يتبع هيكل المشروع بنية نظيفة وقابلة للتطوير.

src/ 
├── app/ 
├── components/ 
├── services/ 
├── mocks/ 
├── contexts/ 
├── hooks/ 
├── types/ 
└── lib/ 

برنامجRouter

يحتوي الدليل appعلى جميع مسارات التطبيق.

أمثلة:

app/page.tsx 
app/blog/[slug]/page.tsx 
app/search/page.tsx 

يتبع هذا بنية تطبيق Next.jsRouter التي تم تقديمها في الإصدارات الأحدث من Next.js.

عناصر

componentsيتم تنظيم واجهة المستخدم في مجموعات منطقية:

components/layout 
components/common 
components/blog 

يحافظ هذا الهيكل على تنظيم كود واجهة المستخدم ويسهل صيانته.

طبقة الخدمات

يحتوي المجلد servicesعلى منطق متعلق بواجهة برمجة التطبيقات(API):

  • تكوين عميل واجهة برمجة التطبيقات

  • خدمة البريد

  • فئة الخدمة

  • خدمة نموذج الاتصال

تفصل هذه الطبقة منطق جلب البيانات عن واجهة المستخدمcomponents ، مما يحسن قابلية التوسع.

دليل التثبيت

متطلبات

قبل البدء، تأكد من أن لديك ما يلي:

  • Node.js 18 أو أحدث

  • npm أو yarn أو pnpm

استنساخ المستودع

git clone https://github.com/bfotool/nextjs-base-blog.git 
cd nextjs-base-blog 

تثبيت التبعيات

npm install

ضبط متغيرات البيئة

cp .env.example .env

ابدأ تشغيل خادم التطوير

npm run dev

افتح متصفحك وقم بزيارة:

http://localhost:3000

النصوص البرمجية المتاحة

يأمر وصف
npm run dev بدء تشغيل خادم التطوير
npm run build إنشاء نسخة إنتاجية
npm run start بدء تشغيل خادم الإنتاج
npm run lint قم بتشغيل ESLint
تنسيق تشغيل npm تنسيق الكود باستخدام Prettier
npm run type-check قم بتشغيل عمليات التحقق من TypeScript

التحويل إلى واجهة برمجة تطبيقات حقيقية

إذا كنت ترغب في ربط المشروع بواجهة برمجة تطبيقات خلفية حقيقية، فاتبع هذه الخطوات.

الخطوة 1: تعطيل واجهة برمجة التطبيقات الوهمية

قم بتحرير .envالملف:

NEXT_PUBLIC_USE_MOCK_API=false

الخطوة الثانية: تعيين عنوان URL الأساسي لواجهة برمجة التطبيقات

NEXT_PUBLIC_API_BASE_URL=https://your-api-server.com

الخطوة 3: مطابقة أنواع البيانات

تأكد من أن واجهة برمجة التطبيقات الخلفية الخاصة بك تُرجع بيانات مطابقة لتعريفات TypeScript في:

src/types/index.ts

لا يلزم إجراء أي تغييرات إضافية على الكود.

تخصيص المحتوى

يمكن تعديل المحتوى التجريبي من الداخل:

src/mocks/posts.ts 
src/mocks/categories.ts 
src/mocks/authors.ts 

يتيح ذلك للمطورين تخصيص محتوى العرض التوضيحي بسرعة.

تخصيص المظهر وواجهة المستخدم

يمكن العثور على التصميم العالمي في:

src/app/globals.css

يستخدم المشروع الخطوط التالية:

  • دي إم سانس

  • JetBrains Mono

يمكنك تعديل الأنماط أو استبدال الخطوط حسب متطلبات التصميم الخاصة بك.

خاتمة

NextJS Base Blog هو قالب بداية قوي وحديث لبناء مدونة باستخدام Next.js.

تشمل المزايا الرئيسية للمشروع ما يلي:

  • مجموعة التقنيات الحديثة

  • هندسة معمارية نظيفة

  • واجهة برمجة تطبيقات وهمية للتطوير

  • سهولة التكامل مع واجهات برمجة التطبيقات الخلفية الحقيقية

  • واجهة مستخدم سريعة الاستجابة وميزات حديثة

إذا كنت تقوم بإنشاء مدونة أو موقع ويب للمطورين أو منصة محتوى باستخدام Next.js، فإن هذا المستودع يمكن أن يوفر لك وقتًا كبيرًا في التطوير.

استكشف شفرة المصدر هنا: https://github.com/bfotool/nextjs-base-blog