Case Study · Web Design · Bilingual · Legal

The bilingual immigration law firm website

How we built the marketing site for a 180-employee bilingual immigration practice serving all 50 states. Click-to-call architecture, full English + Spanish content parity, Aircall + HubSpot attribution, and 17,000+ tracked inbound calls per month. Same engineering team that built the firm's 7,000-case CRM, this time applied to the website that feeds it.

Shipped 2025 · Updated 2026
180-employee firm, 50-state service
17,000+ inbound calls/month
Before & After

What the firm walked in with, and what we shipped

Same business, same brand mark, same 50-state caseload. Left column is the pre-engagement site (March 2023 — Wayback Machine archive). Right column is the production site running today. Both are real captures, not mockups.

BeforeMarch 2023 · Wayback archive
Elizabeth Rosario Law homepage in March 2023 — a Wix-style template with a cracked-marble background, decorative gold flourishes, and a static centered ER logo with the Lady Justice icon. No real photography, no phone number above the fold, no conversion elements.
Static Wix-style template. Cracked-marble background, scroll-jacker dots, eight-item top nav. No phone number, no CTA, no value prop above the fold. One office, one language treatment, one funnel.
After2025–present · in production today
Elizabeth Rosario Law homepage today — a custom Next.js site with the founder's photograph, gradient headline, bilingual support badge, multi-CTA layout, social-proof stats (10,000+ families helped, 14+ years experience, 50 states served), and a Deportation Emergency CTA in the top nav.
Custom Next.js production site. Founder photography, bilingual badge, click-to-call header CTA, deportation- emergency surface, multi-location footer. 10,000+ families, 14+ years, 50 states. Proof row sits above the fold.

The full-page comparisons (desktop + mobile) live further down the case study. The hero shots above are what a paid-social click actually lands on — that's where the conversion math starts.

At a glance

The results, upfront

Inbound calls
17,000+/mo
tracked + attributed
Leads created
5,000+/mo
HubSpot pipeline
Consults sold
1,000+/mo
run-rate
Service area
All 50 states
from 2 offices
Language parity
EN + ES
full localization
Mobile load profile
<2s LCP
tap-to-call ready
The client

A bilingual immigration practice with two offices and a fifty-state caseload

The same firm featured in our 7,000-case CRM case study. 180 employees, two physical offices (Charlotte, NC and Wyoming, MI), national-reach representation across all 50 U.S. states. Bilingual practice — Spanish is the primary language for a majority of the client base. The team handles family-based, humanitarian, business, and removal-defense immigration matters with USCIS deadlines often measured in hours.

Marketing runs as a real operation. A paid social program across Facebook + Instagram. A bilingual intake team taking thousands of calls a month. A HubSpot CRM (the same one we built) routing every lead through a 32-agent sales-to-intake pipeline. The website is the door all of that traffic walks through.

Client identity stays confidential. The firm represents asylum seekers, trafficking survivors, and other vulnerable populations whose privacy is non-negotiable. Every technical decision on this engagement got the same privacy-first defaults as the CRM build.

The challenge

A marketing site that was fighting the actual buyer

Four design mismatches were dropping high-intent traffic before it reached the intake team. None showed up in a desktop preview. Each one only surfaced under the actual conditions the firm's buyers visit under.

Phone-first audience, form-second sites

Most law-firm websites optimize for the contact form — a 12-field intake the visitor fills out, submits, and waits days for a callback. Immigration clients calling in moments of urgency (deportation notices, USCIS deadlines, family separation) need a phone number above the fold, not a form. The existing site buried the call CTA below scroll.

Spanish content treated as an afterthought

The previous site had a Google-Translate widget overlay. Spanish-speaking visitors got machine-translated legal terminology that frequently got the meaning wrong. For an audience that was over half the firm's actual client base, second-class language treatment was hurting trust before the first call.

Paid social drives mobile-first traffic the site wasn't built for

The firm's primary acquisition channel is paid social — Facebook and Instagram ads running across 50 states. That traffic is overwhelmingly mobile, often on slow connections, often in landscape orientation on older devices. The previous site loaded in 5-8 seconds on 4G and lost most of the click before the page rendered.

Two offices, fifty-state service, no clear architecture

The firm has physical offices in Charlotte, NC and Wyoming, MI, and they represent clients across all 50 states. The website needed to surface both physical offices (for local search + Google Business Profile signal) AND telegraph national-reach service (for paid social traffic from anywhere). A typical 'Contact Us' page does neither well.

What we built

A click-to-call practice site, bilingual by design

Five design decisions, each one chosen against the actual buyer reality. Mobile-first. Spanish-first. Urgent. Phone-driven. Paid-social-attributable. Not chosen against the law-firm-website template most agencies ship.

01

Click-to-call architecture as the primary CTA

Phone number lives above the fold on every page, every breakpoint, every language. Click-to-call (tel: links) routes mobile taps straight to the native dialer. The 'Free Case Evaluation' button is secondary. The phone number is primary. Result: paid-social mobile visitors tap-to-call within the first 8 seconds, which exactly matches the average GA4 engagement time. That's the design doing its job, not a bounce problem.

02

Full Spanish localization with content parity

