- Frictionless, by Pagepro
- Posts
- How Next.js & Sanity Transformed a 100K-Page Medical Platform
How Next.js & Sanity Transformed a 100K-Page Medical Platform
Behind migrating GPnotebook and what you can learn from it

Hello!
When OmniaMed came to us with GPnotebook, we knew it would be our biggest project yet. It’s one of the UK’s most trusted clinical references, 100K+ pages used daily by doctors.
However, its legacy setup was slowing everything down. Editors needed developers for every update, and sub-brands had drifted across separate sites. We migrated it to Next.js, Sanity, and Algolia, creating a faster, easier-to-manage platform that OmniaMed’s team could run independently.
Today, I want to share how we made it happen, and how your team could, too.
Snapshot

Client: OmniaMed
Product: GPnotebook, a widely used clinical reference
Scale: 100K+ pages; 30,000+ concise, interlinked clinical topics
Challenges: Legacy CMS slowed publishing; sub-brands split across sites; frequent updates needed for CPD; editors dependent on developers
Stack: Next.js, Sanity, Algolia, Node.js, Stripe, DeepL.
Outcomes: Faster editorial workflows, unified platform, localization-ready content, and easy content management.
The Challenge: A Legacy System That Couldn’t Keep Up
OmniaMed has been helping healthcare professionals stay informed since 1995. Their flagship product, GPnotebook, is a trusted clinical reference, with over 30,000 concise articles accessed by doctors daily.
![]() | ![]() |
Unfortunately, the aging technology behind the platform slowed it down. Editors needed developer help, updates dragged on, and sub-brands like GPnotebook TV and Podcast ran on separate sites.
To stay relevant, especially with constant CPD updates, they needed one flexible platform that could grow with them. That’s where Pagepro stepped in.
The Solution: Modern Foundations for a Complex Platform
We migrated GPnotebook to a composable stack that balanced power with simplicity.
![]() | ![]() |
Sanity became the control center for content, ads, and sub-brands—replacing the legacy CMS with flexible schemas, regional targeting, PubMed integration, and clear publishing roles.
Next.js handled speed and scalability, combining SSG and SSR with custom APIs for CPD tracking and reports.
Algolia unified articles, podcasts, and videos into one instant search index.

GPnotebook Core Web Vitals Results
To improve performance, we trimmed bundles, replaced SCSS with Tailwind, shifted logic server-side, and fixed an interaction bottleneck. This boosted INP by nearly 70%, making interactions feel instantly responsive for users.
The Results: A Platform Ready to Grow
Migrating GPnotebook to a modern stack gave OmniaMed exactly what they needed: a faster, more flexible platform.
Content teams now work independently, publishing updates and managing thousands of pages without developer involvement. All sub-brands live under one domain, offering users a unified experience and consistent governance.
Within Sanity, content can be localized by region, ads can be placed with precision, and new features can be added without disrupting the system. OmniaMed now has the foundation to keep expanding without reinventing the stack each time.
Lessons from the Project
When products grow, old tech can start holding them back, just like it did for GPnotebook.
Modern migrations do more than update your stack. They create space for new ideas, faster performance, and teams that move without friction. That’s the purpose of our Legacy System Migration Service: helping teams clear the obstacles that stop innovation and build platforms that can keep evolving.
If you’re ready to leave your legacy setup behind, we’d be happy to map out what your migration could look like.
Thanks for getting this far. I’ll be back to the usual mix of news tomorrow, but I hope this issue sparked a few ideas for your own platform.
Let’s Stay in Touch! 📨
Do you have any comments about this newsletter issue or questions you want to ask? Drop me a message or book a meeting.
What do you think of today's email?Your feedback helps me improve Frictionless |




