21-Page Dental WordPress Build
A 21-page dental WordPress build delivered in 31 days — 13 templates, Figma-to-Elementor translation, 40-item SEO backlog closed, 39-item checklist, 50h.
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 →
Build the URLs across the agency's templates, wire the conversion primitive, then work the QA backlogs to closure.
Client (end user): Songbird Dental Studio — Crawfordville, FL
Engagement: White-label development for a US marketing agency
Delivered: March – April 2025 · 31 days · 50 hours across build, QA, and content-integration phases
The Craft of a Build
21 pages of a dental-practice WordPress build, translated from Figma designs to Elementor through a workbook sitemap whose every row carried its own hour estimate. The scaffold rose before all the content was in — leaving no gap for a less cautious dev partner to collapse the sitemap — and a content-integration tail plus a two-track QA close followed inside 50 hours across 31 days.
This case study is a record of such a scaffold-first build — delivered for a US marketing agency in the general-dental segment.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Healthcare — General Dental |
| End-client | Songbird Dental Studio (Crawfordville, FL) |
| Engagement | White-label WordPress build for a US marketing agency specialising in local-business websites |
| Project Type | WordPress build with Elementor on WP Engine, translating from Figma designs |
| Scope | 21 URLs — homepage, about us, doctor page, blog lander + blog, contact us, services lander, 8 service pages, smile gallery, new patient page, dental technology page, thank-you page, 404 page |
| Timeline | 31 days (26 Mar – 26 Apr 2025), delivered on schedule |
| Effort | 50 hours against a 50-hour estimate — no overrun |
| Team | 5 specialists (dev-heavy distribution appropriate for a Figma-to-Elementor build with content-integration tail) |
| Templates | 13 reusable templates — the agency’s standard dental template library |
| Tech Stack | WordPress · Elementor · Gravity Forms · WP Engine · Rank Math · WP Rocket · Site Checker (xaverPRO QA plugin) |
| Delivered | 21 URLs built across 13 templates, 48-item SEO backlog worked to 40 Completed, 20-item AM Issues Backlog worked to 19 Completed, 39-item checklist closed |
| Engagement cadence | 47 agency-raised issues · 46 of 47 closed by handoff (57-day active span, 2025-04-09 – 2025-06-04) |
| Review rounds | ≈8 review rounds across the 31-day calendar window |
| Per-ticket effort | 13 internal Redmine tickets · median 55m / P75 10h per ticket |
| Launch checklist | 38 items, signed off before cutover |
The Brief
A US marketing agency retained by Songbird Dental Studio — a general-dental practice in Crawfordville, Florida — handed us a Google Sheets workbook with a full sitemap, Figma designs for homepage and internal pages, a templates catalogue, a launch checklist, and pre-populated SEO and Account Manager issues backlogs. The build sat on their WP Engine environment; the page builder was Elementor; forms were Gravity Forms.
The ask: build all 21 pages against the agency’s template library, translate the Figma designs into Elementor layouts, integrate the content as it arrived from the client, wire the forms, and work through both QA backlogs until the agency accepted the site. Design, content strategy, SEO strategy, and client communication remained with the agency.
Risk Context — A new practice build with incomplete content at kickoff carries a specific risk: the dev partner may simplify the URL architecture to match the thin content, or leave placeholder copy in pages that the agency assumes will be flagged. The agency was hiring a dev partner who would build the full 21-URL scaffold exactly as specified in the sitemap — every service page, every template assignment, every form target — and treat content gaps as agency-blocked items, not as invitations to cut scope. The sitemap’s per-row Hours Estimated column was the contract; our job was to deliver inside it without collapsing the scaffold. Agency-supplied imagery arrived as uncompressed JPGs (200–500 KB each), requiring manual batch conversion to WEBP and re-upload across all pages before the performance checklist could close.
How We Did It
1. Thirteen templates, 21 pages, one pipeline — built from Figma source design. The site’s 21 pages spread across the agency’s standard template library: Homepage (1), About Us (2 — practice page + doctor bio), Blog Lander (1), Blog (1), Contact Us (1), Services Lander (1), Service Page (8 — teeth whitening, sedation dentistry, dental implants, checkups, veneers, extractions, dentures, cosmetic dentistry, general dentistry, restorative dentistry), Smile Gallery (1), New Patient (1), Technology (1), and Default Template (2 — thank-you page + 404). Each page was mapped to its template from the sitemap row before a single line of Elementor was written.
2. Figma-to-Elementor structural mapping, not visual tracing. The source design was a Figma prototype, not a static mockup. We identified the structural primitives early — heading hierarchies, section spacing, mobile breakpoints — and confirmed the rendered output matched the Figma spec before any page left staging.
3. Per-row Hours Estimated column as the contract. The agency’s sitemap carried an Hours Estimated value for every row — 9 hours for the Homepage, 2 hours for the Services Lander, 0.2 hours per standard service page, and so on. Our job was to deliver inside those row-level budgets without renegotiating per page. We accepted the row-level budgets as binding rather than reopening pricing as content gaps emerged — a choice that preserved the agency’s fixed-cost model. The aggregate came in at the agreed 50 hours for the project.
4. Two QA loops, worked down before launch. Issues were tracked in two agency-side backlog tabs: the SEO Issues Backlog (48 rows, priorities across Low to High) and the AM Issues Backlog (20 rows, flagged with screenshots against staging). Of the 48 SEO items, 40 closed as Completed before launch; 5 were To Do, 1 was a website-live checkpoint, and 1 was In progress. Of the 20 AM items, 19 closed as Completed. The 39-item launch checklist — Design, Functionality, Content, Pre-Migration, Post-Migration — closed behind both backlogs.
The per-row Hours Estimated column was what held the scope together. When content arrived late and placeholder pages looked like candidates for scope reduction, the sitemap’s row-level budgets were the contract that kept every URL in the build — and the aggregate came in at exactly the agreed 50 hours.
Results
| Metric | Outcome |
|---|---|
| URLs built | 21 — Homepage (1) · About Us (2) · Doctor Page (1) · Blog Lander (1) · Blog (1) · Contact Us (1) · Services Lander (1) · Service Page (8) · Smile Gallery (1) · New Patient (1) · Technology (1) · Default Template (2) |
| Templates applied | 13 / 13 from the agency’s standard dental library |
| Launch checklist | 39 items signed off across Design / Functionality / Content / Pre-Migration / Post-Migration |
| SEO Issues Backlog | 40 / 48 closed as Completed; 5 To Do, 1 Website live checkpoint, 1 In progress |
| AM Issues Backlog | 19 / 20 closed as Completed |
| Timeline | 31 days (26 Mar – 26 Apr 2025), delivered on schedule |
| Effort | 50h / 50h estimate — no overrun, no scope creep |
| Handoff | Site live on WP Engine, https://songbirddentalstudio.com/ returning HTTP 200 |
| Site status, verified 2026-04 | Production live and serving 200 from a fresh curl check |
The outcome restated plainly: 21 URLs across 13 templates on WP Engine, inside the 50-hour quoted budget. Two QA backlogs (SEO Issues + AM Issues) were worked to agency-acceptance levels and the launch checklist closed before the domain went live.
Operational Integrity at handoff
Pre-handoff QA on the 21-page staging build caught two categories of issue: the internal QA script flagged page statuses, meta data, links, and heading structure across the sitemap, and a manual image audit surfaced agency-supplied JPGs running 200–500 KB each — batch-converted to WEBP before the performance checklist could close. 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.
Process
| Phase | Duration | Outcome |
|---|---|---|
| Brief & estimation | ~3 days | Figma designs reviewed, sitemap rows confirmed, Hours Estimated column validated, 50h quoted and agreed |
| Build phase (pages + templates) | ~2 weeks | 21 pages built against 13 templates; Figma-to-Elementor mapping applied; SEO Issues Backlog opened |
| Content integration + QA tail | ~1 week | Client content integrated as it arrived; both QA backlogs worked in parallel; AM Issues Backlog closed to 19/20 |
| Launch checklist + delivery | final ~3 days | 39-item checklist signed off; site went live on WP Engine |
Build and QA ran concurrently from the second week; the content-integration stretch began before the last build-phase items had closed — which is why the calendar is 31 days rather than the sum of sequential phases.
Team
Delivery team
- Nikita Tumasevic — developer support on content-integration rounds and issues-backlog corrections
- Pavel Sazhin — QA iterations and fixes
- Anna Polunina — implementation support and QA
- Lyudmila Travkina — lead developer, Figma-to-Elementor mapping and full build across both phases
- Anton Hersun, xaverPRO — project lead (estimation, agency-side communication, sign-off)
Agency-side project management and client-facing communication remained with the partner agency throughout. Our team was invisible to the end client. All QA feedback arrived through the shared issue backlog; nothing about the build’s internal process was visible to the end client.
For agencies commissioning a white-label WordPress build
This pattern fits agencies that maintain a branded dental template library on WP Engine and deliver new-practice builds from Figma source designs with a per-URL hours estimate in the sitemap. If that is your shape, send the Figma designs and the sitemap with its Hours Estimated column — we will review the structural translation requirements, flag the rows that need explicit mapping work, and return a fixed-hours quote within 24 hours. 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 →