44-Page Dental Template Customisation
Customised a 44-page dental template in 40 days — 10 templates applied across 44 URLs, 290+ QA items reconciled, 22 hours. Shipped to spec.
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): Irmo Dentistry — a US dental practice in Irmo, SC
Engagement: White-label template customisation for a US marketing agency
Delivered: September 2025 · 40 days · 22 hours · 44 URLs · on schedule
The Craft of Template Customisation
44 pages of a dental practice mapped onto a 10-template Figma system — 25 service pages, a services lander, a doctor bio, and a Smile Gallery held back until content was ready, all inside a 22-hour estimate. The agency delivered the Figma as contract; we owned the per-page execution and the QA: 125 tracked SEO and CX items reconciled across the workbook before the agency signed off on cutover.
The value is speed with consistency — but only if the customisation is disciplined. A dev team that “interprets” the Figma, 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 lean-hour template customisation where an established dental practice’s full URL surface was migrated to the agency’s branded template system — 44 pages mapped, 10 templates applied, and 290+ QA items reconciled inside a 22-hour estimate.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Healthcare — General Dentistry |
| End-client | Irmo Dentistry (Irmo, SC) |
| 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 Figma design on Kinsta) |
| Scope | 44 URLs — 1 homepage, 1 services lander, 25 service pages, 1 doctor bio, 1 about + 4 sub-pages, 1 blog lander, 1 contact, 1 smile gallery (hidden), and 7 supporting pages |
| Timeline | 40 days (6 Aug – 15 Sep 2025), on schedule |
| Effort | 22 hours — development, QA iterations, and project management |
| Team | 4 specialists |
| Templates | 10 reusable templates provided by the agency, all applied across the 44 pages |
| Tech Stack | WordPress · Elementor · Kinsta hosting · Figma-driven per-page design · Site Checker (xaverPRO QA plugin) |
| QA discipline | 290+ tracked QA items reconciled across the agency’s two issue-backlog tabs (105 SEO + 186 CX) and a 40-item launch checklist |
| Engagement cadence | 104 agency-raised issues · all closed by handoff (20-day active span, 2025-08-14 – 2025-09-02) |
| Review rounds | ≈3 review rounds across the 40-day calendar window |
| Per-ticket effort | 6 internal Redmine tickets · median 5h / P75 5h per ticket |
| Launch checklist | 39 items, signed off before cutover |
The Brief
A US marketing agency delivered us a Figma design for Irmo Dentistry and a deployment target on their branded Kinsta-hosted template system. The agency had already done the upstream work: design audit, client approval, hosting setup, content plan. What they needed was a development team that would map the Figma onto the template faithfully, through however many customisation iterations the design required.
The ask was operational. Take the Figma as the source of truth. Customise the template to match it page by page, breakpoint by breakpoint. Raise QA findings back to the agency in the shared workspace; don’t close them without agency sign-off.
What the agency needed to guard against was a dev shop that would treat a 44-page migration as a bulk-copy exercise. The practice already had a live website with an established patient-facing URL surface; moving it to the agency’s branded template system meant preserving every URL, hiding incomplete pages, and sustaining QA discipline across 290+ tracked items — all inside a 22-hour budget.
Risk context. The practice already had a live website with an established patient-facing URL surface. Moving it to the agency’s branded template system meant mapping 44 existing URLs — each with live traffic and search-index history — onto a new template structure without dropping pages, breaking slugs, or leaking incomplete content. With only 22 estimated hours, the risk was not just in the migration itself but in sustaining QA discipline at a lean-hour budget: every URL had to be preserved, the Smile Gallery held back until content was ready, and 291 tracked items across SEO and CX backlogs reconciled before handoff. Several content-dependent sections — the doctor-team bio page, patient testimonials, and the Smile Gallery — shipped with placeholders or were explicitly hidden at launch because the client-facing content assembly had not caught up to the build timeline.
How We Did It
1. Figma-as-contract, template-as-canvas. The Figma file was the design spec. The branded template was the underlying page structure. Our job was to reconcile the two page by page — where the template’s default layout matched the Figma, we kept it; where the Figma required a deviation, we customised. No design decisions originated on our side. We chose template-defaults-first over page-by-page bespoke build because the 22-hour budget did not allow custom design on every URL — customisation was reserved for pages where the Figma explicitly diverged from the template structure.
2. QA cycle at template-customisation scale. A clean template customisation is not “build once, review once”. It is “build, QA, adjust, QA, adjust”. The agency tracked 290+ items across two issue-backlog tabs (105 SEO findings and 186 CX findings), of which the majority were reconciled through the shared fix loop before handoff. This volume is not a sign of instability; it is the discipline that separates a templated site that looks “roughly right” from one that matches the design.
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. Over the course of the project, every change we made to the branded template — whether to a page layout, a section component, or a style token — was documented against the Figma reference. 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 — the standard agency breakpoint set. Each QA round covered the pages affected by the round’s design deltas, not the whole site, which is how a templated build stays efficient without losing coverage.
44 URLs across 40 days, with the agency asking the team to move at real-time priority from day 8 onward. Staying inside the 22-hour estimate meant applying template defaults wherever the Figma did not explicitly require a deviation — customisation effort was reserved for the pages where the design diverged, not distributed evenly. That ordering is what kept the QA loop at 3 rounds rather than the usual 15.
Operational Integrity at handoff
Internal QA during the build caught two issues before staging handoff: URL-structure inconsistency (half the sitemap URLs were missing trailing slashes — flagged in chat, «Со слешем все делаем» was the call, and the full 44-URL surface was corrected) and a content-language error on the doctor bio page (wrong pronouns from the template placeholder, caught via CX backlog row 83 and fixed pre-handoff). 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 | 44 — 1 homepage, 1 services lander, 25 service pages, 1 doctor bio, 1 about + 4 sub-pages, 1 blog lander, 1 contact, 1 smile gallery (hidden), and 7 supporting pages |
| Templates applied | 10 of 10 reusable templates built and mapped across the 44 pages (Homepage, About Us, Blog Lander, Blog, Doctor Page, Services Lander, Service Page, Default Template, Contact Us, Smile Gallery) |
| Launch checklist | 40 items signed off |
| QA / SEO + CX issues tracked + resolved | 290+ items reconciled across the agency’s two issue-backlog tabs (105 SEO + 186 CX) |
| Timeline | 40 days, delivered on schedule |
| Effort | 22 hours against a 22-hour estimate — no overrun, no scope creep |
| Team | 4 specialists |
| Hosting handoff | Live on the agency’s Kinsta template environment |
| Page health at handoff | 43 / 43 active staging URLs returned HTTP 200 in the sitemap audit; 1 page explicitly hidden |
The outcome, restated plainly: the agency’s Figma was implemented against their branded template across 44 pages and 10 templates, over 40 calendar days, inside the 22-hour estimate.
Process
| Phase | Duration | Outcome |
|---|---|---|
| Brief & estimation | ~2 days | Figma reviewed, template access confirmed, scope agreed |
| Customisation development | ~3 weeks | Page-by-page template customisation to match Figma; existing-site URLs mapped |
| QA iterations (ongoing) | ~3 weeks | Agency backlog items reconciled; each closed only on agency sign-off |
| Fix rounds | ~1 week | Post-review corrections and hidden-page provisioning |
| Delivery | final day | Site live on Kinsta |
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 Figma-to-layout mapping)
- Pavel Sazhin — QA iterations and backlog reconciliation
- Anna Polunina — developer support on customisation rounds
- 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 QA round was closed only after the agency-side reviewer confirmed the delta was resolved.
For agencies with a branded template system
If your agency has a Figma spec, a confirmed sitemap, and a Kinsta or WP Engine template already in place, send those three things. We will return a fixed-hours estimate against your confirmed URL surface, flag where the design diverges from template defaults, and note anything that will cost more to build than it looks. No cost. No obligation to proceed.
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.