Website doanh nghiệp nên làm bằng Next.js khi nó phải làm nhiều hơn một tờ giới thiệu: nhận khách hàng tiềm năng và đẩy thẳng về CRM, hiển thị dữ liệu từ hệ thống nội bộ, có khu vực khách hàng đăng nhập, hoặc đăng nội dung theo lịch. Next.js là framework mã nguồn mở dựng trên React, trả về HTML dựng sẵn nên Google đọc được ngay, tự làm mới trang theo chu kỳ mà không cần triển khai lại, và dùng chung một ngôn ngữ cho giao diện lẫn phần xử lý phía máy chủ. Nó không hợp khi website chỉ là nội dung do biên tập viên cập nhật và doanh nghiệp không có ai bảo trì mã nguồn. Bài này dựa trên việc Alodev tự vận hành alodev.vn bằng Next.js 16, kể cả những lần trả giá.
Next.js là gì, nói ngắn cho người không viết code
React là thư viện của Meta để dựng giao diện web từ các khối nhỏ tái sử dụng được. React chỉ lo phần giao diện; muốn thành một website hoàn chỉnh còn cần định tuyến đường dẫn, dựng HTML phía máy chủ, tối ưu ảnh, font, bộ nhớ đệm. Next.js, do Vercel phát triển và phát hành theo giấy phép MIT, gói sẵn các phần đó. Phiên bản 16 ra ngày 21/10/2025, đặt Turbopack làm công cụ đóng gói mặc định và đổi tên middleware thành proxy.
Với chủ doanh nghiệp, điểm quan trọng là Next.js đang ở giữa dòng chảy chính của ngành. Khảo sát Stack Overflow 2025 ghi nhận 20,8% lập trình viên dùng Next.js, 44,7% dùng React và 48,7% dùng Node.js, môi trường chạy của Next.js phía máy chủ. Chọn một công nghệ nhiều người biết là chọn khả năng tìm được người bảo trì sau khi đơn vị làm ban đầu rời đi.

Lý do thứ nhất: HTML dựng sẵn cho Google và cho người đọc
Website dựng bằng React thuần kiểu ứng dụng một trang (SPA) gửi về trình duyệt một trang gần như trống, rồi JavaScript mới vẽ nội dung. Người dùng mạng chậm thấy màn trắng lâu hơn, và công cụ tìm kiếm phải chạy JavaScript mới đọc được nội dung, một bước Google làm được nhưng làm sau và tốn tài nguyên hơn. Next.js mặc định dựng HTML ở máy chủ hoặc lúc build, nên trang đến tay trình duyệt đã có sẵn tiêu đề, đoạn văn, liên kết, dữ liệu có cấu trúc.
Từ phiên bản 13, Next.js dùng React Server Components: phần lớn giao diện chạy ở máy chủ và không gửi mã JavaScript tương ứng xuống trình duyệt. Chỉ những khối cần tương tác như form, menu, bộ lọc mới mang JavaScript theo. Đây là cơ chế giúp một website nhiều trang giữ được dung lượng tải nhỏ, với điều kiện đội phát triển hiểu và dùng đúng ranh giới máy chủ, trình duyệt.
Lý do thứ hai: trang tự làm mới, không cần deploy
Next.js có cơ chế tái dựng tĩnh theo chu kỳ (Incremental Static Regeneration, ISR): trang được dựng sẵn và lưu đệm như trang tĩnh, nhưng tự dựng lại sau một khoảng thời gian định trước khi có người truy cập. Người đọc nhận tốc độ của trang tĩnh, còn nội dung vẫn cập nhật mà không ai phải build lại website.
alodev.vn dùng đúng cơ chế này để đăng bài theo lịch. Bài viết có trường publishAt; trước ngày đó bài bị loại khỏi mọi danh sách, sơ đồ trang, RSS và vào thẳng đường dẫn thì trả 404. Trang bài đặt revalidate = 60, tức tự dựng lại tối đa mỗi 60 giây, nên từ 0 giờ ngày hẹn theo giờ Việt Nam, bài tự xuất hiện ở lượt truy cập đầu tiên, còn các trang danh sách cập nhật theo trong khoảng một phút. Nhờ vậy có thể viết sẵn nhiều bài, triển khai một lần, và nội dung ra đều từng ngày. Chính bài bạn đang đọc được đăng theo cách đó.

