All work
Case study

The Moses Law Firm

A Blacksburg practice that has represented injured workers across Southwest Virginia for more than twenty years. We built their first site on WordPress, then rebuilt it as a lean, static Astro site that walks a worried visitor to a free case review one question at a time.

Visit themoseslawfirm.com
The Moses Law Firm homepage on desktop: the headline “Injured at work. Not out of options.” beside a portrait of attorney Brenda Moses, with “Start a free consultation” and call buttons
Client

The Moses Law Firm, PC

Platform

WordPress, rebuilt on Astro + Vercel

Services

Design, development, content strategy, migration

The challenge

People land on a workers’ comp site at a bad moment: hurt, off work, and unsure whether to trust anyone. The site has to answer the questions insurance carriers won’t (what’s covered, how attorneys actually get paid, what to do first) and make reaching a real person feel easy, not like filing paperwork.

Where it started: WordPress

Our first build for the firm was on WordPress. It led with the client’s question (“Have you suffered a work-related injury?”) and answered it in plain language: how contingency fees work, why reporting the injury early matters, and video explainers of the system, with Google reviews and a two-decade track record carrying the credibility. The firm managed its own content, and that plain-language approach is what carried forward.

Why we streamlined it

The firm’s site is mostly stable, written guidance: what to do after an injury, what benefits exist, how a denial is appealed. On WordPress that guidance sat behind a theme, a plugin stack, and a database, all of which needed patching, and every page was assembled again for every visitor. For a small practice with no web staff, that was upkeep with nothing to show for it.

So we kept the voice and the structure, and replaced the delivery model with something much smaller.

The rebuild on Astro

The new site is built with Astro and served from Vercel. All 48 public URLs are rendered to finished HTML at build time, so nothing is assembled per visit and there is no database behind the pages. The home page loads a single script of about 1 kB gzipped. Firm details are published as LegalService and Attorney structured data on every page.

Heavier features load only when someone uses them. The attorney’s explainer video shows a poster until a visitor presses play, and only then brings in the Vimeo player. On Areas We Serve, a ZIP check tells a visitor whether they are in the region, and the Mapbox map library downloads only as the map scrolls near the screen.

The content grew with the move: a guide for each of the 15 communities the firm serves, covering local employers and where to start, and 18 Insights articles in four topics (filing a claim, your benefits, your rights, denied claims) answering the questions clients actually ask.

Intake, one question at a time

The free case review is a four-step conversation instead of a long form. It asks which situation sounds closest (a new injury, a denial, benefits that stopped, pressure to return to work), when it happened, how far along the claim is, and how the person would like to be reached. Every option carries a short line in plain language, such as “Timing decides which deadlines apply. An estimate is fine.”

Submissions post to a single server endpoint behind Cloudflare Turnstile, and the form says plainly that the message goes to the firm directly and that contacting them does not create an attorney-client relationship.

Nothing lost in the move

Old WordPress addresses forward permanently to their new homes, so the blog and resources now land on Insights and the attorney profile on the new attorney page, keeping years of inbound links working. The deployment adds a strict Content Security Policy, HSTS preload, a locked-down permissions policy, and a rule that the site cannot be framed by anyone else.

Accessibility, stated precisely

Injured workers include people navigating with one hand, on a phone, in pain. The rebuild has a skip link, a single page heading on each page, and pause controls on both moving elements, the practice-area ticker and the review carousel. The video player loads with a title for screen readers.

To be precise about the claim: those are patterns we built and checked, and the dated Lighthouse run below reports a 100 for accessibility on the home page. We have not published a formal conformance audit of the site.

WordPressAstroLaw firmGuided intakeLocal SEO
Measured, not claimed

Google PageSpeed Insights

Run the report yourself (opens in a new tab)
100
Performance
100
Accessibility
100
Best Practices
100
SEO
2 of 2
Agentic Browsing

Core metrics

First Contentful Paint
0.2s
Largest Contentful Paint
0.4s
Total Blocking Time
0ms
Cumulative Layout Shift
0.006
Speed Index
0.5s

themoseslawfirm.com · Lighthouse 13.5.0, emulated desktop, captured Oct 1, 2026. Scores vary between runs.

Have a project like this one?

Start a project