← Back to Blog
Project Deep-DiveWordPressNext.jsmigration

Case Study: Turning a WordPress News Site Into a Modern Platform in 48 Hours

TheWestNepal.live went from a slow WordPress site to a programmatic Next.js platform in 48 hours. Here is how the migration worked and what changed after.

SPSantosh Paudel· June 25, 2026· 9 min read· 4 views
Table of contents

TheWestNepal.live was a working WordPress site. Functional, content-rich, getting traffic — but slow, inflexible, and expensive to maintain relative to what it delivered.

The decision to rebuild was not about chasing new technology. It was about unlocking things WordPress made hard: programmatic SEO, edge delivery, a proper content pipeline, and full control over the data model.

Here is how the migration happened in 48 hours and what the site looks like now.

Why Rebuild Instead of Patch

The typical answer to a slow WordPress site is a caching plugin, a CDN, or a theme upgrade. I tried all of these. They helped. But they did not solve the underlying issues:

  • Every page was a database query at request time — no static generation, no edge caching
  • Customizing the content structure meant custom post types, ACF fields, and plugin conflicts
  • SEO required plugins that partially worked, with meta fields scattered across the admin
  • Programmatic page generation — one template, many pages — was not practically achievable

Next.js with Supabase solves all of these structurally, not with patches.

The Migration Process

Day 1: Data extraction and schema design

The first task was exporting all existing content from WordPress. WordPress export (WXR format) gives you posts, pages, categories, tags, and metadata in XML. I wrote a Node script to parse the WXR file and transform it into INSERT statements for Supabase.

The Supabase schema for blog_posts included: title, slug, excerpt, content (markdown), category, tags (array), published_at, meta_description, reading_time_minutes. Content from WordPress came in HTML — I converted it to markdown using a turndown-based script, then manually reviewed the top 20 posts for formatting issues.

By end of day one, all content was in Supabase, the Next.js scaffold was up, and the blog listing page was rendering real data.

Day 2: Programmatic pages, SEO, and deploy

The programmatic layer generates pages from structured data — categories, topics, local angles — without creating each page manually. One template file, one data source, many routes. This is what gives a news site 10x the organic surface area without 10x the editorial work.

SEO infrastructure was built in before content went live: sitemap.ts auto-generates from Supabase, robots.ts handles crawl rules, schema markup is injected per post type, and meta tags are set from the database record.

Vercel deployment took 12 minutes from the first git push.

What Changed After

Performance — Lighthouse scores went from the 40–55 range (WordPress with caching) to 92–98. First contentful paint dropped from 3.4 seconds to under 0.8 seconds.

Flexibility — Adding a new content type, a new category, or a new programmatic page template is a code change, not a plugin decision. The data model is in my control.

Content pipeline — New posts go into Supabase via the admin panel. The AI agents can propose posts. The sitemap auto-updates on the next ISR cycle. No WordPress dashboard, no plugin conflicts.

Scale — The site now runs 60+ posts and programmatic landing pages from a single Vercel deployment and a Supabase free-tier database. Cost per month: zero.

What This Migration Is Not

This is not a plug-and-play process. If your WordPress site has complex plugin-dependent functionality — WooCommerce, membership systems, complex forms — the migration cost is much higher. The sweet spot for this approach is content-heavy sites where the primary complexity is the content model, not business logic.

Lessons for Anyone Considering This

Start with content migration first, before touching the frontend. Getting the data right is the hardest part. The frontend follows quickly once you have clean, queryable data in a proper database.

Use ISR (Incremental Static Regeneration) from day one. export const revalidate = 3600 on blog post pages means you get static performance with live data. Do not skip this step.

Automate the sitemap before you add the first post. The sitemap that generates from Supabase will include every post you ever add, forever, with no manual work.


Resources


Stuck on an aging WordPress site? I can rebuild it on Next.js + Supabase — content migrated, SEO preserved, performance improved. See my services or get in touch.

Get the free AI-SEO Content Checklist

A practical checklist for getting your own content cited by Google AI Overviews, ChatGPT, and Perplexity — not just ranked.

No spam. Unsubscribe anytime.

Want to implement this with guidance?

Santosh helps founders turn insights like this into real systems.

SEO Content Strategy

External Resources

Further Reading & Tools

Related Posts

01
2 min
Next.jsSupabase
6d agoProgrammatic SEO

The Engine Room: Architecting a 200+ Page Programmatic Content System on Next.js 15 & Supabase

Managing a handful of blogs is easy. Scaling to 200+ high-quality, vertical-specific content assets is an engineering challenge. Here is the exact programmatic database schema, static generation routing, and automated pipeline behind a high-velocity content engine.

Read article
02
9 min
Next.jsSupabase
20d agoDev Sprint

How I Shipped 4 Full-Stack Platforms in 25 Days

Four production-ready sites. One developer. Twenty-five days. Here is the exact stack, timeline, and workflow — including what broke and what made it possible.

Read article
03
8 min
portfolioadmin panel
23d agoProject Deep-Dive

Case Study: santoshpaudel.me — A Portfolio That Runs Like a Business

Most developer portfolios are digital brochures. Mine has a CRM, lead management, AI content agents, and a full admin panel. Here is what I built and why.

Read article