Skip to main content
All work

Case studyProduct2026 — in progress

Content Migration Tool

A website content migration tool that captures existing pages, supports content review and editing, rebuilds the sitemap, and transfers the approved structure into a CMS.

Role
Design & Build
Timeline
2026 — in progress
Status
In development
Category
Product
Content Migration Tool visual sitemap with page hierarchy and a Push to CMS action

01Overview

Rebuilding a school website normally starts with weeks of content archaeology — clicking through every page, copying it into a spreadsheet, arguing about structure in a sitemap tool, then re-typing all of it into a CMS. This content migration tool brings crawling, content review, sitemap planning and CMS transfer into one workflow.

The challenge

The slow part of a website rebuild is rarely the build.

What I did

  • Crawl
  • Assess
  • Refine
  • Restructure
  • Publish
  • Interrogate

The result

17 schools crawled to date — 23,323 pages and 1,673 linked documents captured.

02The problem

The slow part of a website rebuild is rarely the build. It is the audit that comes first: finding every page that exists, judging which of it is worth keeping, agreeing a new structure, and then moving it across. On a large site that is thousands of pages of manual work — and it starts from zero again on the next project.

03Approach

  1. Crawl

    Point it at a domain and it walks the whole site, capturing pages, linked documents and the existing hierarchy. Runs are tracked as jobs with live progress and a failure breakdown, so a crawl that stalls on one section is visible rather than silent.

  2. Assess

    Each property gets an automated read: a content and marketing score, a detected CMS platform, and a plain-English summary of what the site is and where it is weak. That turns a raw page dump into something you can actually prioritise against.

  3. Refine

    Pages are rebuilt in a block editor with a fixed template library — rich text, split image and text layouts, video, carousels — plus dynamic blocks that render live from CMS data rather than being pasted in as static copy.

  4. Restructure

    The refined inventory feeds a drag-and-drop sitemap where pages can be added, merged, included or dropped. It is the Slickplan stage, except the canvas arrives already populated with the real site instead of empty.

  5. Publish

    The agreed structure pushes directly to the target CMS, with a dry-run option before committing. The re-typing step disappears entirely.

  6. Interrogate

    Everything crawled becomes a queryable corpus — natural-language questions across the whole set, answered from retrieval over the captured pages rather than a general model's guesses.

04Screens

05Results

  • 17

    schools crawled to date — 23,323 pages and 1,673 linked documents captured.

  • One site alone accounted for 8,866 pages, an audit that is simply not viable by hand.

  • Structure decisions get made against the real inventory rather than a guess at it.

  • Content is captured once by the crawler instead of being re-typed into the CMS.

NoteInternal tool, in active development. One deliberate constraint worth naming: a re-crawl overwrites manual edits, so refinement happens after the crawl is settled rather than alongside it — the editor warns on this rather than silently losing work.

06Built with

Frontend

Next.js (App Router)ReactTypeScriptTailwind CSSReact FlowTurbopack

Platform

Supabase AuthSupabase (Postgres)

Type

GeistGeist MonoSource Serif 4