A CMS migration with content and URLs to preserve

Through Centreville Tech, I independently delivered the initial migration of NetRise's corporate website from HubSpot to Next.js, TypeScript, and Sanity.

The migration covered hundreds of existing content pages. I moved that content into structured CMS records and reusable React templates, rather than rebuilding each page as a separate implementation. Existing URLs needed continuity, so redirects were part of the delivery.

I owned the architecture and implementation of the migration, from migration tooling and reusable components to CMS editing and preview, integrations, validation, cutover, and handoff. The initial work ran from May 15 to June 23, 2026: 39 days. Other contributors worked on the site later.

Migration scope · simplified
Starting pointHubSpot CMS

Existing pages and URLs

DestinationNext.js + Sanity

Reusable templates and structured content

Content mapping · Redirect continuity · Visual and content checks

Delivery meant checking more than the templates

A template can render correctly while individual migrated pages still have missing content or broken links. I checked content, redirects, and rendered behavior alongside the implementation, using code review, automated tests, and visual QA.

I used Cursor, Claude Code, and Codex during development. I remained responsible for architecture, reviewing their output, and validating the result.

The initial migration was followed by a one-year client retainer.