Case Study: George W. Bush Presidential Center

 Case Study: George W. Bush Presidential Center 


Preserving a legacy: migrating decades of presidential content from WordPress to Sanity

Project outcomes: 
The migration delivered measurable improvements across multiple touchpoints:
1. Page rendering improved by up to 13×: Speed Index improved from 13s to 1s
2. Critical content now appears ~3 - 5× faster (FCP and LCP)
3. Zero plugin overhead: reduced maintenance and security risks 
4. Improved editorial velocity: content updates now go live instantly
5. Future-ready architecture: structured content can power apps, APIs, and new digital experiences

About the project:
The Presidential Leadership Scholars site had decades of presidential history, which included thousands of interconnected articles, profiles, and resources. But over time, WordPress became unstable beyond 100+ pages, weighed down by plugins, prone to brute force attacks, and frustrating for editors. Preserving that digital legacy was a non-negotiable. We do a mean migration.
The stakes were high. This wasn't just content or another website migration project for bettering the performance with headless solutions for us. It was a digital history that needed to be preserved, enhanced, and made more discoverable than ever before. It was about safeguarding an institution’s historical archive safely (considering it’s a government political website) while setting the stage for future growth. 
The risk was that if the website ran slowly or wasn’t secure, end users would lose access, trust would drop, and data would face real threats. For the full rant, refer to our migration page.

Our approach:
Our strategy revolved around two priorities: 
1. preserve the archive without compromise
2. empower editors with flexibility going forward
Our strategy was to migrate the bare minimum to get the client up and running. We kept the migration lean, reduced complexity, and made faster progress with less risk. We didn't waste efforts on content that didn’t matter.
Our client had a technical background, which accelerated the entire process. We mapped content for consistency, looked for semantic HTML, and used Cheerio to scrape any content that didn’t require client-side rendering.

The technical stack included: 
1. Sanity CMS for structured content and editorial workflows. 
2. Next.js for performant rendering, static generation, and performance optimization. 
3. TypeScript to ensure safety, reliability and maintainable development. 
4. Vercel for the fast, secure deployment with built-in performance optimizations.

Hear from the client:
“Your code is SO neat and tidy, it’s just lovely!”
- Andrew Kaufmann, Representative at George W. Bush Presidential Center

Migration:
Migration was the first step in adopting headless architecture, so we made sure clients started the right way.
We used Turbo Start Sanity for the foundation, and migrated the blogs into a paginated and SEO rich layout. We kept the link as part of the migration work. We also find any internal links and create a synchronised link. E.g., if page A goes to page B and then page B’s URL updates down the line, page A shouldn’t have a broken link
Everything works flawlessly with latest Sanity features without breaking a sweat (or a link for that matter). 

SEO pagination:
SEO pagination was our biggest challenge. If done right, Google can find and list all content. If not, important content gets buried, and traffic and rankings can quickly drop.
The best place to hide a dead body is page two of Google
No joke, every paginated blog landed safely. Google sees it all, every post survived the move. Turbo Start Sanity stole the show. Migration worked, SEO held strong, client pleased, no posts left behind.

CMS fragility and plugin risks:
Back in 2024, WordPress sites across the web woke up to chaos when the popular ACF plugin was pulled overnight from WordPress.org. Editors and developers suddenly found themselves locked out of critical workflows, all because of this single dependency. It was a wake-up call that plugin-heavy CMS setups can crumble without warning.
With over 2 million active installations, ACF’s sudden removal meant millions of sites were potentially exposed to disruption from this single point of dependency.
Amidst this fragility, Turbo Start Sanity's stability of being a schema-driven, plugin-free approach flipped the script for many, bringing consistency and peace of mind.

How we did it:
These enhancements meant users could access rich historical content quickly, no matter the depth of the archive.
1. Content migration
We scraped the website using Cheerio, and then transformed the data, ensuring that we kept the link as part of the migration work. During the process, we also tapped internal links and created a synchronised link. Further, with Sanity’s API-first architecture, interconnected content was preserved without risk of future breakage. Using Sanity Functions, even if URLs change down the line, redirects are handled automatically, ensuring the archive remains intact and discoverable.
This process preserved relationships between articles, author profiles, and metadata while eliminating the plugin overhead of the old system.
While many would expect us to pull the data from a WordPress JSON file, not knowing that a JSON file ends up being messy and far more difficult than the output of a website.

“We migrated all the blogs, didn’t lose a single piece of data, and the client was so impressed with the way Turbo Start Sanity was coded that he dropped his own solution for ours.” 
- Jonathan Alford, Founder at Roboto Studio

2. Custom editorial workflows
Sanity Studio was customized for the Bush Center’s needs: 
- Custom input components for issue areas and author links. 
- SEO fields built directly into the schema. 
- Validation rules to ensure content accuracy. 
- The image pipeline made asset handling “set and forget”. Images are now automatically optimized and served at the best quality-to-performance ratio without extra steps. Editors just upload, and the system does the rest.
- Solved a long-standing pain point from WordPress: cropping and focus. With Sanity’s built-in hotspotting, editors can define exactly which part of an image should be emphasized across different aspect ratios, ensuring consistent presentation everywhere. 

3. Real-time previews 
We integrated Sanity’s Live Content API with Next.js to enable instant previews. Editors can now see updates reflected in real time, removing guesswork and cutting down iteration cycles.

4. Structured search and navigation 
We used GROQ queries to build a powerful, flexible search system – something WordPress struggled with at scale. Unlike WordPress, which relies on heavy plugins for advanced querying, GROQ integrates seamlessly with the frontend as just your regular Next.js code. All without any fragile third-party dependencies, no custom plugin development required.


“After a certain point, WordPress becomes a liability. Sanity let us design content the way it needed to be, not the way the CMS dictated.” 
- Jonathan Alford, Founder at Roboto Studio

Performance at a glance:
When it came to speed, the difference was night and day. The Bush Center’s old WordPress site struggled with long load times, leaving users waiting several seconds before pages became usable. After the migration to Sanity, performance skyrocketed. 


Performance was non-negotiable for us. We knew the site had to be lightning-fast, so we doubled down on optimizations. First, we leaned on Sanity’s built-in CDN and image transformations to reduce payload sizes without losing quality. Then, we layered caching between Vercel and Sanity to make sure responses came back instantly. On the frontend, we split the JavaScript bundles so visitors never had to load unnecessary code, which boosted our Lighthouse scores to 95+ range. And we didn’t stop there, we kept tuning Core Web Vitals to ensure key pages consistently loaded in under a second for the better UX.
The result: 1300% gain in performance - delivering instant page loads, seamless navigation, and a world-class UX.

After a certain point, WordPress becomes a liability. Sanity let us design content the way it needed to be, not the way the CMS dictated.” 
- Jonathan Alford, Founder at Roboto Studio

Reflecting back:
For us at Roboto Studio, this project showcased our expertise in large-scale content migrations, customised editorial workflows, and building future-proof architectures that align with an institution’s mission. The migration also helped refine our internal framework. Pagination on blogs was added to the Turbo Start Sanity setup as a direct outcome of this project. It reinforced our mantra of 1% improvement daily and solidified our method of handling blog, author, and category migrations for future projects.

Comments

Popular posts from this blog

Revolutionizing Disaster Management

Women in Agri-Startups

Technical SEO article: Mark Cuban Bold Move: Trump-Inspired Meme Coin Launch to Tackle National Debt