Skip to content
Directory

Bakersfield Barbers

Hyperlocal barber directory with SEO-driven discovery, business claim flow, and bilingual support

SvelteKitSupabaseTailwind CSSLeafletMDsveXVercel
Bakersfield Barbers screenshot
01
Overview

Bakersfield Barbers is a local directory connecting 40+ barbershops with Kern County residents. The site is built for search — every shop, neighborhood, and service page is server-rendered with structured data markup (BarberShop, AggregateRating, FAQ, BreadcrumbList schema) and dynamically generated OG images. Business owners claim their listing through a rate-limited form that fires Discord notifications to the admin team. The full admin dashboard manages shops, leads, user-submitted corrections, and taxonomy. The entire site is also available in Spanish.

02
Quick Facts

role

Solo Developer

type

Local Directory

stack

SvelteKit, Supabase, Tailwind CSS, Leaflet

focus

Local SEO & Lead Generation

03
What I Built
build-log ~ bakersfield-barbers
01 Directory with advanced filtering — neighborhoods, service types, and amenities via multi-select URL-driven state
02 Individual shop pages with hours, services, pricing, gallery, ratings, and interactive Leaflet maps with gold markers
03 Comprehensive structured data — BarberShop, AggregateRating, FAQPage, BreadcrumbList, and WebSite schema on every page
04 Dynamic OG image generation via Satori + Sharp for social sharing
05 Business claim flow with honeypot spam filtering, persistent DB-backed rate limiting, and Discord webhook notifications
06 User-submitted edit suggestions with admin review workflow (pending, reviewed, applied, dismissed)
07 Full admin dashboard — shop CRUD, lead pipeline management, suggestion triage, and taxonomy editing
08 Full Spanish translation with separate /es/ route tree and hreflang tags for multilingual SEO
09 Blog system powered by MDsveX with 10+ published posts targeting long-tail barber keywords
10 Real-time search API returning up to 6 results with thumbnails — rate-limited at 30 req/min
04
Gallery
05
Deep Dive

Ranking for Every Barbershop in Bakersfield

The entire architecture is designed around one goal: owning local search for barber-related queries in Bakersfield. Every shop page is server-rendered with five layers of schema markup — BarberShop with full address and geo-coordinates, AggregateRating for star snippets, FAQPage auto-generated from each shop's hours and services, BreadcrumbList for navigation hierarchy, and WebSite with SearchAction. Neighborhood pages target "barbers in [area]" queries, service pages target "[service] in Bakersfield" long-tail keywords, and the blog adds topical authority. OG images are generated dynamically with Satori so every share on social media looks polished without manual design work. The claim flow turns the directory into a lead generation engine — shop owners see their listing, want to update it, and submit a claim form that triggers a Discord notification for follow-up. The persistent rate limiter uses PostgreSQL atomic UPSERTs so it survives serverless cold starts, unlike in-memory limiters.

06
Outcomes
+ 40+ barbershops indexed with full structured data — appearing in Google rich results
+ Bilingual coverage (English + Spanish) expanding reach to Bakersfield's large Hispanic community
+ Business claim pipeline generating warm leads from shop owners who want to manage their listing
+ Sub-2s mobile load times with server-rendered pages and Vercel edge caching
+ Admin dashboard eliminates manual data entry — crowdsourced corrections reviewed and applied in clicks
+ Blog content targeting long-tail keywords drives organic traffic beyond just directory searches