Điều đáng nói với người mua phần mềm là chi tiết kỹ thuật phía sau: việc lọc bài chưa đến hạn nằm ở đúng một hàm. Trước khi gom về một chỗ, mỗi nơi liệt kê bài (trang chủ, danh sách, sơ đồ trang, RSS, bài liên quan) có thể tự viết điều kiện riêng và quên mất một chỗ, khiến bài hẹn lộ ra sớm ở sơ đồ trang. Một framework tốt không tự ngăn được lỗi kiểu này; cách tổ chức mã mới ngăn được.
Lý do thứ ba: một bộ mã nói chuyện được với hệ thống nội bộ
Next.js cho phép viết phần xử lý phía máy chủ ngay trong cùng dự án: route handler nhận dữ liệu form, server action xử lý thao tác người dùng, gọi API nội bộ bằng khoá bí mật không lộ ra trình duyệt. Form liên hệ và công cụ ước lượng dự án trên alodev.vn gửi dữ liệu về route /api/leads, từ đó chuyển vào phần mềm quản lý nội bộ ALODEV AIO. Nếu hệ thống nội bộ không trả lời, yêu cầu được xếp vào hàng đợi và tự gửi lại mỗi phút, nên khách để lại thông tin lúc máy chủ nội bộ bảo trì cũng không bị mất.
Làm tương tự trên website dựng bằng công cụ kéo thả thường phải qua một dịch vụ trung gian hoặc plugin, mỗi lớp là một chỗ có thể hỏng mà không ai thấy. Với Next.js, luồng dữ liệu nằm trong mã nguồn của chính doanh nghiệp, đọc được, kiểm thử được.

