Dual-Doctor Dental Template Customisation in 76 Days — White-Label for a US Marketing Agency

A dual-doctor dental template customisation delivered in 76 days. Two profiles from one template, 11 templates applied, 68 QA tasks tracked.

Industry Healthcare
Engagement White-label · US marketing agency
Delivered 76 calendar days · on schedule
59h across 76 days
marinapointedental.com · desktop
marinapointedental.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.

The Craft of Template Customisation

11 DENTAL-section templates from the agency’s branded library, two Doctor Page instances for separately credentialled practitioners — each customised at the page level while the shared template structure held. The Figma was the contract; the template was the canvas. One early complication: Proxima Nova arrived unlicensed mid-sprint. On Timur’s recommendation the team substituted a visually distinct placeholder so every affected page was immediately obvious in QA when the licensed font landed.

Snapshot

Field Value
End-client industry Healthcare — General & Family Dentistry
End-client Marina Pointe Dental (Dr. Alejandro Nieves, DMD and Dr. Bhavya Paranthaman, DMD, Panama City, FL)
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 ~20 launch-phase URLs — homepage, about, two doctor bio pages, services lander, 5+ service pages, contact, emergency dentist, payment policy, legal utilities; ~24 “After Release” pages deferred to next phase
Timeline 76 days (25 Nov 2025 – 9 Feb 2026), on schedule
Effort 59 hours — development · QA iterations · PM · post-launch fix rounds
Team 5 specialists
Templates 11 DENTAL-section templates from the agency’s multi-industry template library applied across the launch-phase pages
Tech Stack WordPress · Elementor · Kinsta hosting · Figma-driven per-page design · agency AutoQA (Links / Email / Content AI checks) · TrustIndex (review widget) · Site Checker ( QA plugin)
QA discipline 68 Redmine QA tasks across development, QA, and post-launch fix rounds; plus 472 rows tracked across the agency’s two issue-backlog tabs (SEO and CX)
Engagement cadence 4 agency-raised issues · 3 of 4 closed by handoff
Review rounds ≈6 review rounds across the 76-day calendar window
Launch checklist 78 items, signed off before cutover

The Brief

A US marketing agency delivered a Figma design for Marina Pointe Dental and a deployment target on their branded Kinsta-hosted template system. The practice presented a specific structural challenge that distinguishes it from the typical single-doctor dental build: two separately credentialled doctors — Dr. Alejandro Nieves, DMD and Dr. Bhavya Paranthaman, DMD — each warranted their own Doctor Page in the template system, under the /about/ path. The agency’s Figma captured both profiles distinctly.

The sitemap was similarly structured in two layers: a launch phase covering the homepage, core services, and information pages marked green in the agency’s workbook, and an “After Release” tier covering sub-service pages, area-we-serve pages, and a Spanish-language service page (/panama-city/servicios-dentales/) deferred to a later phase. Our scope covered only the green-flagged pages; the deferred tier was noted in the workbook but not built during this engagement.

The ask was operational. Take the Figma as the source of truth. Customise the branded template to match it page by page, breakpoint by breakpoint. Route QA findings back through the agency’s shared workspace; the practice tracked progress through its agency contact, not through us. Raise concerns — not design decisions — directly to the agency.

One typographic issue emerged early that showed how carefully this kind of engagement has to be run. The agency’s spec called for Proxima Nova as the primary typeface — a licensed font not yet delivered by the client at the time development began. Rather than blocking progress or substituting something visually close enough to be invisible, the team substituted a placeholder typeface with enough visual distance that any page affected by the missing font would be immediately obvious during QA. The correct font was delivered mid-sprint and applied globally via the Elementor global styles system.

Risk context. A template customisation for a two-doctor practice presents a specific failure mode that a single-doctor customisation does not: the Doctor Page template must carry two distinct practitioners, each with their own credential, bio, image, and path, without one doctor’s data contaminating the other’s page or the template’s shared components picking up site-specific overrides that would affect other clients. Each Doctor Page is a separate page instance with separate content — but both ride the same template. A careless global edit to the Doctor Page template layout propagates to both profiles simultaneously. The rule is page-level isolation: customise the per-doctor content, not the template structure.

How We Did It

1. Figma-as-contract, template-as-canvas. The agency’s Figma file was the design specification. 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 at the page level. No design decisions originated on our side.

We built two Doctor Page instances under /about/meet-dr-alejandro-nieves/ and /about/meet-dr-patricia/ respectively, each customised with the correct photo, credentials, and bio while the shared Doctor Page template structure remained intact. The agency’s Figma captured both profiles; we implemented both against their respective content, ensuring neither page cross-pollinated with the other.

2. QA cycle at template-customisation scale. A clean template customisation is not “build once, review once.” Of the 68 tasks tracked on this project in Redmine, the majority were QA iterations — individual rounds where the agency flagged design deltas, and we reviewed, fixed, and returned the build for another pass. The volume reflects the expected surface area of a Figma-to-template reconciliation, not instability. In this engagement it surfaced issues ranging from layout geometry (broken sections, header alignment, button centring), to form field types, to non-English text found in a page section, to image swap requirements across the two doctor profiles.

The principle behind this is straightforward: on a templated build, the QA loop is where the value is delivered. A shorter QA cycle is a weaker match to the design.

