17-Page Personal-Injury Law Firm WordPress Build
17-page personal-injury law firm WordPress build — 17 URLs, 9 templates, two QA backlogs closed in 78h across 44 days. On-schedule delivery.
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): Big Joe Law — Los Angeles, CA
Engagement: White-label development for a US marketing agency
Delivered: May – July 2025 · 44 days · 78 hours across homepage build, remaining pages, and QA reconciliation
The Craft of a Build
17 pages across 9 templates, built to a Figma prototype that included type-out hero animation and a verdicts carousel — the homepage shipped first against a 15-hour budget while practice-area content was still being drafted, and the remaining 16 interior pages absorbed late-arriving copy without breaking the design grid or the per-row hour estimates.
This case study is a record of that adaptive build — a Los Angeles personal-injury law firm, delivered for a US marketing agency in the legal segment.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Legal — Personal Injury |
| End-client | Big Joe Law (Los Angeles, CA) |
| Engagement | White-label WordPress build for a US marketing agency specialising in local-business websites |
| Project Type | WordPress build with Elementor on Kinsta, reconciled against Figma design source |
| Scope | 17 URLs — homepage, about, practice-area lander, 8 individual practice-area pages, results, blog lander, individual blog template, contact, privacy policy |
| Timeline | 44 days (27 May – 10 Jul 2025), on schedule |
| Effort | 78 hours against a 78-hour estimate — no overrun |
| Team | 6 specialists (47h dev · 11h QA · 25h PM and fixes — PM-heavy distribution appropriate for a homepage-first, content-in-parallel build) |
| Templates | 9 active templates from the agency’s standard legal template library (Homepage, About Us, Practice Area Lander, Individual Practice Area Page, Results, Blog Lander, Individual Blog, Contact Us, Default Template) |
| Tech Stack | WordPress · Elementor Pro · Kinsta · Rank Math · Site Checker (xaverPRO QA plugin) |
| Delivered | 17 URLs built across 9 templates, 83-row SEO backlog + 34-row CX backlog worked through, 39-item launch checklist closed |
| Engagement cadence | 82 agency-raised issues · all closed by handoff (35-day active span, 2025-07-02 – 2025-08-05) |
| Review rounds | ≈8 review rounds across the 44-day calendar window |
| Per-ticket effort | 17 internal Redmine tickets · median 4h / P75 15h per ticket |
| Launch checklist | 38 items, signed off before cutover |
The Brief
A US marketing agency retained by Big Joe Law — a Los Angeles personal-injury firm — handed us a Figma design library, a Google Sheets progress tracker, staging credentials on Kinsta, and a phased brief: build the homepage first, while content for interior pages was being prepared in parallel. The page builder was Elementor; contact forms were wired as part of the build. The agency owned design, content strategy, SEO, and the client relationship. Our scope was to build every page to Figma fidelity, configure the contact forms, implement the blog category filtering, and work down two parallel QA backlogs until the agency accepted the site.
The ask was staged. Phase 1: build the homepage (15 hours) against the Figma prototype, including the type-out hero animation and the verdicts carousel. Phase 2: build the remaining interior pages — about, practice-area lander, 8 individual practice-area pages, results, blog lander and individual blog template, contact, and privacy policy — once the content and design were approved. Because those pages’ copy lived in agency-managed Google Docs outside the workbook, each interior page required cross-referencing two sources rather than building from a single spec, adding a content-staging step before template application. Throughout, stay out of the end-client-facing loop; surface ambiguity back to the agency; do not improvise practice-area descriptions, attorney credentials, or results language.
Risk Context — When a law firm build starts homepage-first while practice-area content is still being drafted, the real risk is a template system that cannot absorb eight individual practice-area pages arriving in batches — each carrying its own jurisdictional copy, case-type framing, and attorney attribution — without breaking the design grid or requiring per-page rework. A dev partner building a California personal-injury site does not write copy, does not decide which practice areas are listed or how they are described, and does not make judgements about results-page language. What the dev partner does own is structural accuracy: every practice-area page in the sitemap must exist and be reachable, the navigation must reflect the firm’s actual scope, and the template system must accommodate late-arriving content without breaking the design grid. The agency was hedging against the dev shop that would treat a homepage-first build as “done” when the homepage shipped, leaving the interior-page template system unable to absorb the real content when it arrived.
How We Did It
1. Nine templates, 17 pages, one build pipeline — homepage first, then interior pages. Big Joe Law’s pages spread across the agency’s legal template library: Homepage (1), About Us (1), Practice Area Lander (1), Individual Practice Area Page (8 — personal injury, car accidents, truck accidents, motorcycle accidents, bicycle accidents, slip and fall, dog bites, rideshare accidents), Results (1), Blog Lander (1), Individual Blog (1), Contact Us (1), and a Default Template for the privacy policy. The homepage was built first against the Figma prototype; the interior pages followed in a second phase once content was ready. Each page was built on its assigned template from the sitemap row; no page was hand-rolled outside the template system.
2. Spec followed line-for-line — including the per-page Hours Estimated column. The agency’s workbook carried an Hours Estimated value for every row. The homepage received the largest single-row budget (6 hours in the sitemap, 15 hours quoted including QA iteration); the 8 individual practice-area pages received a fixed allocation each. The aggregate came in at the agreed 78 hours for the project.
The principle behind this is simple: on a build with a pre-costed sitemap, the workbook is the contract. A dev team’s job is to deliver inside the row-level budgets, not to re-open the pricing conversation page by page.
3. Figma-to-Elementor fidelity on a homepage-first build. The source design was a Figma file with a prototype including type-out text animation, a verdicts carousel, and a custom awards section. We built the homepage template to match the Figma grid, spacing, and interaction spec before any interior-page template was started — so the design language established on the homepage could be inherited by the interior pages without per-page rework. When the interior-page designs arrived, they were built against the same Elementor component library, ensuring visual consistency across the 17-URL surface.
4. Two parallel QA loops, closed before launch. Issues were tracked in two agency-side backlog tabs — the Issues Backlog(SEO) (83 rows, covering meta titles, H1 headers, URL structure, internal links, and responsive behaviour) and the Issues Backlog(CX) (34 rows, covering Figma fidelity, font consistency, image quality, and form functionality). Both backlogs were worked in parallel through the QA reconciliation tail. The 39-item launch checklist — Design, Functionality, Pre-Migration, Post-Migration — closed behind both backlogs.
The Figma prototype’s scroll animations could not be reproduced in Elementor without breaking on reverse scroll. We called it explicitly: approximate the intent using Elementor’s native scrolling effects rather than match the prototype frame-for-frame. That decision at the homepage stage meant the interior-page build did not stall waiting on an animation solution Elementor could not reliably deliver.
Results
| Metric | Outcome |
|---|---|
| URLs built | 17 across 9 templates (1 Homepage · 1 About Us · 1 Practice Area Lander · 8 Individual Practice Area Pages · 1 Results · 1 Blog Lander · 1 Individual Blog · 1 Contact Us · 1 Default Template) |
| Templates applied | 9 / 9 from the agency’s standard legal template library |
| Issues Backlog(SEO) | 83 rows worked through (layout, meta, links, responsiveness) |
| Issues Backlog(CX) | 34 rows worked through (Figma fidelity, fonts, images, forms) |
| Launch checklist | 39 items signed off across Design / Functionality / Pre-Migration / Post-Migration |
| Timeline | 44 days (27 May – 10 Jul 2025), on schedule |
| Effort | 78h / 78h estimate — no overrun, no scope creep |
| Handoff | Site live on Kinsta, https://callbigjoe.com/ returning HTTP 200 |
| Site status, verified 2026-04 | Production live and serving 200 from a fresh curl check |
The outcome, restated plainly: the agency’s 17-URL legal build shipped across 9 templates on the Kinsta environment, inside the 78-hour quoted budget. Two QA backlogs (SEO + CX) were worked through to agency-acceptance levels and the launch checklist closed before the domain went live.
Operational Integrity at handoff
Post-launch QA surfaced two fix-loop categories: the contact form’s validation message rendering as red text on the red hero background — invisible, with screen-overflow on submit — and a Russian-language developer comment (// Проверяем, появились ли новые элементы поиска) left in the rendered DOM of /car-accidents/, caught by the agency’s content scan and cleared before sign-off (Redmine #969, #937). 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, homepage scope agreed at 15h, full build scope agreed at 78h |
| Homepage build | ~1 week | Homepage built against Figma prototype, including type-out animation and verdicts carousel |
| Interior-page build | ~2 weeks | 16 remaining URLs built across 8 templates; blog category filtering wired; forms configured |
| QA reconciliation tail (SEO + CX backlogs) | ~2 weeks | SEO backlog (83 rows) and CX backlog (34 rows) worked in parallel |
| Launch checklist + delivery | final ~2 days | 39-item checklist signed off; site live on Kinsta |
Interior-page build began before the homepage QA tail had fully closed, which is why the calendar is 44 days rather than the sum of sequential phases.
Team
Delivery team
- Nikita Tumasevic — lead developer across homepage build, interior-page templates, and Figma reconciliation
- Pavel Sazhin — QA iterations and fixes
- Timur Arbaev — QA iterations and pre-handoff review
- Anna Polunina — developer support on late-phase content updates and backlog corrections
- Lyudmila Travkina — QA pass and pre-handoff review coordination
- 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.
For agencies commissioning a white-label WordPress build
This pattern fits legal-vertical agencies that run homepage-first builds with a Figma prototype and a phased content timeline. If that describes your next engagement, send the Figma file and a draft sitemap. We will identify the pages where late-arriving content creates a template-design dependency, flag the animation or interaction elements that need an Elementor-specific build decision before the interior build begins, 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 →