Cái giá khi vận hành: những lần chúng tôi đã trả
Next.js không miễn phí về vận hành. Bốn bài học dưới đây đều ghi trong tài liệu kho mã của alodev.vn, kèm lỗi thật.
- Công cụ đóng gói mặc định không phải lúc nào cũng chạy. Bản build của website phải chạy với cờ --webpack vì Turbopack báo thiếu module khi xử lý PostCSS trong cấu hình của dự án. Mặc định mới của framework cần được thử trên chính dự án trước khi tin.
- Tệp tải lên lúc website đang chạy không tự phục vụ được. next start chỉ phục vụ những tệp có trong thư mục public lúc build, nên ảnh người quản trị tải lên sau đó trả 404. Phải viết một route riêng để phục vụ tệp tải lên.
- Trang đọc dữ liệu động mà thiếu revalidate sẽ đóng băng ở thời điểm build: sửa dữ liệu trong trang quản trị mà website không đổi gì. Luật trong kho bây giờ là trang nào đọc dữ liệu động đều phải khai báo chu kỳ làm mới.
- Mỗi lần build lại, tên các tệp CSS và JavaScript đổi. Nếu lớp đệm Cloudflare phía trước vẫn giữ HTML cũ trỏ vào tệp cũ đã xoá, toàn bộ website mất giao diện. Sự cố này đã xảy ra thật; từ đó quy trình phát hành trong kho ghi bước xoá bộ đệm là bắt buộc sau mỗi lần build.
Rủi ro bảo mật cũng có. Tháng 3/2025, lỗ hổng CVE-2025-29927 cho phép vượt qua lớp kiểm tra quyền đặt ở middleware của Next.js bằng một header đặc biệt. Ngày 3/12/2025, lỗ hổng CVE-2025-55182 trong React Server Components (Next.js theo dõi là CVE-2025-66478) được chấm 10/10 điểm CVSS, cho phép thực thi mã từ xa không cần đăng nhập trên các bản Next.js 15.x và 16.x chưa vá, và bị khai thác chỉ vài giờ sau khi công bố theo nhiều hãng bảo mật. Bài học giống hệt WordPress: website nào cũng cần người theo dõi bản vá. Khác biệt là với Next.js, cập nhật nằm ở một gói phụ thuộc chính thay vì vài chục plugin của nhiều tác giả.
So sánh Next.js với các lựa chọn khác
| Tiêu chí | Next.js | WordPress | React thuần (SPA) | HTML tĩnh hoặc Astro |
|---|---|---|---|---|
| HTML sẵn cho công cụ tìm kiếm | Có, mặc định | Có | Không, phải chạy JavaScript | Có |
| Nội dung cập nhật không cần deploy | Có, qua ISR hoặc dựng động | Có | Có, qua API | Không, phải build lại |
| Tích hợp hệ thống nội bộ | Viết thẳng trong dự án | Qua plugin hoặc PHP tự viết | Cần backend riêng | Cần backend riêng |
| Người sửa nội dung không biết code | Cần làm trang quản trị hoặc CMS headless | Có sẵn | Cần làm riêng | Cần CMS headless |
| Chi phí vận hành chính | Máy chủ Node.js, công cập nhật thư viện | Hosting PHP, cập nhật plugin | Hosting tĩnh cộng backend | Hosting tĩnh, rất thấp |
| Hợp nhất cho | Website gắn nghiệp vụ, cổng khách hàng | Website nội dung, blog | Ứng dụng sau đăng nhập | Trang giới thiệu ít thay đổi |
Khi nào KHÔNG nên làm website bằng Next.js
- Website chỉ có vài trang giới thiệu, nội dung đổi vài lần một năm: HTML tĩnh hoặc Astro nhẹ hơn, rẻ hơn, gần như không cần bảo trì.
- Đội biên tập cần tự dựng trang mới bằng kéo thả mỗi tuần mà không nhờ lập trình viên: WordPress hoặc nền tảng như Webflow hợp hơn, trừ khi chấp nhận đầu tư thêm một CMS headless.
- Cửa hàng trực tuyến theo mô hình chuẩn, không có nghiệp vụ đặc thù: Shopify hoặc nền tảng tương tự lo sẵn thanh toán, kho, vận chuyển.
- Doanh nghiệp không có ai theo dõi bản vá sau bàn giao: hai lỗ hổng năm 2025 cho thấy một website Next.js bỏ mặc cũng nguy hiểm như website WordPress bỏ mặc.
- Đội kỹ thuật nội bộ quen PHP và không định học React: chi phí đào tạo và rủi ro làm sai lớn hơn lợi ích công nghệ mang lại.
Câu hỏi nên đặt cho đơn vị thiết kế trước khi ký hợp đồng Next.js: ai cập nhật phiên bản Next.js và React sau khi bàn giao, trong bao lâu kể từ khi có bản vá bảo mật; website chạy ở đâu và doanh nghiệp có nhận đủ mã nguồn để chuyển sang nhà cung cấp khác không; người không biết code sửa nội dung bằng công cụ gì.
Câu hỏi thường gặp
Next.js là gì?
Next.js là framework mã nguồn mở (giấy phép MIT) do Vercel phát triển, dựng trên thư viện React. Nó bổ sung định tuyến, dựng HTML ở máy chủ, làm mới trang theo chu kỳ và tối ưu ảnh, font, để React thành một website hoàn chỉnh.
Next.js có tốt cho SEO không?
Có, vì trang được dựng thành HTML trước khi gửi đi, công cụ tìm kiếm đọc được nội dung mà không cần chạy JavaScript. SEO vẫn phụ thuộc nội dung, tiêu đề, dữ liệu có cấu trúc và tốc độ thật; framework chỉ loại bỏ rào cản kỹ thuật.
Website Next.js có bắt buộc chạy trên Vercel không?
Không. Next.js chạy được trên bất kỳ máy chủ Node.js nào bằng lệnh next start, hoặc trong Docker. alodev.vn chạy trên máy chủ riêng của Alodev, quản lý bằng PM2, phía trước là Cloudflare.
Làm website bằng Next.js có đắt hơn WordPress không?
Chi phí làm ban đầu thường cao hơn vì thiết kế và lập trình riêng thay vì dùng theme có sẵn. Chi phí vận hành phụ thuộc vào việc có cần trang quản trị riêng hay không; nên so tổng chi phí vài năm, gồm cả bảo trì và gia hạn plugin nếu là WordPress.
Next.js khác React thế nào?
React là thư viện dựng giao diện, còn Next.js là framework dùng React và thêm những phần một website cần: đường dẫn, dựng trang phía máy chủ, bộ nhớ đệm, xử lý API. Có thể hiểu React là động cơ, Next.js là chiếc xe đã lắp sẵn khung, bánh và đồng hồ.


