Từ WordPress sang Astro: Lý do mình chuyển nhà website

Mình đã viết chục bài dạy WordPress, rồi bỏ luôn nó. Đây là lý do thật, quá trình chuyển sang Astro, và vai trò của AI trong chuyện này.

Năm 2021, mình có cả một series hướng dẫn về WordPress và Elementor trên blog này - từ cài đặt, cấu hình, đến cách build trang bằng drag-and-drop. Tuy nhiên là khoảng đầu tháng 4/2026 này, mình đã quyết định chuyển sang tech stack mới hoàn toàn.

Không phải vì WordPress làm mình thất vọng, mà vì có một vài thứ mình đang muốn thử nghiệm - workflow viết bài có AI hỗ trợ, những trang web custom hơn format có sẵn - và mình cảm thấy đây là thời điểm phù hợp để bỏ bớt những rào cản cũ và thử một cách tiếp cận mới.


Khi Elementor không còn “chạy vui” nữa

Elementor (chắc) là drag-and-drop page builder phổ biến nhất trên WordPress, và mình đã dùng nó để build nhiều trang khác nhau - từ blog cá nhân đến landing page cho nhiều project; trong phần lớn thời gian thì nó hoạt động ổn. Vấn đề không đến từ từ mà xuất hiện rõ ràng khi mình bắt tay vào làm website cưới xumi-nate.com - một trang cần đẹp, mượt, và có cảm giác premium từ đầu đến cuối.

Khi mình bắt đầu thêm animation, ghép nhiều section, và chỉnh từng chi tiết nhỏ, Elementor bắt đầu “ì” lại. Editor lag mỗi khi thêm một element mới, preview trên điện thoại mất nhiều thời gian hơn cần thiết, và tốc độ load trang thành phẩm không như kỳ vọng. Có lẽ là do cách Elementor hoạt động: mỗi widget kéo theo bộ CSS và JS riêng của nó, trang càng phức tạp thì gánh nặng càng tích lũy. Mình cuối cùng cũng fix được và launch được xumi-nate.com, nhưng cái cảm giác phải chiến đấu với tool thay vì được tool hỗ trợ - nó ở lại lâu hơn nhiều so với website.

Elementor complexity trap: Simple site - Medium build - xumi-nate.com (breaking point)


WordPress cồng kềnh theo thời gian

WordPress không phải là một nền tảng tệ - nó đang vận hành hơn 40% website trên internet và có lý do cụ thể cho điều đó. Nhưng khi dùng lâu, mình nhận ra có một số vấn đề không lớn riêng lẻ, nhưng tích lũy lại thì đủ nặng để mình muốn nhìn sang hướng khác.

Vấn đề đầu tiên là “plugin hell” - muốn thêm bất cứ tính năng nào cũng cần một plugin riêng. SEO, cache, security, image optimization, contact form - mỗi thứ một plugin, và khi có update hay xung đột thì việc truy nguyên nguyên nhân là một bài toán riêng. Ngoài ra, WordPress cần hosting PHP, database MySQL, và một layer admin để vận hành, tất cả tạo ra một overhead vô hình nhưng thường trực về chi phí, maintenance, và mental load mỗi khi mình muốn làm gì đó mới.

Điều khiến mình cảm thấy giới hạn nhất là khi mình bắt đầu nghĩ đến những trang web có UX riêng - không phải blog thông thường, không phải landing page theo layout có sẵn. Về mặt kỹ thuật thì WordPress + Elementor vẫn làm được, nhưng sẽ tốn nhiều công sức hơn cần thiết và kết quả vẫn bị giới hạn bởi logic của theme và plugin.


Stack mới: Astro + React + Tailwind CSS 4

Mình chọn Astro làm framework chính, kết hợp với React 19 cho component interactive, Tailwind CSS 4 để styling, Keystatic làm CMS git-based, và Vercel để deploy. Lý do chọn Astro là kiến trúc “Islands” - thay vì đẩy toàn bộ JavaScript xuống client như nhiều framework khác, Astro chỉ gửi JS khi thật sự cần, nên blog post render hoàn toàn tĩnh và load nhanh, trong khi các component cần tương tác vẫn dùng React đúng chỗ đó. Kết quả là performance và mức độ kiểm soát UI cao hơn nhiều so với WordPress + Elementor - không có plugin overhead, không có giao diện editor đứng giữa mình và kết quả.

