We built a directory whose architecture screens out national chains, locality isn’t a filter, it’s enforced at the data layer.

The Original Shop Local Delmarva’s Local Business Directory Build

The Objective

The Original Shop Local Delmarva set out to run a paid directory of locally-owned Delmarva businesses, but had no platform to run it on, no way for vendors to list and pay, no consumer discovery, no admin to vet listings. We built the whole three-sided system in one cycle: a consumer app with radius search and guest browsing, a vendor web app with Stripe subscriptions gating each listing, and an admin console enforcing locality through billing-address verification. One directory. Three roles. Chains screened out by design.

Service Tags

Mobile App Development Web App Development Payment Integration Subscription & Billing UI/UX Design

Industry Tags

Local Commerce Directory-SaaS

Tech Stack

ReactJS (vendor + admin web apps); cross-platform mobile build .NET PostgreSQL Microsoft Azure Google Cloud admin on Netlify mobile distribution via Diawi GoDaddy domain Stripe (payments) Postmark (transactional email) maps/geolocation API for radius search

The Impact

3
Role-Specific Interfaces
Consumer app, vendor web app, and admin console; designed and built together.
1
Subscription Model
Keyword reach, listing slots, points, and banners all scale with the vendor's plan.
10
Result Radius Cap
Discovery widens automatically until it returns businesses, low-density areas still surface results.
100%
Verified Eligibility
Locally-headquartered status confirmed via subscription billing address, no national chains slip in.
The Client

A directory with a point of view, small and local, by design.

The Original Shop Local Delmarva runs a paid directory for the Delmarva region. Businesses subscribe to list their products, points, and banners; consumers browse the locally-owned shops near them. The client didn’t want a generic listings app, they wanted curation as a product principle, a directory that deliberately favors small, locally-headquartered businesses and keeps national chains out.

The Problem

A clear editorial vision with nothing to run it on.

The client had the concept and the audience but no platform of any kind. There was no way for a business to create a listing, pick a plan, and pay for it. There was no consumer-facing app to discover those businesses, and no admin tooling to vet who got in. The hardest part wasn’t any single screen, it was that the locality rule, the thing that made the directory worth running, had no mechanism behind it. “Local” was a promise with nothing enforcing it. Without that enforcement, the directory would fill with exactly the chains it was meant to exclude, and the whole premise would collapse on launch.

Our Approach

Three roles, one spine: the paid subscription.

We structured the build around the three roles that touch the platform; consumer, vendor, admin, each with its own interface, with the paid subscription as the spine running through all three. The plan a vendor buys decides what they can do; the admin sees and gates it; the consumer sees only what cleared. Building the subscription model first meant every later feature read from a single source of truth about who was allowed what.

 We tied search to subscription tier rather than a category taxonomy. A vendor’s searchable keywords scale with their plan, which kept the product simple and made the monetization legible instead of bolted on. We enforced the locality rule at the data layer, verifying locally-headquartered status against the subscription billing address, curation became a property of the data, not a manual gate that could be skipped under volume.

For discovery, we built a radius search that expands automatically until it returns businesses, capped at ten results, so a consumer in a thin part of the peninsula still sees something. Guest login on the consumer app removed the sign-up wall from browsing. We pushed back on how much manual vetting the admin would realistically do, and moved the heavy lifting into billing-address verification rather than a queue of approvals no one would keep up with.

What We Built

One consumer app and two web interfaces across three role levels.

Consumer Mobile App
Vendor Web App
Admin Web App
How It Was Built

Three interfaces, one cycle, from design to production-ready.

Design ran fast; completed between late May and mid-June 2024; with QA and stabilization carrying through August. We worked the three interfaces in parallel against the shared subscription and data model, so the vendor’s plan, the admin’s controls, and the consumer’s view stayed consistent as each was built. The collaboration was iterative on the parts that needed a human judgment call, chiefly the listing approve/reject flow and how much manual vetting the admin would own, which is where we steered effort toward billing-address verification over an approval queue. The result went out production-ready across mobile and web.

Outcome

A live directory that runs itself, and stays local.

The Original Shop Local Delmarva now has a working three-sided platform. Vendors register, pick a plan, pay through Stripe, and stand up listings whose reach scales with what they bought. Consumers browse as guests or sign in, and radius search surfaces nearby businesses even in the sparser stretches of the peninsula. Admins manage users, businesses, and subscriptions from a single console. The locality rule that defined the whole idea now runs as part of the system, eligibility checked against billing address, chains kept out without anyone policing a queue. The client can grow the directory across the region without the curation breaking down as volume climbs.

Testimonials

“The whole point of the directory was to keep it local, and they actually built that into how it works instead of leaving it to us to police. Three apps, one cycle, and the part I cared about most, keeping the chains out, just runs on its own now."

The Original Shop Local Delmarva

Founder

Marketplaces Built From the Rules Up

Building a marketplace or directory where the rules of who gets in are the product? That's the kind of build we structure from the data layer up.

Start a conversation