Campbell Digital Studio

Case study / Vending & Breakroom · Programmatic Local SEO

P1 Refreshments.

Brand system, information architecture, and a real-data 40-page city × service SEO matrix for a woman-owned Greater Waco breakroom company.

Sector
Vending & Breakroom
Year
2026
Stack
Next.js 16
Status
Shipped
P1 Refreshments — cover screen

fig. 01 — Homepage — People First breakroom positioning

What the build
actually covers.

Pages shipped
12+
Counted from deliverables
Screens documented
6
Selected screens below
Custom tools
0
Interactive, in-house built

Measurement window pending — see §08 for the 30/60/90 reporting plan.

What the project
needed to do.

P1 Refreshments is a woman-owned vending, office-coffee, micro-markets, and pantry company in Greater Waco, Texas. Campbell Digital Studio authored the system the site runs on — the brand voice profile, the visual identity, the information architecture, and a programmatic city × service SEO matrix — and holds the build to a written QA conformance gate. Live at p1refreshments.com on Next.js 16, the platform routes a 40-cell service × location matrix across ten McLennan County cities, where every cell carries real ACS census data and named local employers so no two pages are interchangeable, plus a native MDX blog engine running a 211-post editorial calendar on a date-gated drip. The build was executed by an affiliated builder to the studio's spec.

A brand-new, woman-owned breakroom company needed to be findable across a ten-city metro for four distinct services — vending, office coffee, micro-markets, and pantry — without spraying the thin, near-duplicate 'city + service' pages Google reads as doorway spam and filters out of results. The job was a system, not a stack of pages: a brand voice the owner recognized as her own, an information architecture that organized forty service-area combinations cleanly, and a uniqueness standard strong enough that every programmatic page earned its place.

Every one of the 40 city × service pages carries real local data, so the matrix reads as genuine local coverage instead of doorway spamWhat moved the needle

What it looks like,
on screen.

Homepage — People First breakroom positioning
fig. 02Homepage — People First breakroom positioning
Services — vending, office coffee, micro-markets, pantry
fig. 03Services — vending, office coffee, micro-markets, pantry
Matrix cell — Micro-Markets in Waco, TX
fig. 04Matrix cell — Micro-Markets in Waco, TX
Service Areas — ten-city coverage hub
fig. 05Service Areas — ten-city coverage hub
Native blog engine — editorial calendar
fig. 06Native blog engine — editorial calendar
Meet the Founder — Brittany Knight
fig. 07Meet the Founder — Brittany Knight

The deliverables,
line by line.

Campbell Digital Studio authored the foundation the site is built on: the brand voice profile distilled from the owner's own words, the visual identity system, the information architecture (nav, footer, and the Service Areas hub → city → service model), and the programmatic-SEO matrix design — then set the anti-doorway uniqueness standard and ran the QA conformance gate the build is held to. The site an affiliated builder shipped to that spec is a Next.js 16 platform live at p1refreshments.com: a 40-cell service × location matrix across ten cities where each cell carries real ACS census figures and named local employers plus its own FAQs, ten city hubs, four service hubs, a native MDX blog engine running a 211-post editorial calendar on a date-gated drip (four live today, the rest scheduled forward), Service / FAQPage / Breadcrumb schema referencing one canonical LocalBusiness entity, and a Resend-backed contact pipeline.

  • Brand voice system — a voice profile distilled from the owner's own copy, with the brand 'we' vs. founder 'I' split preserved
  • Visual identity system — palette, type system, and a documented WCAG rule governing the brand's light-blue accent
  • Information architecture — nav, footer, and the Service Areas hub → city → service model across the full sitemap
  • Programmatic 40-cell service × location matrix — vending, office coffee, micro-markets, and pantry across all ten cities, live on the sitemap
  • Real per-city data in every matrix cell — ACS 2023 census figures and named local employers, each field carrying a re-runnable source URL (the anti-doorway uniqueness mechanism)
  • Per-cell FAQs emitting FAQPage schema, under one canonical LocalBusiness @id with Service and Breadcrumb structured data
  • Ten city hub pages and four service hub pages
  • Native MDX blog engine — pagination, six topic hubs, per-post schema, and a 211-post editorial calendar on a date-gated drip (four live today, the rest scheduled forward)
  • Build-time gates — uniqueness, blog-meta, and hidden-content checkers that run before every production build
  • Resend-backed contact pipeline with validation and a honeypot
  • Next.js 16 / React 19 / Tailwind v4 on Vercel, with GA4 and Vercel Web Analytics
  • QA conformance gate — a written PASS/FAIL checklist the build is held to against the studio's source of truth

How the build
earns the call.

Every city × service intersection is a standalone indexed page, and each one is made non-duplicate by real data: ACS 2023 census figures (population, median household income, employed residents, leading sector) and named local employers pulled for that specific city, plus per-cell FAQs. That is the mechanism that lets a 40-page programmatic matrix read as genuine local coverage rather than the doorway spam Google filters — the page for micro-markets in Hewitt says things only true of Hewitt. The whole matrix is held to a build-time uniqueness gate, references one canonical LocalBusiness entity, and ships with Service, FAQPage, and Breadcrumb schema. Sixty-four URLs are live on the sitemap today — the full 40-cell matrix, ten city hubs, four service hubs, and the first blog posts — with the 211-post editorial calendar dripping forward on schedule.

Gives a new, woman-owned breakroom company a findable page for every service in every city it covers — built to survive Google's doorway-page scrutiny because the pages carry real local facts, not reworded boilerplate. The site is new, so the results are still ahead of it: this is the foundation — the brand, the architecture, and the content engine — not a performance report. What it buys P1 is a platform that can compound, on a brand voice the owner recognizes as her own.

The hard part of a 40-page 'every service in every city' site is not building 40 pages — it's keeping Google from reading them as doorway spam and filtering them out. The studio's answer is data: every one of the 40 city × service pages carries real ACS census figures and named local employers for that specific city, so the page for micro-markets in Hewitt says things that are only true of Hewitt. That is the difference between a programmatic matrix that ranks and one that gets ignored. Campbell Digital Studio designed that architecture, the brand system, and the uniqueness standard the build is held to; an affiliated builder executed the site to that spec.Studio rationale
Stack
Next.js 16, React 19, TypeScript, Tailwind v4, next-mdx-remote (native MDX blog engine), Resend (contact pipeline), GA4 + Vercel Web Analytics, programmatic city × service matrix, ACS-census + local-employer data layer, build-time uniqueness/SEO gates
Hosting
Vercel
Launched
2026
Status
Shipped

Metrics, captured
at 30 / 60 / 90 days.

Tracking dashboard captures GSC + GA4 at 30 / 60 / 90 days. Report publishes here on day 90 — view tracking spec

Inquire