Why I Chose Astro for My Lightweight Portfolio Site Over Next.js and Nuxt
The author explains why Astro was selected for a personal portfolio site, highlighting its content-driven approach, minimal JavaScript, Content Collections for Markdown, and how it complements an existing blog without adding complex application overhead.
My Approach
After comparing Astro, Next.js, and Nuxt in a previous article, the author focuses on their specific project needs: a lightweight entry point for a personal portfolio that complements an existing blog. The goal is not a complex web application but a simple site to aggregate blog posts, WeChat articles, GitHub projects, and article series.
Requirements
A clear homepage that explains what "Code of Duty" is, what the author writes, and the relationship between the site, blog, and WeChat account.
An article entry point to curate and navigate existing content (including a Git series) rather than replicate a blog system.
A project entry point showcasing engineering practices like the blog deployment, server security, Docker and Nginx configurations.
Simple deployment using existing server, global Nginx, and HTTPS; preferably static deployment without new databases, backends, or complex runtimes.
Enhanced maintainability via Markdown, configuration files, or content collections so that adding articles, project cards, and series entries remains easy.
Evaluating Frameworks Against Requirements
Next.js is mature with a large React ecosystem, suitable for full applications with login, admin, user data, complex APIs, permissions, and dynamic content. However, the portfolio's first version needs none of these. Choosing Next.js would shift focus to server components, data fetching, caching, APIs, and deployment modes — valid concerns but low priority now.
Nuxt works well for personal sites, especially if the primary stack is Vue or there are existing Vue components. It can handle content sites, static sites, SSR, and full applications. Yet the portfolio's core is organizing existing content, not demonstrating Vue expertise. Nuxt is capable but not the best fit for the current goal.
Astro targets content-driven websites (blogs, documentation, portfolios), minimizes client-side JavaScript by default, and provides Content Collections to organize Markdown content. The portfolio's pages — homepage, article index, project showcase, about — are essentially content display. Interactive elements (mobile menu, project filtering, theme toggle) can be added later as isolated enhancements.
Decision
The author chooses Astro for the first version because it aligns with the role in their architecture: the blog remains the primary content hub, WeChat handles continuous reach, GitHub provides code evidence, and the Astro portfolio site lightly aggregates these entry points. It does not replace the blog or WeChat.
Key Takeaways
The conclusion is not "personal sites should use Astro" but "my lightweight portfolio, at this stage, fits Astro." The author suggests four questions for anyone building a personal site:
Is the site mainly content display or a complex application?
Are you more familiar with React or Vue?
Does the first version truly need a backend, login, comments, and search?
Will the site require long-term maintenance?
The priority for a first version is helping visitors quickly understand who you are, what you've written, what you've built, and where to learn more. Astro's value lies in not diverting effort from the main blog and avoiding premature complex application development.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Code of Duty
"Code of Duty" — Every line of code has its own mission. We avoid shortcuts and quick fixes, focusing on authentic coding reflections and the joys and challenges of technical growth. The journey of learning matters more than any destination. Join us as we humbly forge ahead in the world of code.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