Built a /es URL tree with hand-authored Spanish content for every primary page. Homepage, services, About, locations, contact. Not machine translation. Spanish schema markup, Spanish meta titles and descriptions, Spanish OG tags. The Spanish version is a peer site, not a translation, because for this practice Spanish is the primary language for most of the customer base.

03

Mobile-first performance for paid social traffic

Sub-2-second LCP on mobile, on 4G, with paid-social UTM parameters. Server-rendered initial paint, deferred client JavaScript, optimized image formats per breakpoint, no heavy iframe widgets above the fold. Built to convert the tap inside the ad-click window where attention is highest, before the visitor abandons.

04

Aircall + HubSpot attribution loop

Every phone number on the site is an Aircall-routed number with UTM parameters carried through the call. Inbound calls become tracked contacts in HubSpot with source attribution (paid-social ad set, organic search query, direct visit). The team sees the actual ad creative that drove each call. The firm attributes revenue back to specific campaigns. 17K+ tracked inbound calls per month flow through this loop.

05

Two LocalBusiness schemas + 50-state areaServed

Two LocalBusiness schema entries (Charlotte, NC and Wyoming, MI) with full NAP, hours, and Google Maps embeds tie the site to physical locations for local-pack ranking. A separate LegalService schema declares all 50 states as areaServed for national-reach signal. Reviews schema surfaces the 676+ Google reviews on the Wyoming location and 111+ on Charlotte — review velocity is a direct local ranking factor.

Full-page comparison

Below the fold, side by side

The hero shots are the first thing a paid-social click lands on. Everything below is what determines whether the visit becomes a call.

BeforeMarch 2023 · full-page
Full-page capture of elizabethrosariolaw.com from March 2023 — Wix-style template with cracked-marble background throughout the entire scroll. Single page, decorative-heavy, no multi-location structure.
AfterToday · full-page
Full-page capture of elizabethrosariolaw.com today — modern multi-section layout: hero, services grid, two-location map block, deportation emergency callout, testimonials, full bilingual support.
Mobile, where the math runs

70%+ of paid-social clicks are on phones

Mobile is not a smaller version of the desktop site — it's the primary surface. Click-to-call is the dominant CTA. The deportation-emergency entry is above the fold. The bilingual language toggle is one tap away. Spanish navigation is at parity with English, not buried behind a flag icon.

Mobile capture of elizabethrosariolaw.com — the live production site on a 390px-wide viewport. Founder photo crops to portrait, headline stays legible, click-to-call CTA is prominent, sticky phone number visible in the top nav.
Technology

The stack, in full

Same Next.js + Vercel foundation as the CRM build. Same privacy-first defaults. The website and the CRM share one architectural family. When traffic spikes during a paid-social burst, both scale on the same edge infrastructure without custom ops work.

Next.js (App Router)TypeScript (strict)Server ComponentsMobile-first responsiveBilingual i18n (en + es)Aircall integrationHubSpot CRM integrationGA4 + paid social attributionSchema.org LegalServiceLocalBusiness × 2 locationsFAQ schemaVercel Edge
The outcome

A website that finally matches the operation behind it

The site now ships somewhere north of 17,000 inbound calls per month through Aircall. Each call is attributable to a specific paid-social ad set, organic query, or direct visit. Those calls become roughly 5,000+ new HubSpot leads per month routed through the firm's 32-agent intake team. Roughly 1,000 consults sold per month flow out the other side of the pipeline into case creation.

The Spanish-language version of the site is no longer a translation widget. It's a peer site with full parity. Spanish-speaking visitors land on hand-authored content, see Spanish reviews, and reach a Spanish-fluent intake team within tap-to-call latency. For a majority-Hispanic client base, that is what trust looks like.

Mobile performance runs at sub-2-second LCP on 4G with paid-social UTMs attached. The site is built to convert the tap inside the ad-click attention window, before the visitor remembers what they were doing before they saw the ad. The eight-second average GA4 engagement time is not a failure of engagement. It's the click-to-call architecture doing exactly what it was built to do.

The website and the CRM are now the same product. A paid-social ad creates a call. The call creates a HubSpot contact with source attribution. A sales agent runs the lead through the consult-sold pipeline. An intake agent converts the consult into a case. A paralegal opens the case in the CRM we built on the same infrastructure. Marketing spend has an attributable revenue path for the first time in the firm's history.

What this means for your business

The same patterns scale down

You don't need 180 employees or a 50-state caseload to use these patterns. Each one maps onto solo practitioners, small firms, and lakeshore small businesses at small-business prices.

ME
Built by

The Maxx Effect team · Muskegon, MI

The team designed and shipped the marketing website that feeds the same 7,000-case CRM we built for the firm. Same engineers, same privacy-first defaults, same Next.js + Vercel foundation. Maxx Effect brings the same engineering standards to West Michigan small businesses.

More about Rob

Want a marketing site that actually matches your operation?

Every engagement starts with a free audit. We look at your current site, your acquisition channels, your CRM, and your actual buyer behavior — then send back a concrete plan with real numbers. No sales pitch, no pressure.

Get Your Free Audit

Instant score  ·  No sign-up  ·  Under 30 seconds