Work / Arc'teryx
Drupal to Sanity in six weeks
A security finding put a deadline on a CMS migration the team had estimated at six more months. I took the tech lead role and we shipped it in six weeks.
- Role
- Tech lead on the migration (a role, not a title)
- When
- 2023 – 2024
- Stack
- SanityNext.jsReactTypeScriptFastlyDrupal (source)
- Delivery
- 6 weeks
- Measured
- Against a team estimate of six more months
- Languages migrated
- 8
- Measured
- Business impact after launch
- Unmeasured
- Unmeasured
The situation
Arc'teryx's content pages ran on Drupal. A penetration test commissioned by the parent company flagged it, and the migration that had been drifting suddenly had a date. The team estimated six more months. The director gave us six weeks.
It was really two migrations at once: content from Drupal into Sanity, and the legacy Next.js "Landing Pages" app into a new Next.js "Content Pages" app, with Fastly gateway work in between, across eight languages and with an agency partner building alongside us.
What I did
I was already mentoring the team's back-end-leaning intermediate developer on React, so I asked for the tech lead role for the duration, and got it.
- Dropped the agile ceremonies for six weeks. One shared deadline was doing all the coordinating a sprint board would have done, and we needed the hours.
- Ran a full in-office week of schema mapping before anyone wrote migration code. Every Drupal content type got a Sanity destination, or an explicit decision not to have one.
- Then six weeks heads-down. Content moved partly by hand and partly through an AI-assisted translation layer.
After launch: structured content
Shipping on the deadline meant shipping with Drupal's structures intact. I made the case for structured content instead of page-builder blobs: content modelled as data that other teams and channels can reuse. I split the team into a design-system stream and a content stream, and ran reimagining workshops on content that was trapped, such as a sizing guide that lived inside the page builder where no other team could reach it.
The structured content strategy I defined was adopted by the global content team. Because the team turned over heavily, I also built the documentation layer: glossaries, executive summaries, architecture diagrams, videos and in-person training so analysts and product managers could work with the new system (what Landing versus Content Pages meant, how Fastly caching behaved, how publishing worked).
The migration earned a 2025 nomination for Arc'teryx's company-wide Creative Disruption award.