Portable, mobile-optimized widgets for local SEO & lead conversion.
Edit src/seo-widgets/config.ts to customize.
These widgets boost local search rankings with NAP consistency, service area signals, and structured data.
<NAPContactCard />Leaflet map with red geofence boundary + pin marker, plus redesigned Call/Email CTA below.
<ServiceAreaSection />Leaflet map with geofence boundary + pin + service area cities + address/phone/hours.
Address
123 Main Street, Minneapolis, MN 55401
Phone
(763) 299-1449Hours
<BreadcrumbNav />SEO breadcrumbs with JSON-LD structured data. Helps Google understand site hierarchy.
<ProjectPageMap />Geo-tagged project page with map pin, related services, and structured data. Each project becomes a ranking page.
Our team completed a beautiful stamped concrete patio for a homeowner in Plymouth, MN. The project included a custom stone pattern with integral color and a sealed finish for long-lasting durability.
<ProjectsGalleryMap />Interactive map with clickable pins + scrollable card grid with images. Each card links to a dedicated project page. Data from src/data/projects.json.

Stamped Patio in Plymouth
Plymouth, MN
Installed a 400 sq ft stamped concrete patio with ashlar slate pattern and desert tan integral color for a homeowner near Wayzata Bay.

Driveway Replacement in Maple Grove
Maple Grove, MN
Removed and replaced a cracked 60-foot driveway with reinforced 4-inch concrete and broom finish near Elm Creek Park Reserve.

Foundation Work in Bloomington
Bloomington, MN
Poured a full basement foundation for a new construction home in the Normandale Lake area. Included waterproofing and drainage tile.

Sidewalk Installation in St. Paul
St. Paul, MN
Installed 200 linear feet of ADA-compliant sidewalk connecting a residential block near Como Park to the neighborhood playground.

Garage Floor in Brooklyn Park
Brooklyn Park, MN
Applied a polyurea-coated garage floor system with full-flake broadcast finish in a two-car garage near Palmer Lake Elementary.
<LocalBusinessSchema />Invisible JSON-LD structured data injected into the page. Tells Google your business name, address, phone, hours, and service areas. Already added to this page.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Hoosier Concrete Construction",
"telephone": "(763) 299-1449",
"address": "123 Main Street, Minneapolis, MN 55401",
"areaServed": "Minneapolis, MN, St. Paul, MN, Bloomington, MN..."
}This component renders no visible UI — just schema markup in the page head.
Interactive widgets that convert visitors into leads. All mobile-optimized.
<MobileStickyBar />Fixed bottom bar with Call, Book, Text, Email buttons. Persistent CTA on every page.
The sticky bar is active at the bottom of this page. Preview both variants:
<CallQRModal />'Talk to us instantly' modal with scannable QR code that dials your phone number.
<TextFormModal />'Send us a text message' lead capture form with name, phone, address, and message fields.
<BookingWizardModal />Multi-step booking form: Residential/Commercial → Service → Contact → Details. Progressive disclosure for higher conversions.
<ChatWidget />AI chat widget with optional phone verification. Captures leads through conversational UI.