Thẳng thắn mà nói, nếu không có AI hỗ trợ thì mình thôi chịu ngay từ bước đầu. Mình là Marketer - setup Astro config, viết React component từ đầu, xử lý routing hay tự generate OG image là những việc vượt ngoài skill set của mình. AI - cụ thể là Claude - là thứ đã lấp đầy khoảng cách đó trong suốt quá trình build: giải thích cách framework hoạt động, viết component khi mình mô tả yêu cầu, debug khi có lỗi. Stack này về lý thuyết không phải dành cho người không code, nhưng với AI làm đồng hành, nó trở nên khả thi theo cách mình không ngờ được nếu không thử.

The 4-layer tech stack that replaced WordPress: Astro, React 19, Tailwind CSS 4, Vercel


Những thứ mới mẻ mà mình đã làm được

Cái thúc đẩy quyết định chuyển stack không phải là sự thất vọng chung chung mà là hai dự án cụ thể mình muốn xây, và cả hai đều không thể làm tốt trên nền tảng cũ.

Dự án đầu tiên là NateCue News - một trang cập nhật tin tức về marketing và AI, trong đó workflow viết bài được tích hợp AI từ đầu. Ý tưởng là tin tức được tổng hợp tự động, AI phân tích và tạo bản draft, mình edit và approve rồi publish. Để workflow này chạy smooth, mình cần content dựa trên Markdown và file-based storage để AI có thể đọc và ghi vào dễ dàng - một yêu cầu mà WordPress với database MySQL ở dưới không thể đáp ứng tốt.

Dự án thứ hai là NateCue Learn - một trang học với UX hoàn toàn tùy chỉnh. Thứ mình muốn nhất không phải là một khóa học template hay LMS plugin có sẵn, mà là một knowledge graph kiểu Obsidian - nơi các kiến thức không đứng rời rạc mà liên kết với nhau theo thời gian, càng học thì mạng lưới càng dày hơn và có ý nghĩa hơn. Mình đã lấy Quartz - một open-source framework cho digital garden trên GitHub - làm nền và nhờ Claude adapt lại theo đúng UX mình muốn, thứ mà tự mình code thì không biết bắt đầu từ đâu.

NateCue News (AI-integrated workflow) và NateCue Learn (connected knowledge graph) - hai platform mới 2026


AI đã “chuyển nhà” cùng mình như thế nào

Đây là phần mình muốn nói thẳng nhất: nếu không có AI hỗ trợ, mình không tự làm được.

Mình là Marketer in Tech - mình hiểu design, content, và strategy, nhưng viết React component từ đầu, setup Astro config, xử lý routing, i18n, RSS feed generation hay OG image tự động là những việc vượt ngoài skill set chính của mình. Thay vì mất 3-6 tháng tự học React và Astro (và khá chắc kèo là mình sẽ không học mấy cái này) rồi mới bắt đầu, mình chọn AI - cụ thể là Claude - làm đồng hành kỹ thuật trong suốt quá trình. Vai trò của nó là giải thích cách các phần của Astro hoạt động khi mình chưa hiểu, viết component khi mình mô tả yêu cầu, debug khi có lỗi, và review cấu trúc code để đề xuất cách tổ chức tốt hơn.

Quan trọng là workflow này không phải “AI làm hết, mình nhìn”. Mình vẫn phải ra quyết định về cấu trúc, về UX, về logic hoạt động của từng tính năng - công việc thực tế diễn ra theo vòng lặp: mình mô tả thứ mình cần, AI implement, mình review output, mình chỉ ra chỗ cần chỉnh, rồi lặp lại. Điều đó đòi hỏi mình phải biết đủ để đặt câu hỏi đúng và nhận ra khi nào AI đưa ra giải pháp không phù hợp với hướng mình muốn - nhưng khoảng cách giữa ý tưởng và implementation, AI lấp đầy khoảng đó một cách hiệu quả đến mức mình không hình dung được mình sẽ làm dự án này như thế nào nếu không có nó.

