Case study · Criminal defense · Web

Paul Petruzzi website

A modern criminal defense law firm website built in Nuxt 3 — designed to feel credible, structured, and conversion-aware, with strong emphasis on content architecture, SEO thinking, and a premium professional presentation.

  • RoleLead frontend & site structure
  • Project typeProfessional services website
  • StackNuxt 3, Vue 3, LESS
  • FocusCredibility, IA, SEO, conversion

01 · Overview

Project overview

This project was a real professional website build for a criminal defense law practice — a context where the site isn’t just marketing, but part of how a firm presents itself to people under stress, often searching quickly, on mobile, and judging trust in seconds.

The site was structured and implemented in Nuxt 3, with the aim of delivering a strong, credible, modern law firm presence: clear hierarchy, readable service content, and a foundation that supports both user confidence and long-term SEO growth — not a one-off brochure page.

The work involved design and technical thinking together: how sections repeat, how practice pages scale, how navigation and internal linking reinforce context, and how the frontend stays maintainable as the site grows. That combination — presentation, structure, and execution — is what made this a meaningful, real-world build.

02 · Challenge

The challenge

A law firm site has to earn trust before anything else. Visitors may be anxious, rushed, or comparing options — so the design can’t feel cheap, gimmicky, or like a generic template. At the same time, it still needs to guide people toward contact in a way that feels appropriate and restrained, not pushy, in a sensitive legal context.

Structuring service and practice-area content is its own problem: pages need to be distinct enough to be useful (for users and for search) without overlapping in confusing ways. The site also had to feel modern and authoritative— not dated, but not flashy either.

The build was never only visual. It required a foundation that supports long-term SEO and content expansion: predictable routes, consistent page patterns, and metadata that matches what each page actually says — so the site can grow without turning into a patchwork of one-off layouts.

03 · Goals

Goals

  • Premium first impressionA trustworthy, professional tone that fits criminal defense — calm, clear, and intentional.
  • Structure & navigationLogical paths to services, locations, and contact — fewer dead ends, clearer mental models.
  • SEO-friendly architecturePage intent, service hierarchy, and internal linking that support discoverability over time.
  • Expandable service pagesPractice areas presented clearly and consistently so new content fits existing patterns.
  • Accessible authorityLegal services explained in a way that feels approachable without losing seriousness.
  • MaintainabilityA Nuxt codebase and component model that scales with the firm, not against it.

Goals were framed around structure, credibility, and clarity — not guaranteed rankings or inflated business outcomes. Sustainable SEO is a process; this project focused on the right foundation.

04 · Design

Design approach

The visual direction was premium and restrained: strong typographic hierarchy, generous spacing, and a layout that prioritises clarity over decoration. Every section should answer “what is this for?” before asking for attention.

Conversion-focused layout meant obvious CTAs and contact paths — but placed with restraint so the site still feels respectful. Legal audiences don’t respond well to pressure tactics; the design had to signal authority and calm first.

Repeated patterns — hero treatments, service summaries, trust-oriented blocks — were designed to compose consistently across routes, so the experience feels cohesive whether you land on a practice area or a location page. That consistency is part of what makes a firm feel real and established, not stitched together page by page.

05 · Build

Development approach

The site is built in Nuxt 3 with Vue 3 and a component-driven structure: shared layouts, reusable sections, and page templates that map to real user journeys — services, locations, contact, and supporting content.

The emphasis was on scalable structure and maintainability: fewer duplicated layouts, clearer boundaries between components, and styles organised with LESS and shared tokens so the UI stays coherent as pages multiply.

The frontend is responsive end-to-end, with semantic HTML, sensible heading order, and focus states that make sense for keyboard users — not an afterthought. Implementation stayed performance-aware: practical choices about how pages are composed and delivered, aligned with the reality of real users on real devices.

06 · Strategy

SEO, structure & content strategy

This section is central to the project. SEO here isn’t “tricks” — it’s aligning page intent with clear structure: each URL should have a clear purpose, titles and descriptions should match what users see on the page, and headings should outline content in a way that makes sense to humans and to crawlers.

Service page hierarchy was planned so practice areas and related pages don’t compete in confusing ways. Each page type answers a different kind of need — broad practice overview vs. specific service or location context — and internal links reinforce that relationship instead of diluting it.

Internal linking connects related services and geographic context where it helps users navigate — and strengthens topical relationships for search engines without looking like a link farm. Metadata is treated as part of the content system, not a bolt-on: if a title promises something, the on-page copy delivers it.

The goal was to build a better foundation for practice-area growth — a structure that supports adding or refining content over time, and that aligns with how people search for legal help in relevant jurisdictions. I’m not claiming specific rankings or traffic numbers; those depend on many factors outside the codebase alone. What this work does is put clear, honest, well-structured pages in place.

07 · Engineering

Technical highlights

  • Nuxt 3 / Vue 3 architecture — file-based routing, layouts, and composition patterns that keep pages consistent and predictable.
  • Reusable UI sections — marketing blocks, CTAs, and repeated patterns implemented once and composed across routes.
  • Maintainable content structure — templates and components that scale when new services or pages are added.
  • SEO-conscious page setup — route-level thinking for titles, descriptions, and semantic structure.
  • Responsive, careful implementation — layout and typography that hold up across breakpoints without fragile hacks.
  • LESS-based styling — shared variables and scoped styles for a coherent design system without unnecessary abstraction.

08 · Result

Outcome

The project delivered a more polished, structured, and credible web presence for the practice — one that presents services and locations with clarity and supports future content work without forcing every update to be a bespoke layout job.

It created a stronger foundation for ongoing SEO and content iteration: pages are easier to reason about, metadata aligns with on-page content, and the architecture supports growth rather than fighting it.

From a product perspective, the site brings design, structure, and frontend implementation together in a more cohesive way — a single narrative that matches how the firm actually wants to be perceived. I’m not attaching fabricated metrics; the outcome here is qualitative, structural, and professional — and that’s the honest read.

09 · Reflection

Lessons learned

Information architecture pays dividends. When URLs and headings tell a coherent story, both users and search engines benefit — and the codebase stays easier to extend.

In legal and other high-stakes niches, trust is designed through detail: rhythm of copy, spacing, motion, and tone. Small inconsistencies read as carelessness.

SEO thinking and frontend execution aren’t separate phases. Metadata, internal links, and component structure are part of the same system — treating them that way avoids expensive rework.

Real-world sites need strategy as well as delivery. A beautiful layout that doesn’t scale or doesn’t match page intent is a liability. Building for the next page — not just the current screenshot — is what separates durable work from one-off builds.

10 · Stack

Tech stack

Tools and focus areas that defined this build — the same stack I use for portfolio-grade frontend work.

Technologies & practice areas

  • Nuxt 3
  • Vue 3
  • LESS
  • SEO / metadata strategy
  • Responsive frontend

Also involved

  • Content architecture
  • UI / UX
  • Semantic HTML
  • Technical SEO foundations
  • Internal linking