معظم دروس معارض الأعمال تلجأ فوراً إلى قاعدة بيانات. لكن لموقع شخصي بمسؤول واحد، تُضيف قاعدة البيانات تعقيد البنية التحتية دون فائدة حقيقية. ملفات JSON على نظام الملفات، مع Server Actions في Next.js وrevalidatePath، تمنحك نفس تجربة المطور بدون أي عبء تشغيلي.
طبقة البيانات
دالتان مساعدتان — readData<T>(filename) وwriteData<T>(filename, data) — تُغلّفان fs.promises.readFile وwriteFile. كل وحدة بيانات (projects.ts وskills.ts وblogs.ts) تستدعيهما بتعميمات محددة النوع. بسيط ومتسق وسهل الاستبدال بقاعدة بيانات حقيقية لاحقاً.
إبطال التخزين المؤقت مع revalidatePath
بعد كل كتابة، استدعِ revalidatePath('/') والمسار الفرعي ذي الصلة. يُنقّي Next.js الحمولة المخزّنة مؤقتاً لـ RSC، ويعكس تحميل الصفحة التالي التحديث فوراً. لا استطلاع، لا webhooks، لا تعقيد.
متى تنتقل إلى قاعدة بيانات
إذا كنت تحتاج محررين متزامنين متعددين، أو تحكماً في الوصول على مستوى الصف، أو بحثاً في النص الكامل، أو منصة نشر لا تدعم نظام الملفات القابل للكتابة، فقد حان الوقت لقاعدة بيانات. حتى ذلك الحين، ملفات JSON مناسبة تماماً — وهي قابلة للإدارة في git بشكل تلقائي.