Hello World — Why I rebuilt this site with Astro

A quick look at why I moved from VuePress to Astro for my personal site and what the new setup looks like.

Scully didn’t work out. Neither did AnalogJS — close, but the Angular dependency tax wasn’t worth it for a personal site. Third time’s the charm: I rebuilt vladsetchin.me from scratch with Astro.

Why Astro?

One requirement drove the whole decision: adding a blog post should mean adding a Markdown file and pushing. That’s it. No local build step, no config to touch, no CMS login screen to forget the password to.

Astro’s Content Collections deliver exactly that — typed, schema-validated Markdown that compiles to real HTML on every push. GitHub Actions runs the build. GitHub Pages hosts the output. Neither one needs me.

The other reason, the one I didn’t expect to matter as much as it does: React islands. The theme toggle on this page is a React component, hydrated only where it’s needed. A future portfolio piece could embed an Angular or Vue demo to actually show range, instead of just claiming it in a skills list — without every other page on the site paying React’s weight for it.

The stack

  • Framework: Astro 4.x, static output
  • Interactive bits: React 18, islands only
  • Hosting: GitHub Pages
  • Comments: Giscus — GitHub Discussions backed, no third-party comment widget
  • CI/CD: GitHub Actions → Pages, on every push to vladsetchin.me-astro

What’s next

The blog is live. That was the bar. Portfolio and services sections land in the next PR.

Source’s at github.com/vsetchinfc/vladsetchin.me, if you want to follow along or just see how a Markdown file turns into this page.

Comments