Work / Templated / 24-Page Dental Template — Blog URL Migration

24-Page Dental Template — Blog URL Migration

24-page dental template customisation — 24 URLs, 10 templates, blog URL migration, 74+ QA items closed in 49h. Agency Figma, on-schedule delivery.

Industry Healthcare (Dental)
Engagement White-label · US marketing agency
Delivered 70 calendar days · on schedule
49h across 70 days
futchdental.com · desktop
futchdental.com · mobile

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 →

— The brief

Rebuild the site on a new stack. Implement the spec. Don't improvise. Hand it back ready for cutover.

Client (end user): Futch Dental — a US dental practice based in Reno, NV
Engagement: White-label template customisation for a US marketing agency
Delivered: July 2025 · ~70 days · 49 hours · 24 URLs · on schedule

The Craft of Template Customisation

Twenty-four pages for a Reno dental practice, mapped against a Figma spec across 10 reusable templates on a Kinsta-hosted branded template — with a blog URL restructure folded in: the lander moved from /about/our-blog/ to /blog/, two indexed posts with it. Post-launch, a content accuracy pass surfaced copy that misrepresented the practice’s actual services; fixing distributed strings without introducing new inconsistencies was the discipline the QA loop was held to.

Snapshot

Field Value
End-client industry Healthcare — General Dentistry
End-client Futch Dental (Reno, NV dental practice)
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 24 URLs — homepage, about, doctor bio, services lander, 10 service pages, 4 default pages (new patients, technology, reviews, office gallery), before/after gallery, contact, blog lander + 2 blog posts
URL migration Blog lander moved /about/our-blog//blog/; 2 existing blog posts moved under /blog/ path
Timeline ~70 days (May – July 2025), on schedule
Effort 49 hours across development, QA iterations, PM, and post-launch fixes
Team 3 specialists
Templates 10 reusable templates provided by the agency, all applied across the 24 pages
Tech Stack WordPress · Elementor · Kinsta hosting · Figma-driven per-page design · Site Checker ( QA plugin)
QA discipline 74+ tracked SEO + CX issues reconciled in the agency’s backlog across a 39-item launch checklist
Engagement cadence 73 agency-raised issues · all closed by handoff (43-day active span, 2025-05-30 – 2025-07-11)
Review rounds ≈5 review rounds across the 70-day calendar window
Per-ticket effort 19 internal Redmine tickets · median 10m / P75 20m per ticket
Launch checklist 38 items, signed off before cutover

The Brief

A US marketing agency handed us a Figma design for Futch Dental and access to their branded Kinsta-hosted template. The agency had handled the upstream work: client requirements gathering, Figma production, content sourcing, and hosting setup. What they needed from us was faithful execution — map the Figma design onto the template, page by page, then work through the agency’s issue backlog until sign-off.

The engagement covered 24 URLs across the practice’s full site — homepage, service pages for Futch Dental’s core procedures (emergency dentistry, Invisalign, implants, crowns, fillings, root canal, dentures, teeth whitening, cosmetic dentistry, and night guards), supporting pages (new patients, technology, reviews, office gallery, before/after gallery), doctor bio, about pages, contact, and blog. Alongside the template customisation, the blog section required a URL restructure: the existing blog lander lived at /about/our-blog/ and needed to move to /blog/, with two existing blog posts migrated from their root-level slugs into the /blog/ subdirectory.

The risk this engagement carried was specific to the post-launch content accuracy pass. After the agency’s initial QA cleared structural and design-fidelity issues, a second round surfaced content that did not accurately reflect the practice’s actual services — including marketing copy that overstated same-day treatment capability, Invisalign FAQ language that could mislead patients, and a reference to an after-hours answering service the practice no longer offered. For a dental practice competing in a local market, copy that misrepresents what the office actually does is a credibility liability, not just a QA finding. Executing those corrections cleanly — across globally repeated strings and within specific service pages — required careful scoping to avoid introducing new inconsistencies while fixing the old ones.

Risk context. For a dental practice competing in a local market, copy that misrepresents what the office actually does is a credibility liability, not just a QA finding. After structural QA cleared design-fidelity issues, a second pass surfaced content that overstated same-day treatment capability, included Invisalign FAQ language that could mislead patients, and referenced an after-hours answering service the practice no longer offered. The risk in a post-handoff content correction round is propagation: fixing one instance of a distributed string without catching the others, or scoping a correction too narrowly and introducing a new inconsistency while closing the old one.

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.

2. Blog URL restructure alongside template customisation. The Futch Dental engagement was not a greenfield build — the practice had an existing blog with posts indexed at root-level slugs that needed migration into the /blog/ subdirectory. The agency’s sitemap spec called for these to move under /blog/ to match the new navigation architecture. This URL restructure ran in parallel with the template customisation, adding a redirect and navigation-link layer to what would otherwise be a pure template-mapping exercise. Both the blog lander and the existing posts were mapped to their respective templates (Blog Lander and Blog) and confirmed returning HTTP 200 on staging before handoff.

