Next.js 16 vs Remix
Next.js 16 (بـ Turbopack كافتراضي وPartial Prerendering) مقابل Remix (من Shopify، قائم على معايير الويب) — مقارنة بين أطر عمل React الفوقية (meta-frameworks) لعام 2026.
منصة مُدارة تتولى كل شيء تلقائيًا بعد git push
خادم بأجر شهري ثابت، تحكم كامل، مسؤولية كاملة
لا يوجد فائز حاسم، بل نموذجا مسؤولية مختلفان. إذا كانت حركة المرور متقطعة (spiky) ولا تملك قدرة DevOps، فإن التوسع التلقائي في Vercel يستحق تكلفته. أما إذا كانت حركة المرور متوسطة ويمكن التنبؤ بها ولديك انضباط راسخ في systemd/nginx/Cloudflare، فإن Hetzner + Cloudflare يثبّت الفاتورة ويمنحك ميزة من ناحية حماية البيانات. نقطة الانكسار: حجم عرض النطاق الترددي وكتابة ISR — قِسها لمدة شهر، ثم قرّر.
| الفئة | Vercel | Hetzner VPS (self-host) |
|---|---|---|
| الأداء | 8/10 | 7/10 |
| سهولة التعلّم | 9/10 | 5/10 |
| النظام البيئي | 9/10 | 7/10 |
| المجتمع | 8/10 | 7/10 |
| سوق العمل | 7/10 | 7/10 |
| الاستدامة المستقبلية | 8/10 | 8/10 |
# Vercel — سيناريو نشر Next.js بدون إعداد + متغير بيئة + مثال Edge Config
# 1) في جذر المشروع، ضبط منطقة الدالة والـ cron عبر vercel.json
{
"regions": ["fra1"],
"crons": [
{ "path": "/api/cron/revalidate", "schedule": "0 */6 * * *" }
]
}
# 2) النشر عبر CLI (البناء+TLS+CDN تلقائيًا)
npx vercel --prod
# 3) لتقليل تكلفة وحدة كتابة ISR (وحدة واحدة = 8 كيلوبايت، لا حصة مُضمَّنة)
# اضبط مدة revalidate حسب حركة المرور
export const revalidate = 3600; // إعادة التوليد كل ساعة
# 4) لتقليل Fast Origin Transfer، اجبر
# مخرجات الدالة على التخزين المؤقت الثابت
export async function GET() {
return Response.json(
{ data: "ok" },
{ headers: { "Cache-Control": "public, s-maxage=600" } }
);
}# Hetzner VPS — استضافة ذاتية لـ Next.js standalone + systemd + nginx
# 1) next.config.js — وضع الإخراج standalone (حسب دليل الاستضافة الذاتية الرسمي)
module.exports = {
output: "standalone",
};
# 2) البناء + نسخ ملفات standalone
npm run build
cp -r .next/static .next/standalone/.next/static
cp -r public .next/standalone/public
# 3) وحدة systemd — إدارة العمليات (مثال portfolio-ssr.service)
[Unit]
Description=Next.js standalone server
After=network.target
[Service]
Type=simple
User=portfolio
WorkingDirectory=/var/www/app/.next/standalone
ExecStart=/usr/bin/node server.js
Restart=on-failure
Environment=PORT=4000
NoNewPrivileges=true
ProtectHome=true
[Install]
WantedBy=multi-user.target
# 4) بروكسي عكسي nginx (توصية Next.js الرسمية)
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:4000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 5) تثبيت sharp — إلزامي لتحسين الصور (Image Optimization)
npm install sharpلا يوجد فائز حاسم، بل نموذجا مسؤولية مختلفان. إذا كانت حركة المرور متقطعة (spiky) ولا تملك قدرة DevOps، فإن التوسع التلقائي في Vercel يستحق تكلفته. أما إذا كانت حركة المرور متوسطة ويمكن التنبؤ بها ولديك انضباط راسخ في systemd/nginx/Cloudflare، فإن Hetzner + Cloudflare يثبّت الفاتورة ويمنحك ميزة من ناحية حماية البيانات. نقطة الانكسار: حجم عرض النطاق الترددي وكتابة ISR — قِسها لمدة شهر، ثم قرّر.
احصل على استشارة مجانيةالنسبة الدقيقة تعتمد على حجم حركة المرور وكتابة ISR، لكن الفرق البنيوي واضح: تفرض Vercel Pro رسمًا أساسيًا قدره 20 دولارًا شهريًا بالإضافة إلى رسوم إضافية قائمة على الاستخدام (نقل البيانات السريع 0.15 دولار+/جيجابايت، طلب Edge دولاران لكل مليون، كتابة ISR 4 دولارات لكل مليون وحدة كتابة)، بينما يفرض Hetzner VPS إيجارًا شهريًا ثابتًا دون رسوم إضافية طالما بقيت ضمن حصة حركة المرور المُضمَّنة. إذا كان حجم عرض النطاق الترددي/كتابة ISR لديك منخفضًا، فقد يبقى الفرق ضئيلًا؛ ومع ارتفاعه، تتضاعف فاتورة Vercel بينما تبقى فاتورة Hetzner ثابتة. احسب الطرفين بحركة المرور الخاصة بك، مع الأخذ بعين الاعتبار زيادات أسعار Hetzner لعام 2026 (خصوصًا في خطوط CCX/CPX).