Map and list workspace
Keeps business density, proximity, ranking, and search coverage visible in one discovery view.
A responsive lead discovery platform for freelance web designers and small agencies to find local businesses without websites, rank opportunities, unlock contact details, and manage outreach.
SiteGapLeads is a responsive SaaS platform I designed and built for freelance web designers and small agencies. It turns local prospecting from a scattered research task into one focused workflow.
Users can find active businesses without independent websites, compare opportunities with a transparent score, unlock the contact details they need, and manage outreach in a lightweight pipeline.
The product began with one practical question: how can a web designer move from “Where can I find potential clients?” to “These are the businesses I should contact next” without switching between maps, directories, spreadsheets, and a CRM?
I built the MVP around that transition. Discovery, qualification, contact unlocking, saved leads, and outreach tracking all follow the same sequence, with the interface showing only the information and controls needed at each step.
Finding website clients is usually a repetitive research process. The work is slow, lead quality is unclear, and the workflow breaks as soon as discovery ends.
A business without a website is not automatically a strong opportunity. The product also needed to show whether that business looked active, trusted, local, and reachable before asking the user to spend time or a credit.
Enter a city, ZIP code, or address, choose a radius, then select a preset and business categories.
See the center point and radius on a map so the geographic scope is clear before the search runs.
Remove businesses with independent websites, closed listings, chains, invalid coordinates, and likely duplicates.
Review synchronized map and list results, then sort or filter by score, rating, activity, contactability, and distance.
Use business context, reputation signals, and the Opportunity Score to judge relevance before spending a credit.
Reveal exact contact details for one credit, with single and bulk actions that never charge twice for the same lead.
Add notes, export unlocked data, and move prospects from New through Contacted, Proposal Sent, Won, or Lost.
Every eligible result already lacks an independent website. The score measures something more useful: how valuable, active, and contactable the business appears.
Every recommendation keeps its point breakdown, so the ranking remains understandable instead of becoming an unexplained AI score.
| Category | Max | Example signals |
|---|---|---|
| Contactability | 25 | Valid phone number and additional contact methods |
| Business reputation | 25 | Strong rating and healthy review count |
| Business activity | 20 | Recent reviews, listed hours, and recent listing activity |
| Social presence | 15 | Facebook, Instagram, LinkedIn, or TikTok presence |
| Local business fit | 15 | Independent business and complete local listing |
Keeps business density, proximity, ranking, and search coverage visible in one discovery view.
Shows enough context to make a decision while exact contact details remain protected on the server.
Stores and displays every signal and point behind the recommendation instead of presenting a black-box score.
Explains new unlocks, credits used, current balance, and remaining balance before the action is confirmed.
Keeps contact information, reviews, score reasons, notes, status, and activity together.
Connects prospecting to outreach without turning the MVP into a complex enterprise CRM.
Lets users reopen or rerun searches and move unlocked data into external tools when needed.
Explains radius, category, export, result, and credit restrictions at the point where they matter.
Required search decisions appear first. Advanced filters and deeper lead information arrive only when they become useful.
Searching is free. The interface states exactly when a credit will be used and whether a retry or failed search affects the balance.
The desktop workspace becomes focused Search, Leads, and Map views on mobile instead of a compressed three-panel layout.
Labeled controls, semantic actions, status text, keyboard-friendly primitives, and non-drag status changes support more users.
I built SiteGapLeads with Next.js 16, React 19, TypeScript, Tailwind CSS 4, Supabase, Mapbox, Stripe, and a provider-based business discovery layer.
The application can also run end to end with deterministic demo data. That makes the complete workflow testable without live provider credentials or usage costs.
Search is free; users spend credits only when they choose to reveal actionable contact data. Paid plans add more unlocks, larger search areas, more categories, higher result limits, export, history, and advanced filters.
| Plan | Price | Unlocks | Radius | Categories | Results |
|---|---|---|---|---|---|
| Free | $0 | 10 total | 5 mi | 1 | 15 |
| Starter | $29/mo | 500/mo | 15 mi | 2 | 75 |
| Pro | $59/mo | 2,000/mo | 30 mi | 3 | 250 |
| Agency | $99/mo | 5,000/mo | 50 mi | 10 | 750 |
The product has not launched to customers yet, so this case study does not claim conversion, retention, revenue, or customer time-saved metrics.
I owned the product strategy, UX design, visual system, and full-stack implementation. I defined the target user and MVP scope, mapped the end-to-end lead workflow, created the scoring model, and built the responsive product architecture.
Finding businesses without websites was only the first step. I designed an explainable score to separate active, reachable opportunities from weak results.
Preview-safe information is separated from full lead records on the server, so users can judge quality without exposing exact contact data.
A unique user-and-business relationship, idempotent unlock flow, and append-only ledger keep every credit action auditable.
Caching, plan limits, daily provider limits, chain filtering, deduplication, and on-demand enrichment reduce unnecessary paid work.
I redesigned the workspace as three focused mobile states and replaced wide tables and Kanban columns with cards and status tabs.
The most important product lesson was that discovery alone is not enough. Users need help deciding what is worth their time and a simple way to act on that decision. Transparent scoring, useful locked previews, and a focused pipeline turn listings into a practical prospecting workflow.
The next step is usability testing with 5–8 freelance web designers. I want to validate whether users understand the score, know what an unlock reveals, can complete a first search without instruction, and can move a useful lead into outreach.
SiteGapLeads brings discovery, qualification, contact unlocking, and outreach management into one responsive product for web designers.