Vinext 1.0 منتشر شد: Next.js روی Vite
خلاصهٔ کاملتر
Vinext هفت ماه پیش یه آزمایش یکهفتهای بود: کلاودفلر میخواست ببینه یه مهندس با کمک AI چقدر میتونه Next.js رو روی Vite بازسازی کنه. تو این پست اومده که از اون موقع پروژه به فریمورکی رسیده که مشتریها روی اپهای پرترافیک و داینامیک تو پروداکشن اجراش میکنن، و حالا نسخهٔ 1.0 رسیده. هدف سادهست: هر اپ Next.js رو برداری و هر جایی دیپلوی کنی، از پلن رایگان Cloudflare Workers تا Netlify و AWS Lambda.
تمرکز اصلی این نسخه سازگاریه. تیم میگه Pages Router هنوز مهمه چون خیلی از مشتریها اپهای بزرگ و سختِ مهاجرت دارن، پس هر دو مسیر روتینگ و حالت هیبریدی پشتیبانی میشن، همراه با React Server Components، Server Actions، روتهندلرها، میدلور و ناوبری سمت کلاینت. به گفتهٔ نویسندهها سازگاری تستها برای مهمترین قابلیتهای درخواستی مشتریها الان از ۹۹ درصد گذشته.
سختترین بخش کار هم همین بوده: Vinext نباید فقط اسم فانکشنها رو کپی کنه، باید دقیقاً مثل Next.js رفتار کنه. نویسندهها مثال میزنن که ساختن یه revalidatePath جایگزین آسونه، سختی اینه که همون تاثیر درست رو روی صفحهٔ رندرشده، رکورد کش و ریکوئستهای بعدی بذاره. برای اینکه چیزی پس نره هم هزاران تست روی هر دو روتر و روی سرور dev و پروداکشن نوشته شده، و تستهای end-to-end خود Next.js هر شب روی Vinext اجرا میشن.
مهاجرت هم بخشی از فریمورک شده: با npx vinext check سازگاری پروژه و هر تغییری که خودت دادی بررسی میشه و با npx vinext init کانفیگ Vite و دیپلوی ساخته میشه، بدون اینکه ساختار قبلی پروژه به هم بخوره. کش هم یه دست شده و بین هر دو روتر و همهٔ رانتایمها مشترکه، تریسینگ سازگار با Next.js داره (پس OpenTelemetry و Sentry موجود کار میکنن)، و روی Cloudflare Workers کد سرور مستقیم به بایندینگهایی مثل بهینهسازی تصویر و hyperdrive دسترسی داره.
جالبترین قابلیت این نسخه cache warmingه. نویسندهها میگن یه سایت با دهها هزار URL میتونه ساعتها از وقت بیلد رو صرف رندر صفحاتی کنه که تقریباً ترافیک ندارن، چون ماشین بیلد نمیدونه کدوم صفحه مهمه. راهحل اینه که پیشرندر از ماشین بیلد بره روی شبکهٔ کلاودفلر: نسخهٔ جدید Worker آپلود و با صفر درصد ترافیک دیپلوی میشه، صفحات مستقیم از همون نسخه درخواست میشن تا کش پر بشه، و بعد دیپلوی با خیال راحت به پروداکشن ارتقا پیدا میکنه.
یه محدودیت رو هم صریح گفتن: پشتیبانی از دایرکتیو use cache و Cache Components که Next.js 16 روش تاکید کرده فعلاً محدوده، چون بیشتر تیمهایی که باهاشون حرف زده بودن ازش استفاده نمیکردن و شرط مهاجرت هم حسابش نمیکردن. برای عقب نموندن از آپاستریم هم هر روز صبح یه ایجنت کامیتهای canary خود Next.js رو مرور میکنه و برای هر تغییری که ممکنه Vinext رو تحت تاثیر بذاره ایشو باز میکنه، و هر شب ماتریس سازگاری از نو ساخته میشه.
نکات کلیدی:
- هر دو روتر پشتیبانی میشن: App Router و Pages Router، بهعلاوهٔ اپهای هیبریدی.
- سازگاری تستها برای مهمترین قابلیتهای درخواستی مشتریها از ۹۹ درصد گذشته.
- مهاجرت با دو دستور انجام میشه: اول npx vinext check بعد npx vinext init.
- پشتیبانی از use cache و Cache Components در Next.js 16 فعلاً محدوده.
- cache warming صفحات رو روی نسخهای با صفر درصد ترافیک رندر میکنه و بعد دیپلوی رو ارتقا میده.
- تریسینگ سازگار با Next.js، پس OpenTelemetry و Sentry فعلی دستنخورده کار میکنن.




