16 điểm bởi click 2026-02-25 | 6 bình luận | Chia sẻ qua WhatsApp

Một kỹ sư của Cloudflare đã công bố dự án "vinext (vee-next)", được viết lại hoàn toàn dựa trên Vite cho hạ tầng Next.js phức tạp với sự hỗ trợ của AI (Claude). Đây là một nỗ lực thử nghiệm nhằm giải quyết các vấn đề cố hữu về triển khai và build của Next.js.

Tóm tắt chính

  • Động cơ: Next.js rất xuất sắc, nhưng do phụ thuộc mạnh vào công cụ build riêng là Turbopack, nên khi triển khai lên các môi trường serverless như Cloudflare Workers hay AWS Lambda, nó gặp "điểm nghẽn triển khai" vì phải đi qua các adapter phức tạp như OpenNext.
  • Quá trình phát triển: Tận dụng AI mạnh mẽ để triển khai trong vòng 1 tuần. Được kiểm chứng bằng hơn 1.700 bài test Vitest và 380 bài test Playwright E2E được port từ bộ test Next.js và bộ test tương thích của OpenNext. Vượt qua 94% các bài test API surface của Next.js 16
  • Giải pháp: Thay vì chỉnh sửa đầu ra của Next.js, dự án triển khai lại nguyên vẹn API của Next.js (Routing, RSC, SSR, v.v.) ngay từ đầu trên nền Vite.
  • Thành quả: Hoàn thành trong một tuần với chi phí token AI khoảng $1,100. So với Next.js, kết quả cho thấy tốc độ build nhanh hơn tới 4 lần và kích thước client bundle nhỏ hơn 57%.
  • Đặc điểm kỹ thuật: Các API cốt lõi như next/link, next/navigation, Server Actions, RSC (React Server Components) được tái hiện dưới dạng plugin Vite, cho phép di chuyển hầu như nguyên trạng các ứng dụng Next.js hiện có.

Ý nghĩa: Dự án chứng minh rằng ngay cả những framework đồ sộ cũng có thể được thay thế trong thời gian ngắn bằng một "phiên bản nhẹ và nhanh" nếu có bộ test được xác định rõ ràng và sự hỗ trợ của AI.

6 bình luận

 
xguru 2026-02-26

Cách tái hiện Next.js bằng AI chỉ trong một tuần
Hãy tham khảo thêm cả phiên bản do GN+ tổng hợp

 
click 2026-02-25

Dù bài blog không mang giọng điệu như vậy, nhưng việc cố ý lược bỏ tính năng tạo trang tĩnh khiến tôi có cảm giác hàm ý ở đây là khi cần tạo trang tĩnh thì hãy dùng Astro.

 
roxie 2026-02-28

Astro*

 
t7vonn 2026-02-25

Tôi cứ nghĩ nếu họ dành một tuần công sức đó để đóng góp cho opennext thì có lẽ sẽ tốt hơn.

 
click 2026-02-25

