为什么我用 Astro 搭博客

#前端#博客

搭建这个博客之前,我在 Astro、Hugo 和 Next.js 之间犹豫了一下午。

需求其实很简单

  • 写 Markdown,push 完自动上线
  • 打开要快,SEO 要正常
  • 偶尔想在文章里塞个可交互的小组件
  • 不想维护服务器和数据库

为什么不是另外两个

Next.js 很强,但给一个纯内容站用 Next.js,等于为了书架买辆卡车。SSR、缓存策略、App Router 的心智负担,在博客场景里全是浪费。

Hugo 构建速度无敌,模板语法也是真的难写。每次想改个布局都要和 Go template 搏斗半小时,写博客的热情都耗在模板上了。

为什么是 Astro

默认零 JS 输出。页面构建完就是纯 HTML,除非我明确说某个组件需要 hydrate。这意味着博客的加载速度接近理论上限,而我不用为此做任何事。

Islands 架构又留了后门:哪天想在文章里放一个可交互的 demo,用 React、Vue、Svelte 写都行,只有那一个组件会带上 JS。

一句话:Astro 把复杂度变成了可选项,而不是默认值。