الهدف
بنهاية الدرس عندك Next.js app منشور على Vercel، DATABASE_URL معرّف في الـ environment variables، والـ API route تشتغل على الـ live URL.
ليش هذا الحين؟
ترى "يشتغل على جهازي" = مو منتج. المنتج هو اللي يشتغل على سيرفر يوصله الناس. الفجوة بين localhost و production هي المكان اللي تموت فيه أغلب المشاريع. هالدرس يعبّرك من localhost لـ production.
الفكرة
Hosting = مكان يشتغل فيه كودك 24/7. ثلاث خدمات تحتاجها:
Vercel — للـ Next.js و frontend:
- Zero config — تربطه بـ GitHub، يبني وينشر تلقائيا
- كل
git push= deployment جديد - مجاني للـ hobby projects
- يدير SSL، CDN، edge functions بدون أي إعداد منك
Railway — للـ backend workers و long-running processes:
- لو عندك cron job أو queue processor — هنا يعيش
- ما يناسب Next.js نفسه (Vercel أفضل له)
Neon — للـ database (غطّيناه في الدرس 03):
- Serverless Postgres
- مجاني للـ development و small production
CI/CD = Continuous Integration / Continuous Deployment:
- CI: كل push يشغّل tests تلقائيا — لو فشلت، ماكو نشر
- CD: لو نجحت، ينشر تلقائيا
ليش CI مهم؟ لأن "يشتغل على جهازي" مو كافي. الـ CI يشتغل في بيئة نظيفة = نفس بيئة production. لو الكود اشتغل عليها = فعلا يشتغل.
دورة الـ Deploy:
git push → GitHub → Vercel يكتشف التغيير
→ يبني المشروع (npm run build)
→ يشغّل الـ checks
→ ينشر على الـ URL