Ngay từ đầu định hướng đã khác nhau rồi
OpenNext là chuyển đổi kết quả build của Next.js, còn vinext là viết lại toàn bộ để thay turbopack bằng vite.

 
GN⁺ 2026-02-25
Ý kiến trên Hacker News
  • Tôi thích cả Next lẫn Vite. Nhưng tôi có cảm giác đội ngũ Next chỉ tập trung vào những tính năng hào nhoáng phục vụ 0,1% người dùng, còn 99,9% còn lại thì bị bỏ mặc. Bản fork lần này của Cloudflare có vẻ sẽ giải tỏa được sự bất mãn đó. Cải thiện hiệu năng là điều cộng đồng Next mong muốn từ rất lâu, và giờ cuối cùng cũng có người lắng nghe. Ở công ty, nếu cái này thành công thì tôi rất muốn thử dùng

    • Next là framework tệ thứ hai tôi từng dùng, chỉ sau Rails. Với phần lớn ứng dụng, nó chẳng qua chỉ là overhead thuần túy
    • Bạn nghĩ có thể kỳ vọng hỗ trợ lâu dài từ một thử nghiệm do một kỹ sư làm trong thời gian rảnh sao?
    • Công ty tôi có một ứng dụng Next.js hơn 7 năm tuổi, vẫn chạy tốt nhưng có quá nhiều thay đổi không cần thiết. Mỗi lần nâng cấp phiên bản là lại tốn phí refactor rất lớn
    • Bạn nói là thích Next, nhưng ưu điểm của Next khi tách khỏi Vercel là gì? Tôi nghĩ nếu không có các tính năng của Vercel thì chẳng có lý do gì để dùng Next
    • Tôi ghét Next và rất yêu Vite. Ứng dụng Next.js production cỡ lớn ở công ty tôi chậm đến mức tôi phải nâng cấp lên M4 Pro. Build cục bộ mất cả vài phút, hot refresh cũng mất hơn 10 giây. Đội ngũ Next lúc nào cũng chỉ gửi link tài liệu rồi bảo là người dùng làm sai. Nhưng thực ra framework này vốn đã chậm
  • Tôi nghĩ đây là một ví dụ rất rõ về động lực nguồn mở trong thời đại AI. Tài liệu càng tốt, các hợp đồng càng được định nghĩa rõ ràng thì người khác càng dễ sao chép. Nếu Cloudflare không tận dụng các bài kiểm thử của Next thì bản fork này hẳn đã không thể xuất hiện. Server Components vẫn là một pattern bị đánh giá thấp, nên tôi hoan nghênh những nỗ lực đơn giản hóa DX. Next trở nên phức tạp do mở rộng dần dần, còn framework mới thì có thể được thiết kế linh hoạt ngay từ đầu

    • Tôi cũng nghĩ vậy. Khi ai đó thử nghiệm API và xác lập best practices, người khác có thể mang đi dùng nguyên xi. Đây phần nào là kết quả mà Vercel tự chuốc lấy, nhưng tôi lo các dự án nhỏ sẽ bị biến mất theo cách này
    • Tôi không đồng ý với lập luận rằng Cloudflare sẽ không thể làm được nếu không có các bài kiểm thử của Next. Nhiều hệ thống phức tạp cũng từng được tái tạo bằng reverse engineering. Với tốc độ của AI, tôi cho rằng rào cản gia nhập giờ gần như không còn
    • Nếu mô hình trở thành open-core + kiểm thử riêng tư, thì nguồn mở thật sự cuối cùng có khi lại chính là test hoặc spec
  • Tôi nghĩ gọi một thứ còn không chạy nổi “Hello world” là được ‘tái triển khai from scratch’ thì hơi phóng đại. Nếu lấy nguyên bài kiểm thử của bản gốc thì khó mà xem là viết lại hoàn toàn. Nó giống như lấy đoạn mở đầu của một tiểu thuyết nổi tiếng, thay vài từ rồi tuyên bố là mình đã viết mới vậy

  • Cloudflare đã mua lại Astro từ một tháng trước, và giờ lại dùng AI để sao chép Next.js, điều này khá thú vị. Nếu làm dễ đến thế thì tại sao họ lại mua Astro? Có lẽ là để nắm giữ tầm nhìn và vai trò lãnh đạo của framework

    • Việc mua Astro là một chiến lược sản phẩm nghiêm túc, còn dự án lần này giống như một thí nghiệm châm chọc đối thủ cạnh tranh. Phải vài năm nữa mới biết kết quả ra sao
    • Astro tập trung vào static site nên thuộc một không gian khác với Next. Có vẻ Cloudflare đang muốn thống trị một lớp website cụ thể giống như Vercel thông qua Astro. Cuối cùng, những người chuyển site Next.js sang Cloudflare rồi cũng sẽ migrate sang Astro
    • Astro phù hợp với static site, còn Next có thể dùng cả cho web app động. Chúng tôi dùng Astro cho hệ thống tài liệu nội bộ và thật sự rất hài lòng
    • Có lẽ Cloudflare đơn giản là đang theo đuổi chiến lược dẫn người dùng vào hệ sinh thái sản phẩm của mình. Dạo này tôi chuyển sang Svelte và dùng khá thích
    • Astro không giải quyết cùng bài toán với Next. Nó dành cho static site
  • Trước đây Next.js từng dính lỗ hổng thực thi mã từ xa, nên tôi muốn tránh phiên bản do AI tạo ra ít nhất trong một thời gian

    • Tôi cũng lo nhất điểm đó. Ngay cả trước vụ RCE, tôi đã không dùng Next.js cho dự án cá nhân. Sinh mã bằng AI khiến kiểu lỗi này dễ xuất hiện hơn và cũng dễ bị bỏ sót hơn
    • Đó không phải lỗ hổng của Next mà là lỗ hổng của React
  • Mỗi khi nghe câu ‘AI đã tái triển khai X’ là tôi luôn thấy nghi ngờ. Rất có thể những edge case chi tiết và lượng bug fix tích lũy suốt nhiều năm đã bị bỏ sót. Nếu nó vượt qua được toàn bộ bài kiểm thử thì tôi sẽ công nhận, còn không thì khó tin lắm

    • Tôi cũng chưa tin hoàn toàn, nhưng lần này họ nói đã vượt qua 2.000 unit test và 400 bài kiểm thử E2E của Next
  • Đây là thử nghiệm AI thú vị nhất mà tôi từng thấy cho đến nay. Tôi ngạc nhiên vì nó nhỏ hơn codebase Next.js rất nhiều. Nhưng tôi vẫn tự hỏi liệu nó chỉ đơn thuần là mức vượt qua test hay không. Ví dụ như phần triển khai form hoàn toàn khác. Dù sao thì vẫn rất ấn tượng

    • (Kỹ sư Cloudflare) Mục tiêu không phải là khớp tính năng hoàn toàn. Đây vẫn là phiên bản đầu nên còn thiếu nhiều phần. Lý do code nhỏ là vì nó được xây dựng trên Vite và plugin RSC
    • Cái này trông gần như là một đòn công kích thụ động. Phải chăng Cloudflare có điều gì không hài lòng với đội ngũ Next? Kiểu phản ứng như ‘chúng tôi đã làm lại toàn bộ sản phẩm của các anh bằng AI và thực tập sinh’
    • Có vẻ code giảm đi vì họ đã ủy thác nhiều logic cho Vite
  • Tôi không đồng ý với câu nói rằng ‘sự trừu tượng trong phần mềm xuất hiện vì con người không thể xử lý độ phức tạp’. Trừu tượng tồn tại để nắm bắt bản chất của thực tại và tăng khả năng tái sử dụng. Việc phân lớp đơn giản là vấn đề tách biệt mối quan tâm

  • Điểm thú vị là tổng chi phí chỉ khoảng 1.100 USD tiền token

  • Mấu chốt thật sự là thời điểm mua lại Astro. Cloudflare đã mua Astro một tháng trước, rồi giờ công bố sao chép API Next.js bằng AI. Đây là tín hiệu về việc phá vỡ lock-in của framework. Họ đã đưa cho người dùng Next.js bị trói vào Vercel hai lối thoát — dự án mới thì dùng Astro, dự án hiện có thì dùng Vinext. Dù hiện tại chưa phù hợp cho production, đây vẫn là một thông điệp làm lung lay khả năng cạnh tranh về giá của Vercel

    • Điều đó khiến tôi nhớ đến chuyện test suite của SQLite là riêng tư
    • Dù Next.js có bị chê đến đâu, cũng sẽ không ai chuyển production sang một dự án mới được một tuần tuổi. Nhưng biết đâu sau này nó có thể thay thế Turbopack của Vercel
    • Cloudflare đã hỗ trợ OpenNext rồi