Problem
What it solves
Freelancers, web designers, agencies, and local marketers need a reliable way to find businesses with no website listed. NoSite turns an area, radius, and set of business categories into an outreach-ready lead list without requiring users to search listings by hand.
Main features
Feature set
- Location, radius, category, and scan-size controls with a clear price before checkout.
- Official Google Places searches across a hex grid, with deduplication and honest result classification.
- Private results links with lead counts, filters, map view, and one-click CSV export.
- Pay-as-you-go scans, credit packs, and monthly plans through Stripe Checkout.
Evolution
From extension to SaaS
NoSite started as a local Chrome extension that read Google Maps results. After the Chrome Web Store rejected that data-access approach as scraping, I rebuilt the product around the official Google Places API. The current version works on any device and no longer depends on browser-extension APIs or Google Maps page structure.
Backend
Scanning & billing
- Stripe Checkout starts paid scans, with signature-verified and idempotent webhook handling.
- Supabase stores scans, results, pricing configuration, and job state.
- Atomic lease claiming, request-time drivers, status polling, and a scheduled sweep allow interrupted scan jobs to recover.
- Server-side price checks and per-scan provider-cost fuses protect the payment and scanning flow.
Reliability
Built for long-running work
The scanner splits searches into recoverable chunks, deduplicates Places results, caps provider requests, and classifies ambiguous social-only listings for verification. Automated tests cover pricing, webhook signatures, authorization, CSV export, deduplication, and the scan state machine.
Tech used
Stack
Next.js 15, React 19, TypeScript, and Tailwind CSS on Cloudflare Workers through OpenNext. The application uses Google Places API (New) and Geocoding API for listing data, Stripe for payments, and Supabase Postgres for scans, results, configuration, and durable job state.