33-Page Dental + Tongue-Tie Template Customisation in 94 Days — White-Label for a US Marketing Agency

33-page dental and tongue-tie template customisation delivered in 94 days — 10 templates, 120+ tracked QA items, 57 hours across 5 specialists.

Industry Healthcare
Engagement White-label · US marketing agency
Delivered 94 calendar days · on schedule
57h across 94 days
live site · desktop
live site · mobile
Screenshot unavailable
Mobile view
— The brief

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

The Craft of Template Customisation

33 pages of a dental template customisation against a per-page Figma — a practice combining general dentistry with a tongue-tie procedure section, both running on the agency’s 10-template Kinsta set. Fifteen general dental service pages and 4 age-stratified procedure sub-pages share the same Service Page template but carry different content shapes; treating the procedure section as a variant of the dental services would not fail QA — it would register as a content problem after launch.

Snapshot

Field Value
End-client industry Healthcare — General Dentistry with tongue-tie / lip-tie specialty
End-client Charleston Dental and Tongue Tie (US 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 33 URLs — homepage, about, services lander, 15 general dental service pages, 4 tongue-tie and lip-tie procedure pages, doctor bio, blog lander, contact, and supporting pages
Timeline 94 days (26 Jun – 28 Sep 2025), on schedule
Effort 57 hours — 24.5h development · 10h QA · 15h PM · 7.5h content and fix rounds
Team 5 specialists
Templates 10 reusable templates provided by the agency, all applied across the 33 pages
Tech Stack WordPress · Elementor · Kinsta hosting · Figma-driven per-page design · agency AutoQA (Links / Email / Content AI checks) · Site Checker ( QA plugin)
QA discipline 120+ tracked SEO + CX issues reconciled in the agency’s backlog across a 30-item launch checklist
Engagement cadence 90 agency-raised issues · all closed by handoff (41-day active span, 2025-07-18 – 2025-08-27)
Review rounds ≈10 review rounds
Launch checklist 30 items, signed off before cutover

The Brief

A US marketing agency delivered us the Figma design for Charleston Dental and Tongue Tie and a deployment target on their branded Kinsta-hosted template system. The practice offers both general dental care and a specialist tongue-tie and lip-tie procedure service — a combination that is less common than a general dentistry site and that created a dual content structure the agency needed mapped into the template correctly. The upstream work was the agency’s: design, client approval, content planning, and hosting. Our job was to make the Figma real on their template.

The operational ask was clear: take the Figma as the source of truth, customise each page to match it, and return the site only after every design delta was signed off in the agency’s shared workspace. Alongside the main build, the scope included a blog page, a blog post about frenectomy, a meet-the-doctors sub-page, and a round of content-and-image updates that extended the engagement into September.

What the agency needed to guard against here was a structural problem specific to this practice’s service offering. A tongue-tie specialty section is not a second tab on a services lander — it has its own landing page and age-stratified sub-pages (infants, toddlers and older children, adults), each with content distinct from the general dental services nearby. The risk in a templated build is that the shared Service Page template treats all of these the same: a developer relying on template defaults could produce pages that match the Figma visually on the homepage but silently flatten the procedure section’s distinct content hierarchy into the same layout as a teeth-cleaning page. The agency hired a team that would catch that distinction, not just a team that would ship pages. The customisation had to honour the structural difference between general dental services and the procedure section — using the same template set without collapsing the content distinction between them.

Risk context. A tongue-tie specialty section is not an extension of a dental services lander — it has its own landing page and age-stratified sub-pages, each carrying content with a distinct purpose and audience. The risk in a templated build is that the shared Service Page template flattens all of these into the same layout: a developer relying on template defaults could produce pages that match the Figma visually on the homepage but silently reduce the procedure section’s content hierarchy to the same pattern as a teeth-cleaning page. That structural collapse would not register as a QA failure; it would register as a content problem after launch.

How We Did It

1. Figma-as-contract, template-as-canvas. The Figma was the source of truth throughout. The branded template was the canvas. For every one of the 33 pages, the question was: does this page’s Figma frame match the template default, or does it require a per-page customisation? Where the template fit, we kept it. Where the Figma required a deviation, we customised — including the tongue-tie procedure landing page, which sits structurally between a services lander and a service page and needed its own layout treatment within the Service Page template’s parameters.

2. Two service sections, one template set. The site carries 15 general dental service pages alongside 4 tongue-tie and lip-tie procedure pages. All 19 live under the same Service Page template. The work of keeping them distinct was editorial and structural: the general dental pages follow the agency’s standard service-page pattern; the procedure pages carry age-stratified sub-pages (infants, toddlers and older children, adults) with content blocks and anchor-link navigation built on the same template but adapted to a different content shape. Getting this right required treating the procedure section not as a variant of the dental services section but as a separate content architecture that shares the template layer.

3. QA cycle at template-customisation scale. A clean template customisation is not “build once, review once”. The project accumulated 120+ line items in the agency’s issue-backlog workspace — individual QA rounds where the agency flagged design deltas, we reviewed, fixed, and returned the build. Notable within this loop: the hero-section treatment (all hero sections in the Figma render as black-and-white gradient overlays; the template’s default did not match; the fix was a CSS overlay blending approach), the anchor-link routing fix on the homepage reviews section (the link required a full absolute URL including page path plus anchor, not just a fragment), and the iterative image sizing passes that followed the team’s content and images task. Each pass added precision; none rewound earlier work.

4. Customisation without drift. Every change was scoped to the per-client implementation. At no point were the agency’s shared template components modified. The tongue-tie procedure section’s adaptations lived in per-page Elementor overrides, not in the template’s shared layer. The next site that runs on this template has no awareness that 33 pages of custom implementation passed through it.

5. Cross-device verification. We checked customisations at desktop, tablet, and mobile viewports. The image-sizing and hero-overlay work from the QA loop is inherently multi-resolution — every layout change triggered a cross-device re-check before the round closed. The QA pass on the final content-update task included a site-wide content-change verification pass across all affected pages before handoff.

An ongoing limitation during QA was that the practice had no professional team portraits available — we built the home page team block and the meet-the-team page without original photography, using placeholder silhouettes until the agency sourced images or opted to omit team photos from those sections entirely. We chose per-page Elementor overrides over template-layer modifications because altering the shared template would carry tongue-tie-specific customisations — age-stratified sub-page navigation, procedure-specific content blocks — into every future site the agency deploys on this template, which the next client did not request and should not inherit.

The structural tension was that a tongue-tie procedure section is not a dental services variant — its age-stratified sub-pages carry a different content purpose, and collapsing them into the same template pattern would not fail QA; it would register as a content problem after launch. The resolution was a separate content architecture within the same template, using per-page Elementor overrides that left the agency’s shared layer unchanged.

Operational Integrity at handoff

Two QA findings shaped the pre-handoff load: every hero section required a CSS gradient-overlay fix to match the Figma black-and-white treatment — a template default that did not apply the colour-mode overlay — and the homepage reviews anchor was initially a bare fragment (#reviews) where the correct form was the full absolute URL including page path, caught before the agency reviewed the build. Pre-handoff QA ran through Site Checker — see how we run QA for the categories and the rule that nothing ships with an open check. The agency ran its own checks post-handoff with its own tools, surfacing issues into the shared backlog for our fix loop until they signed off.

Customisations stayed in the per-client overrides. We did not modify the agency’s shared template components.

Results

Metric Outcome
URLs delivered 33 — 1 homepage, 1 services lander, 1 tongue-tie procedure lander, 15 general dental service pages, 4 tongue-tie procedure sub-pages, 1 doctor bio, 1 about, 1 blog lander, 1 blog post, 1 contact, and supporting pages
Templates applied 10 of 10 reusable templates built and mapped across the 33 pages
Launch checklist 30 items signed off
QA / SEO issues tracked + resolved 120+ items reconciled across the agency’s two issue-backlog tabs (SEO and CX)
Redmine QA iterations 2 dedicated QA issues plus multiple fix rounds tracked across the development task backlog
Timeline 94 days, delivered on schedule
Effort 57 hours across development, QA, project management, and content rounds
Team 5 specialists
Hosting handoff Live on the agency’s Kinsta template environment
Page health at handoff 33 / 33 staging URLs returned HTTP 200 in the sitemap audit

The takeaway: we implemented the agency’s Figma against their branded template across 33 pages and 10 templates — including a specialist procedure section that required structural distinction within a shared template — over 94 calendar days, inside the 57-hour estimate.

Process

Phase Duration Outcome
Brief & estimation ~3 days Figma reviewed, template access confirmed, scope agreed at 24.5h core
Customisation development ~1 week Page-by-page template customisation to match Figma, including tongue-tie procedure section architecture
QA iterations (concurrent) ~6 weeks 120+ issue-backlog items worked; each round closed only on agency sign-off
Content and image rounds ~3 weeks Blog page, blog post, image sourcing, content accuracy pass
Post-launch fix round ~1 week Contact details update, final content alignment

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, Figma-to-layout mapping, content rounds)
  • Anna Polunina — project coordination (content management, task progression, agency liaison)
  • Pavel Sazhin — QA iterations and fixes
  • Timur Arbaev — QA support and final contact-details pass
  • Anton Hersun, — project lead (estimation, agency-side communication, sign-off)

Agency-side project management, design, and client communication remained with the partner agency throughout. Charleston Dental never had our name, our email, or our shared workspace — every customisation request reached us through the agency’s backlog, and every fix went back the same way under the agency’s brand. Each QA round closed only when the agency-side reviewer confirmed the delta was resolved.

For agencies with a branded template system

On a templated dental site the shared page layout assumes every service fits the same container. For this practice — a single-location dentist adding a specialty procedure; for others — a multi-location group running distinct catalogs off the same brand template system. The quiet failures: child-theme overrides break on the next vendor update, field schemas drift from the canonical, and editor permissions break for non-developer staff. Each a ticket the agency absorbs.

Ask dev partners: not ‘can you extend the template?’ — ‘how will you wire the overrides so schemas survive updates and the client’s editor works?’

Send us the template source or template ID and your brand spec. We will trace your field schemas against your pages, spot where overrides fight the vendor and editor permissions break, and return a fixed-hours quote. Free, with a fixed quote in hours.

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

Curious if your engagement fits this pattern?

Scroll to Top