3. Customisation without drift. We contained every change to the branded template — whether to a page layout, a section component, or a style token — within per-client page overrides. We did not modify the agency’s shared template components. This matters because the agency’s template library spans multiple industries (Dental, Legal, Veterinary, and others visible in the workbook’s template catalog); a drift from one project cannot be permitted to affect another client’s site riding the same template.

The Emergency Dentist page received particular attention during the QA cycle, generating its own tracked issue with multiple fix rounds, after the agency flagged that the page required specific structural treatment distinct from the standard service page layout.

4. Scope management at the sitemap boundary. The agency’s workbook explicitly distinguished “launch phase” pages (green-flagged) from “After Release” pages. We built only the green-flagged pages and kept the deferred tier out of scope. This boundary required active maintenance during QA: when a QA reviewer noted that certain pages had been added to the green-flagged set during the engagement without a corresponding scope discussion, the team flagged it back to the agency for a scope decision rather than absorbing the work silently. The principle is simple: deferred scope is the agency’s call, not the developer’s.

5. Cross-device verification. We QA’d all customisations 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, maintaining coverage without full-site retesting on every iteration.

The two-doctor build had one structural tension: two practitioners, two paths, one shared template. Customising each Doctor Page at the page level without touching the shared template structure was what held it together. The Proxima Nova placeholder confirmed the approach — Timur’s recommendation to use a visually extreme substitute meant every affected page was immediately obvious in QA, not silently drifting past review.

Results

Metric Outcome
URLs delivered (launch phase) ~20 launch-phase pages customised to Figma, including homepage, two doctor profiles, services, emergency dentist, contact, and legal utilities
Templates applied 11 DENTAL-section templates from the agency’s branded library, applied across the launch-phase pages
Launch checklist 78 items reviewed and signed off
QA / SEO issues tracked + resolved 472 rows across the agency’s two issue-backlog tabs (SEO and CX)
Redmine QA tasks 68 tasks spanning development, QA iterations, and post-launch fix rounds
Timeline 76 days (25 Nov 2025 – 9 Feb 2026), delivered on schedule
Effort 59 hours against a 59-hour estimate — no overrun
Team 5 specialists
Two-doctor build Both doctor profile pages delivered with distinct per-doctor content, shared template structure preserved
Deferred scope “After Release” tier (~24 URLs including sub-service, area-we-serve, and Spanish-language pages) scoped out cleanly and held for next phase
Hosting handoff Live on the agency’s Kinsta template environment

Where this settled: we implemented the agency’s Figma against their branded template across the launch-phase pages, including the dual-doctor profile build, over 76 calendar days, inside the 59-hour estimate.

Operational Integrity at handoff

QA on this build caught two distinct categories of template-residue before handoff: non-English text found on the blog page (agency-flagged in the issue backlog), and oversized base64-embedded images in the homepage HTML (~314KB across two inline SVGs) that were causing the screenshot tool to fail, which we replaced with optimised PNG and WebP assets. Pre-handoff QA ran through Site Checker — see our QA approach for the categories and the no-open-defects bar we clear before handoff. After handoff the agency ran its own QA. We closed what it raised before sign-off.

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

Process

Phase Duration Outcome
Brief & estimation ~3 days Figma reviewed, template access confirmed, scope and green-flagged pages agreed
Font coordination ~1 week Proxima Nova license delivered mid-sprint; placeholder substituted until delivery
Customisation development ~4 weeks Page-by-page template customisation to match Figma across launch-phase URLs
QA iterations (ongoing) ~4 weeks 68 Redmine tasks logged; each fix round reviewed by agency before close
Scope boundary management ongoing After Release tier maintained out of scope throughout
Delivery & handoff final week Site live on Kinsta; agency AutoQA gates confirmed

Development and QA ran concurrently — characteristic of template-customisation work, where no “QA phase” closes cleanly. The loop runs until the agency signs off.

Team

Delivery team

  • Nikita Tumasevic — lead developer (template customisation and Figma-to-layout mapping)
  • Anna Polunina — designer and developer support (design coordination, QA rounds)
  • Timur Arbaev — QA lead (internal review, fix verification)
  • Pavel Sazhin — project management and QA iterations
  • Anton Hersun, — project lead (estimation, agency-side communication, sign-off)

Agency-side project management, design, and client communication remained with the partner agency throughout. The practice knew the agency as its single point of contact and never met or messaged the people building the pages. All customisation requests came through the agency’s shared issue backlog, and the doctors approved the work through their agency contact rather than any handoff from us. We closed each QA round only after the agency-side reviewer confirmed the delta was resolved.

For agencies with a branded template system

For a multi-provider dental practice, the template carries separate provider identities on shared components. For this group; for a single-provider practice, the risk stops at the design file. Quiet failure modes: a global layout edit to the doctor page template will silently reshape every provider bio page. Client-specific styling overrides will leak into the shared template base. Adding a new provider will force a full re-QA of every current provider page.

Ask a dev partner before committing: not “can you customize the template?” — but “how exactly will you isolate provider pages from cascading edits?”

Send us the template source or template ID and your brand spec. We will walk the provider-page structure, point out where a global edit would overflow, 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