99-Page Dental Template Customisation
99-page dental practice site customised across 10 templates and a 58-item checklist in 60 days — 61 hours, 9 QA items resolved, shipped on schedule.
Screenshots captured by automated tooling — some elements may not have loaded fully or may layer on top of each other. For the most accurate view, visit the live site →
Rebuild the site on a new stack. Implement the spec. Don't improvise. Hand it back ready for cutover.
Client (end user): Grand Oaks Dentistry — a US dental practice in Austin, TX
Engagement: White-label template customisation for a US marketing agency
Delivered: April 2025 · 60 days · 61 hours · 99 URLs · on schedule
The Craft of Template Customisation
99 URLs mapped across 10 agency templates — a legacy dental site on .html permalinks migrated to a fresh WP Engine install, Figma per page as the design contract. URL migration ran first: clean permalink structure, redirect map, missing-page audit. Mid-project, the client flagged staging as «unattractive, content not laid out professionally» — the design system had diluted in transit. The second half was restoring that fidelity against the template before the 58-item checklist could close.
The value is speed with consistency — but only if the customisation is disciplined. A dev team that “interprets” the design, skips QA rounds, or deviates from the template’s design system is worse than starting from scratch.
This case study is a record of a template customisation executed to the agency’s design, including a mid-project revision round that tested whether the team could restore the template’s visual promise without losing the content that had already been migrated.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Healthcare — General Dentistry |
| End-client | Grand Oaks Dentistry (US dental practice, Austin, TX) |
| Engagement | White-label template customisation for a US marketing agency specialising in local-business websites |
| Project Type | WordPress template customisation (agency’s branded template + per-page design on WP Engine) |
| Scope | 99 URLs — homepage, services lander, service pages, doctor bio, staff, testimonials, insurance/financing, blog posts, and supporting pages |
| Timeline | 60 days (6 Feb – 7 Apr 2025), on schedule |
| Effort | 61 hours — development, QA iterations, fixes, and project management |
| Team | 6 specialists |
| Templates | 10 reusable templates provided by the agency, applied across the 99 pages |
| Tech Stack | WordPress · Elementor · WP Engine hosting · Figma-driven per-page design · Site Checker (xaverPRO QA plugin) |
| QA discipline | 9 tracked issues reconciled in the agency’s backlog across a 58-item launch checklist |
| Engagement cadence | 9 agency-raised issues · all closed by handoff |
| Review rounds | ≈4 review rounds across the 60-day calendar window |
| Per-ticket effort | 13 internal Redmine tickets · median 1.5h / P75 3h per ticket |
| Launch checklist | 58 items, signed off before cutover |
The Brief
A US marketing agency delivered us a brief for Grand Oaks Dentistry: migrate an existing legacy site onto their branded WP Engine-hosted template system, preserving all content, metadata, and URL structure while adapting the practice’s brand to the new template’s design language. The agency had already done the upstream work: client requirements, template selection, hosting setup, and content sourcing. What they needed was a development team that would execute the migration faithfully and sustain the QA loop through however many rounds the design-match required.
The initial build progressed on schedule. Then the client reviewed the staging site and raised a concern that would reframe the second half of the engagement: the site did not look as professional as the template he had chosen. The issue was not functional — pages loaded, links worked, content was present. The issue was aesthetic fidelity. The template’s visual promise — its spacing, typography hierarchy, image treatment, and colour discipline — had been diluted during content migration. What the agency needed to guard against was a dev shop that treats template customisation as pure content migration, moving text and images from point A to point B without asking whether the result still looks like the template the client paid for. A template is a design system, not a container. The risk the agency was hedging against was the silent degradation of that system during migration.
Risk context. A template migration that moves content faithfully but loses the design system in transit delivers a site that is functionally complete and visually wrong. The failure mode is aesthetic, not functional — pages load, links work, content is present — but the spacing, typography hierarchy, and colour discipline that made the template worth buying are diluted. The agency was guarding against a dev team that treats template customisation as content transport rather than design-system execution.
How We Did It
1. Figma-as-contract, template-as-canvas. The agency’s design references and the branded template were the dual sources of truth. Our job was to reconcile them page by page — where the template’s default layout matched the design intent, we kept it; where the legacy content required a deviation, we customised. No design decisions originated on our side.
2. QA cycle at template-customisation scale. A clean template customisation is not “build once, review once”. It is “build, QA, adjust, QA, adjust”. On this project, the QA loop included a formal QA stage (responsive verification, link audit, meta-tag check, content correctness), followed by a client-driven revision round to restore template feel, followed by post-live fixes after the site was pushed to production before all staging updates had closed. Each round was tracked as a separate Redmine task and closed only on agency sign-off.
The principle behind this is simple: on a templated build, the QA loop is where the value is delivered. A shorter QA cycle is a weaker match to the design, not a faster delivery.
3. Customisation without drift. Every change we made to the branded template — whether to a page layout, a section component, or a style token — was scoped to the per-client override layer. No customisation leaked into the template’s shared components, which means this project’s work did not degrade the template for the next site it would serve.
4. Cross-device verification. Customisations were QA’d against Chrome, Firefox, Safari, and Edge on desktop, tablet, and mobile viewports. Each QA round covered the pages affected by that round’s design deltas, not the whole site, which is how a templated build stays efficient without losing coverage.
The tension was a site that was functionally complete — pages loaded, links worked, content was present — but had lost the spacing and colour discipline that made the template worth choosing. Restoring it meant a second pass through the affected pages, checking each against the agency’s template reference before the corrected build went back to QA.
Operational Integrity at handoff
The internal QA stage ran the checklist — heading tags, title and meta tags, links, and responsive layout across desktop and mobile — before the first handoff; when the agency flagged that the build had drifted from the template’s visual promise, a second pre-resubmission pass ran the same checks against the revised pages to confirm design fidelity had been restored before the agency saw the corrected build. Pre-handoff QA ran through Site Checker — see our QA discipline for the categories and the fail-zero gate. The agency’s own QA layer — their tools, their process — ran post-handoff and surfaced issues into the shared backlog for our fix loop until they signed off.
Customisations stayed in the per-client overrides; the agency’s shared template components were not modified.
Results
| Metric | Outcome |
|---|---|
| URLs delivered | 99 — homepage, services lander, service pages, doctor bio, staff, testimonials, insurance/financing, blog posts, and supporting pages |
| Templates applied | 10 of 10 reusable templates built and mapped across the 99 pages (Homepage, Services Lander, Service Page, About Us, Doctor Page, Contact Us, Blog Lander, Blog, Smile Gallery, Default Template) |
| Launch checklist | 58 items signed off |
| QA / SEO issues tracked + resolved | 9 items reconciled across the agency’s issue-backlog tab |
| Redmine QA iterations | 5 of 13 tasks tracked at the iteration level (QA stage, client revisions, backlog fixes, testimonials update, live-site cleanup) |
| Timeline | 60 days, delivered on schedule |
| Effort | 61 hours — no overrun, no scope creep |
| Team | 4 specialists |
| Hosting handoff | Live on the agency’s WP Engine template environment |
| Page health at handoff | Staging URLs returned HTTP 200 in the sitemap audit |
The outcome, restated plainly: the agency’s template was customised across 99 pages and 10 templates, over 60 calendar days, inside the 61-hour estimate.
Process
| Phase | Duration | Outcome |
|---|---|---|
| Brief & estimation | ~1 week | Figma reviewed, template access confirmed, scope agreed (45-hour estimate) |
| Customisation development | ~2 weeks | Page-by-page content migration and template customisation |
| QA iterations (concurrent) | ~2 weeks | QA stage + client revision round to restore template feel |
| Fix rounds | ~3 weeks | Post-live corrections, meta-data comparison, redirect fixes, urgent cleanup |
| Delivery | final day | Site live on WP Engine |
Development and QA ran concurrently — this is characteristic of template-customisation work, where no “QA phase” closes cleanly; the loop runs continuously until the agency signs off.
Team
Delivery team
- Nikita Tumasevic — lead developer (template customisation and migration execution)
- Pavel Sazhin — project management and QA iterations
- Anna Polunina — QA iterations and template-feel restoration
- Evgeniy Karpov — developer support on early customisation rounds
- Natalia Bogatel — QA and project coordination
- Anton Hersun, xaverPRO — project lead (estimation, agency-side communication, sign-off)
Agency-side project management, design, and client communication remained with the partner agency throughout. Our team was invisible to the end client. All customisation requests came through the agency’s shared issue backlog; nothing about the build was visible to the end client directly. Each round was closed only after the agency-side reviewer confirmed the changes were resolved to spec.
For agencies with a branded template system
If your agency has had a build come back “functionally complete” but visually wrong — pages loaded, links worked, but the template’s spacing and typography were gone — that is the failure mode we build against. Send a sample design, your template access link, and any client-specific content that does not map to the template’s default sections. We will flag the fidelity gaps before any migration work begins. No cost, no obligation.
Don't have a spec yet? Send a one-paragraph description — we'll come back with the questions worth asking. Send a description →
Site Checker runs before the agency sees anything.
Before handoff, every staging build runs through Site Checker — the WordPress QA plugin we built and maintain. It is a fail-zero gate: nothing goes to the agency with an open failure. Warnings are reviewed and judged non-blocking; the agency gets a clean slate to run their own QA layer against, not a staging site with known issues in the queue.