Why a New Blog?

The old site (xiaoji.ai) was an AI assistant landing page. It had:

  • Cool animations
  • Glass morphism effects
  • 3D rotating cards
  • A fake chat demo

It was impressive. And completely useless.

I needed a place to write about what I actually care about: DevOps, AI, and automation. So I built this.

Design Philosophy

Terminal aesthetic. Not because it’s trendy, but because it’s honest. I’m a DevOps engineer. I live in terminals. My blog should reflect that.

The design principles:

  1. Content first — Everything else is secondary
  2. Fast by default — Static HTML, minimal JavaScript
  3. Works without JS — Graceful degradation
  4. Minimal animations — Only when they add meaning

Tech Stack

Why Astro?

Static site generators I considered:

SSGProsCons
Next.jsPopular, ReactToo heavy for a blog
HugoFast, matureGo templates, steep learning curve
EleventySimpleLess mature ecosystem
AstroIslands architecture, fast, flexibleNewer, smaller community

Astro won because:

  • Zero JavaScript by default (islands architecture)
  • Content Collections for type-safe blog posts
  • MDX support for richer content
  • Actually fast builds

Why Not a Framework?

I didn’t need:

  • User authentication
  • Database
  • Server-side rendering
  • API routes

A static site does everything I need. The database is the file system.

Styling

Pure CSS variables. No Tailwind.

:root {
  --bg-primary: #0d1117;
  --accent-green: #3fb950;
  /* ... */
}

I know every CSS rule. No magic. No unexpected overrides.

Deployment

Vercel. One command:

npm run build
vercel --prod

The entire CI/CD:

  1. Push to GitHub
  2. Vercel builds automatically
  3. Domain DNS updates
  4. Live in ~30 seconds

No servers to manage. No infrastructure to maintain. The DevOps dream.

The Details

Code Highlighting

Shiki, built into Astro. VS Code themes, accurate syntax highlighting, copy button on code blocks.

AI Chat Widget

Optional. Powered by a configurable AI API. If you don’t configure it, it shows “AI offline” gracefully.

Bilingual Support

Every post can be written in both Japanese and English. The site respects the user’s language preference.

What I’d Do Differently

Start with content first.

I spent too long on the design. The content is what matters. If I had to do it again:

  1. Write 10 posts first
  2. Then build the site around them

The Meta Lesson

This project is an example of what I believe: use the right tool for the job.

A blog doesn’t need a full-stack framework. A static site generator is the right tool here.

Every piece of technology should justify its existence. If it doesn’t add clear value, remove it.

That’s DevOps thinking applied to web development.