3. QA cycle at template-customisation scale. A clean template customisation is not “build once, review once”. It is “build, QA, adjust, QA, adjust”. This project tracked 74+ line items across the agency’s SEO and CX issue backlogs — with the SEO backlog alone carrying 74 rows — plus a 39-item launch checklist. Some issues were design-fidelity corrections (duplicate heading tags on cosmetic dentistry, redundant CTA blocks on service pages, missing nav link for the blog lander); others, addressed in post-launch rounds, required rewriting specific copy strings to match the practice’s real service scope. The limitation was that structural QA — design fidelity, HTML correctness — could not verify whether the content accurately described what the practice actually offered; that check needed domain knowledge the tooling layer does not provide. We chose to handle those corrections as individual per-string tasks — replacing ‘same day treatment’ globally, removing the glass ionomer fillings section entirely, rewriting the Invisalign FAQ to match actual treatment parameters — rather than a single bulk copy rewrite, because the inaccuracies mixed globally distributed phrases and page-specific claims that each needed independent verification before sign-off.

The principle is constant: on a templated build, the QA loop is where the value is delivered. A shorter loop means a weaker match — either to the Figma or to the practice’s actual information.

4. Customisation without drift. Every change we made to the agency’s branded template was documented against the Figma reference. No customisation “leaked” into the shared template components. The engagement closed with the per-client overrides isolated and the shared template layer intact.

5. Cross-device verification. Customisations were QA’d across Chrome, Firefox, Safari, and Edge on desktop, tablet, and mobile viewports. Each QA round targeted the pages affected by that round’s delta, not the full site — keeping coverage tight without losing breadth.

Content accuracy was the discipline this engagement turned on. Structural QA cleared at initial handoff; the post-launch round surfaced what tooling cannot catch — copy that misrepresented the practice’s actual services. Each correction ran as a discrete Redmine task, verified before close, because a fix that introduced a new inconsistency while closing the old one would have made the round pointless.

Operational Integrity at handoff

Post-handoff review surfaced three accuracy failures structural QA cannot catch: ‘same day treatment’ distributed across FAQ and emergency-dentistry pages (the practice can book same-day but not complete treatment same day); Invisalign FAQ copy with non-clinical phrasing and wrong tray-wear duration; and a glass ionomer fillings section for a service the practice does not offer — each fixed as a discrete task. 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 24 — homepage, 10 service pages, doctor bio, 2 about pages, 4 default pages, before/after gallery, contact, blog lander + 2 blog posts
Blog URL migration Blog lander and 2 existing posts migrated to /blog/ path — HTTP 200 confirmed on all
Templates applied 10 of 10 reusable templates built and mapped across the 24 pages
Launch checklist 39 items signed off
QA / SEO issues tracked + resolved 74+ items reconciled across the agency’s SEO and CX issue-backlog tabs
Post-launch content fixes Global string replacements + per-page copy corrections executed as discrete Redmine tasks through July 2025
Timeline ~70 days, delivered on schedule
Effort 49 hours across development, QA, PM, and post-launch fix rounds
Team 3 specialists
Hosting handoff Live on the agency’s Kinsta template environment
Page health at handoff 24 / 24 staging URLs returned HTTP 200 in the sitemap audit

The outcome, restated plainly: the agency’s Figma was implemented against their branded template across 24 pages and 10 templates, with a blog URL restructure, over approximately 70 calendar days, inside the estimated hours.

Process

Phase Duration Outcome
Brief & estimation ~2 days Figma reviewed, template access confirmed, scope agreed — 27h dev + 10h QA estimated
Customisation development ~2 weeks Page-by-page template customisation to match Figma; blog URL restructure included
QA iterations (concurrent) ~4 weeks 74+ issue-backlog items logged and resolved; agency sign-off at initial handoff
Post-launch content fixes ~6 weeks Content accuracy corrections (copy replacements, service scope fixes) executed as discrete tasks
Delivery July 2025 Site live on Kinsta; post-launch fix log closed

Development and QA ran concurrently — characteristic of template-customisation work, where no single QA phase closes cleanly; the loop runs until the agency signs off. Post-launch rounds addressed content accuracy items that emerged only after the live site was under full editorial review.

Team

Delivery team

  • Nikita Tumasevic — lead developer (template customisation, Figma-to-layout mapping, blog URL restructure)
  • Pavel Sazhin — QA lead (issue-backlog review, design-fidelity verification, fix rounds)
  • Anton Hersun, — project lead (estimation, agency-side communication, post-launch coordination, sign-off)

The partner agency’s design, content, client communication, and hosting configuration remained entirely upstream of our work. Our team was not visible to the practice. Requests came in through the agency’s shared issue tracker; nothing moved to “done” until the agency-side reviewer confirmed it.

For agencies with a branded template system

First engagement is calibration — typically a single site build or customisation at fixed hours, with sign-off per task before close. If that pace fits your pipeline, send a sample Figma and your template. We will return a fixed-hours quote within 24 hours. No cost for the review. No obligation to proceed.

Request a spec review →

Don't have a spec yet? Send a one-paragraph description — we'll come back with the questions worth asking. Send a description →


— Pre-handoff QA gate

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.

Core settings verificationpass
Content & SEO surface auditpass
URL structure integritypass
Content-language sanitizationpass
Menus & widgets auditpass
Original-vs-rebuild content diffpass
Multi-resolution screenshot capturepass
xaver.pro · 2026 White-label · Agency not named
Scroll to Top