Healthcare website migration from Wix to modern Next.js stack for a pelvic floor physical therapy practice
A pelvic floor physical therapy practice in Ohio was struggling with their Wix website—Core Web Vitals were failing (LCP over 6 seconds), the site was difficult for staff to update, and local SEO rankings were poor despite quality care. This was also an opportunity to mentor Sean Sipus, a fellow Juno College of Technology alumnus from Toronto who needed a refresher on React fundamentals. I led the rebuild while pair programming with Sean through every feature, mentoring him in TypeScript, Next.js, and Sanity CMS.
Migrate the practice's website from Wix to a modern, performant Next.js stack while preserving SEO equity and improving Core Web Vitals. Simultaneously mentor a fellow Juno College grad who needed to refresh his React fundamentals, teaching him TypeScript, Next.js patterns, and CMS integration through pair programming on every feature.
Conducted comprehensive audit of existing Wix site, documenting all pages, content, and current SEO rankings with Sean to teach site analysis
Set up Next.js project with TypeScript, ESLint, and Prettier, walking Sean through modern tooling configuration and why each tool matters
Pair programmed component architecture, teaching Sean atomic design principles and React composition patterns
Designed and implemented responsive layouts using Tailwind CSS, explaining utility-first CSS methodology
Integrated Sanity CMS with GraphQL using Apollo Client and Apollo Server, teaching Sean headless CMS concepts and API design
Implemented 301 redirects for all existing URLs to preserve SEO equity, explaining redirect strategies and SEO fundamentals
Added structured data (LocalBusiness, MedicalBusiness schemas) for enhanced local search presence
Built HIPAA-conscious contact forms with proper data handling, discussing compliance requirements in healthcare
Optimized all images with next/image and WebP conversion, teaching performance optimization techniques
Implemented ISR (Incremental Static Regeneration) for optimal performance with dynamic content
Set up Vercel deployment with preview environments, teaching CI/CD concepts and professional deployment workflows
Created documentation for the client and conducted training session on CMS usage
Conducted code reviews with Sean throughout, providing feedback on code quality, naming conventions, and best practices
Largest Contentful Paint improved from 6.2s to 1.8s (71% improvement)
PageSpeed Insights score increased from 32 to 94
Organic search traffic increased 45% within 3 months of launch
Patient inquiry form submissions increased 60%
Zero SEO ranking losses during migration—all existing rankings preserved
Staff can now update content independently without developer assistance
Site maintenance time reduced by 80% compared to Wix
Successfully mentored junior developer who gained confidence in modern web development stack
MVP, stretch goals, and future vision
Development phases and milestones
Physical therapy practice website with patient portal
Responsive website for physical therapy practice
Common questions about this project, answered in STAR format
Tell me about a time you mentored someone through a technical project.
Key Takeaway: Refresher learning builds on existing knowledge rather than starting from scratch. Meeting people where they are and reinforcing what they know before adding new concepts accelerates the learning process.
Describe a situation where you had to balance multiple competing priorities.
Key Takeaway: Balancing mentorship with delivery requires explicit planning and stakeholder communication. You can't treat teaching as invisible overhead—it needs to be accounted for and valued as part of the project scope.
How do you approach helping someone refresh skills they haven't used recently?
Key Takeaway: Refresher learning is faster than teaching from scratch because you're reactivating existing knowledge, not building it. Focus on what's changed in the ecosystem and connect new concepts to what they already know.
Quick answers to 'Why did you choose X?' questions
Healthcare platforms are expensive ($300-700/month) and limit customization. Next.js gave us full control over performance, design, and SEO while being more cost-effective. It also provided a better learning experience for Sean—he learned transferable skills rather than platform-specific workflows.
Started by reviewing React fundamentals Sean already knew from Juno College—components, props, state, hooks. Once those were solid again, introduced TypeScript gradually as 'React with guardrails.' Then layered in Next.js patterns like file-based routing and server components. Building on existing knowledge is faster than teaching from scratch.
Sanity's real-time collaboration and intuitive Studio made it easy to train both Sean and the client. The generous free tier works well for small sites. We used GraphQL with Apollo Client and Apollo Server instead of GROQ—GraphQL is more widely adopted in the industry, making it a more transferable skill for Sean. We could also customize the Studio interface to match the client's mental model of their content.
Used driver-navigator pattern where Sean drove most of the time while I guided. Started sessions with a brief explanation of what we'd build and why, coded together with lots of questions and discussion, then ended with Sean summarizing what he learned. This kept him engaged and reinforced concepts.
Exported Wix content manually (no clean API), used this as a teaching moment about content modeling. Sean helped restructure content for Sanity schemas, learning how CMS architecture affects frontend development. We built import scripts together, practicing TypeScript and API interactions.
Every decision has costs — here's how I thought through them
Building people is as important as building software. Sean gained confidence and skills he's now using professionally, and the teaching process improved my own technical communication.
Teaching current best practices prepares Sean for professional work. The performance benefits directly impacted SEO and user experience, justifying the complexity.
For a developer rebuilding fundamentals, guided practice builds better habits than struggling alone. Independence came later as Sean's confidence grew.
The hardest problems I solved on this project
Created comprehensive redirect mapping, implemented structured data, and used this as a teaching opportunity to explain how search engines index and rank content
Built a redirect verification system and walked Sean through each redirect, explaining URL structures, canonical tags, and sitemap generation
Lesson: Platform migrations are excellent teaching opportunities—they touch every aspect of web development from routing to deployment
Discussed HIPAA basics, patient privacy, and the emotional context of pelvic floor therapy with Sean before starting content work
Established content guidelines together and reviewed all copy for appropriate tone, teaching the importance of domain context in development
Lesson: Technical skills alone aren't enough—understanding the domain and user context is essential, and mentoring should include this broader perspective
Set clear expectations with client about the mentorship component, structured work so Sean could practice on non-critical-path items first
Created a learning roadmap that aligned with project milestones—Sean built components with increasing complexity as the project progressed
Lesson: Mentorship projects require upfront communication with stakeholders and intentional task sequencing to balance learning with delivery
Started by reviewing React basics Sean already knew, then built on that foundation to introduce TypeScript typing and Next.js-specific patterns
Used pair programming to reinforce React patterns while gradually layering in TypeScript and Next.js concepts, letting Sean drive while I guided
Lesson: Refresher learning is different from teaching from scratch—build on existing knowledge and focus on what's changed in the ecosystem
Want to discuss this project?