Skip to content

Rebuilding My Blog: From WordPress to Next.js 16 & GCP

·3 min read

Welcome to the newly rebuilt harshbaid.in.

After years of running a self-hosted WordPress site, I decided it was time for a complete architectural overhaul. I migrated my personal blog and portfolio to a fully static, Git-backed MDX architecture.

Importantly, moving away from a traditional database means my content is now just raw text, allowing for a much faster, zero-trust model without vendor lock-in.

The New Tech Stack

I wanted a stack that was lightning fast, completely customized, and easy to maintain. Here is what is running under the hood:

  • Framework: Next.js 16 (App Router) generating fully static pages at build time.
  • UI & Styling: React 19 paired with Tailwind CSS 4 and the official typography plugin for automated markdown styling.
  • Hosting: Containerized via a multi-stage Docker build and deployed to Google Cloud Platform (GCP) using Cloud Run.
  • Content: 100% Markdown and MDX.

Key Features

Rebuilding from scratch gave me the opportunity to implement some great modern web features:

  • Client-Side Search: Hit Ctrl+K (or Cmd+K) to trigger a lightning-fast modal search. It uses a custom API route and fuzzy matching to instantly find posts.
  • Dynamic Routing: Tags, categories, and legacy URL redirects (308s) are all handled natively by Next.js middleware and dynamic routes.
  • Dark Mode: A system-aware toggle with smooth transitions built on next-themes.
  • Developer Experience: Code blocks feature dual-theme syntax highlighting using Shiki.

Performance & Accessibility

A key goal for this rebuild was top-tier performance and inclusivity. Running a Lighthouse audit on the new site yields some proud results:

  • Performance: 98
  • Accessibility: 100
  • Best Practices: 100
  • SEO: 100

These scores confirm that the transition to a static, Next.js 16 architecture was the right move for delivering a premium user experience.

Building with AI

More importantly, the development workflow for this migration was a huge shift. I built this entirely alongside two AI agents: Antigravity for real-time interactive pair programming, and Jules for handling asynchronous background tasks like bulk data cleanup and link auditing. The speed at which you can scaffold a production-ready application with AI assistance is incredible.

The most incredible part? This entire rebuild was achieved in just one day of agentic coding. I didn’t write a single line of code manually; instead, the project was fully driven by prompting-using Gemini for architectural brainstorming, while Antigravity and Jules handled the heavy lifting of coding and cleanup.

Everything was powered by a single Google AI Pro subscription, utilizing Gemini Pro 3.1, Gemini Flash 3.1, and Opus 4.6 models. While GCP hosting is currently free, the $10 monthly credit included with the AI subscription provides a perfect buffer to keep the site running if traffic increases.

Feel free to click around, test the search, and let me know how the performance feels.

Expect more posts soon on web development, AI tooling, and technical deep dives!