26-Page Pennsylvania Law Firm WordPress Build
A personal-injury and workers-comp law firm build with 14 practice-area pages — 26 URLs on 10 templates, 85-item checklist closed in 22 days and 78 hours.
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): Lerner, Steinberg & Associates — Feasterville-Trevose, PA
Engagement: White-label legal development for a US marketing agency
Delivered: Sep – Oct 2025 · 22 days · 78 hours across build and fix-and-feedback phases
The Craft of a Build
A 26-page Pennsylvania law firm Website Build to a paired Figma design file — ten Elementor templates on Kinsta covering personal injury and workers’ compensation practice areas, from fourteen individual practice-area pages to a dual-practice-area lander structure. The 85-item launch checklist and two QA backlogs were not afterthoughts: they ran in parallel with the content-fix tail that absorbed the agency’s attorney-credential reconciliation before sign-off.
This case study is a record of such a build — a Pennsylvania personal-injury and workers’-compensation law firm, delivered for a US marketing agency in the legal segment, followed by a long fix-and-feedback tail that ran through the end of the year.
Snapshot
| Field | Value |
|---|---|
| End-client industry | Legal — Personal Injury & Workers’ Compensation |
| End-client | Lerner, Steinberg & Associates (Feasterville-Trevose, PA) |
| Engagement | White-label WordPress build for a US marketing agency specialising in local-business websites |
| Project Type | WordPress build with Elementor on Kinsta, followed by a long fix-and-feedback reconciliation tail |
| Scope | 26 URLs — homepage, 2 practice-area landers, 14 individual practice-area pages, lawyer profile, about, testimonials, case results, blog lander, contact, privacy policy, terms of conditions |
| Timeline | 22 days (16 Sep – 8 Oct 2025) for the main build; fix-and-feedback tail ran through Dec 2025 |
| Effort | 78 hours against a 78-hour estimate — no overrun |
| Team | 6 specialists (37h dev · 20h QA · 15h PM + fix tail — QA-heavy distribution appropriate for a content-accuracy build) |
| Templates | 10 reusable templates — the agency’s standard legal template library (Homepage, Practice Area Lander, Individ. Practice Area Page, Lawyer Profile Page, About Us, Blog Lander, Contact Us, Default Template, Privacy Policy, Terms of Conditions) |
| Tech Stack | WordPress · Elementor · ACF · Kinsta · Gravity Forms · Site Checker (xaverPRO QA plugin) |
| Delivered | 26 URLs built across 10 templates, 43 SEO backlog items worked down, 85-item checklist closed, 32 QA tracking tickets + 12 content fix tickets resolved through the tail |
| Engagement cadence | 44 agency-raised issues · 42 of 44 closed by handoff (24-day active span, 2025-10-11 – 2025-11-03) |
| Review rounds | ≈6 review rounds across the 22-day calendar window |
| Per-ticket effort | 45 internal Redmine tickets · median 15m / P75 30m per ticket |
| Launch checklist | 84 items, signed off before cutover |
The Brief
A US marketing agency retained by Lerner, Steinberg & Associates — a Pennsylvania personal-injury and workers’-compensation firm serving clients throughout the state — handed us a Figma design file, a Google Sheets workbook with a full URL map, a templates catalogue, a launch checklist, and pre-populated issues backlogs. The build sat on their Kinsta environment; the page builder was Elementor with ACF for structured content; contact forms ran through Gravity Forms. The workbook’s Template tab carried a LEGAL-section library: Practice Area Lander, Individ. Practice Area Page, Lawyer Profile Page, About Us, Blog Lander, Contact Us, and supporting policy pages.
The ask: build all 26 pages against the agency’s legal template library — mapping each individual practice-area URL to its assigned template from the sitemap row — and work down the SEO backlog and the long fix-and-feedback tail until the agency accepted the site. Throughout, stay out of the end-client-facing loop; surface ambiguity back to the agency; do not improvise practice-area descriptions, attorney credentials, or navigational hierarchy.
The source data the agency provided carried content inconsistencies — conflicting years-of-experience figures for the same attorneys, mismatched Education section formatting, and near-identical entries across the case-results section — that the build team could surface but could not author, because practice-area copy and attorney credentials were outside the scope of the development engagement.
Risk Context. When the agency’s QA surfaced three conflicting years-of-experience figures across the homepage and attorney bio pages — 51, 32, and “over 33 years” appearing in different sections — and flagged that the two attorneys’ Education sections were formatted inconsistently against each other, the underlying risk became concrete: a site that goes live carrying representations the firm has not signed off on. A dev partner building a Pennsylvania 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 case-result language or years-of-experience claims. What the dev partner does own is structural accuracy: every attorney named in the sitemap must appear on the site with the correct role, every practice-area page must exist and be reachable, and the navigation must reflect the firm’s actual scope. When the agency’s QA surfaces content inconsistencies — conflicting years-of-experience figures across pages, mismatched attorney education sections, placeholder text in a results section — the risk is a site that goes live with representations the firm did not approve. Absorbing those fixes cleanly, before handoff, is the dev discipline that matters.
How We Did It
1. Ten templates, 26 pages, one build pipeline. Lerner, Steinberg & Associates’ pages spread across the agency’s legal template library: Homepage (1), Practice Area Lander (2 — Personal Injury and Workers’ Compensation), Individ. Practice Area Page (14 — the heaviest template, covering car accidents, truck accidents, motorcycle accidents, slip and fall, dog bite, medical malpractice, wrongful death, premises liability, pedestrian accidents, bicycle accidents, construction accidents, repetitive stress injuries, occupational diseases, and denied claims), Lawyer Profile Page (1), About Us (1), Blog Lander (1), Contact Us (1), Default Template (3 — testimonials, case results, and a blog post), plus Privacy Policy and Terms of Conditions. 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. We followed those row-level budgets rather than re-estimating individual pages mid-build, because the pre-costed sitemap was the contractual commitment between the agency and its client — reopening pricing per page would have undermined the fixed-hours structure. Where a row specified 12 hours for the Homepage and 4 hours for a standard individual practice-area page, that was our budget for the row, and 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. Fix-and-feedback tail until sign-off. After the initial build, the agency opened rounds of reviewer feedback through individual tickets — 12 content and design fix issues plus 32 QA tracking entries. Each round covered a mix of content accuracy (attorney education-section consistency, years-of-experience alignment, FAQ and results-section content), layout and spacing adjustments, and page-level design refinements. The 43-item SEO backlog was worked down in parallel. All tracked items were resolved through the tail before the agency signed off.
4. Two parallel QA loops, closed before launch. Issues were tracked in two agency-side backlog tabs — the SEO Issues Backlog (43 rows with descriptions, 29 Completed) and the CX Issues Backlog (2 rows with descriptions, 1 Completed). The SEO backlog’s items covered meta-title accuracy, H1 alignment, and content consistency across the 14 individual practice-area pages. The 85-item launch checklist — Design, Functionality, Content, SEO, Responsive, and DNS categories — closed behind both backlogs.
When the agency’s QA flagged three conflicting years-of-experience figures and two inconsistently formatted Education sections, the build team could surface each one but could not author the corrections — that constraint defined the tail. Absorbing those tickets through the fix-and-feedback loop, round by round, was what the 22-day build actually required.
Results
| Metric | Outcome |
|---|---|
| URLs built | 26 across 10 templates (1 Homepage · 2 Practice Area Landers · 14 Individ. Practice Area Pages · 1 Lawyer Profile · 1 About Us · 1 Blog Lander · 1 Contact · 3 Default Template · 1 Privacy Policy · 1 Terms of Conditions) |
| Templates applied | 10 / 10 from the agency’s standard legal template library |
| SEO issues backlog | 29 / 43 with descriptions closed as Completed; balance were Info-Needed or in QA at data export |
| CX issues backlog | 1 / 2 with descriptions closed as Completed |
| Launch checklist | 85 items signed off across Design / Functionality / Content / SEO / Responsive / DNS |
| Content fix tail | 12 individual content and design fix tickets resolved; 32 QA tracking entries closed through the tail |
| Timeline | 22 days for main build; fix-and-feedback tail ran through Dec 2025 |
| Effort | 78h / 78h estimate — no overrun, no scope creep |
| Handoff | Site live on Kinsta, https://injuryinpa.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 26-URL build shipped across 10 templates on the Kinsta environment, inside the 78-hour quoted budget. Two QA backlogs were worked down to agency-acceptance levels and the launch checklist closed before cutover.
Operational Integrity at handoff
Pre-handoff QA ran Site Checker across all 26 URLs — on this build, with content loaded through ACF fields into Elementor templates, the plugin initially reported missing H1s and empty content on every template page; the content-check method was rebuilt to use full-page rendering before the pass closed clean. 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 file reviewed, workbook rows confirmed, 78h quoted and agreed |
| Build phase (pages + templates) | ~2 weeks | All 26 URLs built against 10 templates on Kinsta staging; SEO backlog opened |
| Fix-and-feedback tail | ~10 weeks | Content accuracy, design refinements, attorney-section consistency; 12 fix tickets + 32 QA tracking entries resolved |
| Launch checklist + delivery | final week | 85-item checklist signed off; site live on Kinsta |
Phases overlap — the fix-and-feedback tail began before every build-phase QA item had closed, which is why the calendar spans more than the sum of individual phases.
Team
Delivery team
- Nikita Tumasevic — build review and QA support
- Pavel Sazhin — QA iterations and fixes
- Anna Polunina — implementation support and QA
- Timur Arbaev — developer support on late-phase customisation and content corrections
- Lyudmila Travkina — lead developer across build and feedback 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.
For agencies commissioning a white-label WordPress build
If you’ve worked with a dev partner who built the pages but let content accuracy drift into your QA — conflicting attorney bios, inconsistent credentials, placeholder text in results sections — the inverse is what this engagement looks like: surface the inconsistencies early, absorb each fix ticket cleanly, and close the tail before the agency signs off.
Send a current build workbook or a draft sitemap. We will review it for structural risk, flag the rows that carry content-accuracy exposure before the build starts, and return a fixed-hours estimate 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 →