Có một điều ngoài kế hoạch mà mình nhận ra trong quá trình này: mỗi lần hỏi AI về một khái niệm mới - Islands architecture là gì, tại sao dùng SSG thay vì SSR, hydration hoạt động như thế nào - những giải thích đó đều đủ chất để biến thành một bài học trên NateCue Learn. Mình vừa xây website, vừa tích lũy được những hiểu biết mình thực sự cần để explain lại cho người khác, vừa có nguyên liệu bổ sung vào knowledge graph. Một quyết định kéo theo ba thứ cùng lúc - và đó là kiểu hiệu quả mình không thể có nếu chỉ thuê người code rồi nhận thành phẩm.

Building with AI as co-pilot: Idea - Describe - AI Codes - Review - Iterate (loop). Not a replacement. An extender.


So sánh thực tế: WordPress vs Astro

WordPress + ElementorAstro + React
Setup ban đầuDễ, 1-2 giờPhức tạp, cần AI hoặc dev
PerformanceTrung bình - phụ thuộc hosting và pluginTốt theo mặc định
CustomizationGiới hạn bởi theme và pluginKhông giới hạn
Chi phí dài hạnHosting + plugin premiumThấp hơn (Vercel free tier)
Content workflowWordPress editorMarkdown + Git (AI-friendly)
Phù hợp choBlog đơn giản, website doanh nghiệp nhỏCustom product, AI-integrated workflow
Điểm khó nhấtTránh plugin conflictBước setup đầu tiên

Không có stack nào tốt hơn tuyệt đối - chỉ có stack phù hợp với nhu cầu cụ thể của bạn tại thời điểm cụ thể.

Nói thẳng ra thì WordPress vẫn là lựa chọn rất ổn cho doanh nghiệp hoặc bất cứ ai mà output quan trọng hơn process - tức là viết bài đều đặn, quản lý content dễ, và SEO setup được luôn bằng plugin mà không cần hiểu gì về kỹ thuật. Astro đòi hỏi bạn phải tự tay configure sitemap, robots.txt, canonical tags, structured data - những thứ mà WordPress giải quyết bằng vài cú click. Và đây là cái bẫy mình thấy rõ nhất khi dùng Astro: ít giới hạn hơn đồng nghĩa với nhiều quyết định hơn, và rất dễ sa đà vào việc setup, tối ưu, debug mãi mà quên mất mục tiêu ban đầu là… viết bài.

Bước tiếp theo mình đang nghĩ đến là nghiên cứu combo AI + WordPress - xem có thể đưa AI vào workflow viết và quản lý content trên nền WordPress không, để có được sự cân bằng giữa kỹ thuật và đầu ra thực tế. Nếu có kết quả thì sẽ chia sẻ tiếp.


Bài học từ cuộc chuyển nhà

Chuyển stack không phải quyết định nhỏ - có learning curve thật sự, có những thứ phải setup lại từ đầu, có những ngày mình ngồi debug không ra và phải nhờ AI giải thích từng bước. Nhưng nhìn lại thì đây là quyết định mình không hối hận, vì nó cho mình thứ quan trọng hơn tốc độ ban đầu: khả năng build đúng thứ mình muốn mà không phải compromise ở mỗi bước.

Bài học lớn nhất mình rút ra là tool đúng là tool giúp bạn build thứ bạn muốn build, không phải tool phổ biến nhất hay tool dễ dùng nhất ngay từ đầu. WordPress là lựa chọn đúng cho mình năm 2021, và Astro là lựa chọn đúng cho mình năm 2026 - hai điều đó không mâu thuẫn nhau. Còn về AI, vai trò của nó không phải là thay thế skill mà là giúp mình vượt qua khoảng cách giữa ý tưởng và implementation vào đúng thời điểm mình cần, với đúng mức độ hỗ trợ cần thiết. Đó là cách mình nghĩ về việc dùng AI trong việc build: không phải thay thế, mà là extender.


Cảm ơn bạn đã đọc bài viết trên NateCue Insights!

✦ Miễn phí

Thích bài này? Nhận thêm mỗi tuần

AI workflows, marketing tips, và free tools. Không spam.

Cùng 1,200+ người đang đọc.

Không spam. Unsubscribe bất cứ lúc nào.