Lead Generator Case Study

Lead Generator Case Study
SaaS Lead Generation Platform

Lead Generator Case Study

Lead Generator · May 2026 · React.js NestJS MySQL Prisma +2 more

Executive Summary

Lead Generator is a full-stack SaaS web application built by RyxaDev to help businesses find verified B2B leads from Google Maps in minutes. Instead of manually searching, copying, and organizing business data, users can enter a business type and location, scrape verified results, and export ready-to-use lead lists for outreach campaigns.

The Problem

Small businesses, agencies, sales teams, and freelancers often spend hours manually collecting local business leads from Google Maps. The process is slow, repetitive, and inconsistent. A user may search for “dentists in London” or “restaurants in Dubai,” then manually copy business names, phone numbers, websites, addresses, ratings, and map links into a spreadsheet.

This creates three major problems:

  1. Manual research wastes time
  2. Lead data becomes messy and inconsistent
  3. Small businesses lack affordable tools for fast lead generation

Many existing lead tools are expensive, overcomplicated, or locked behind large monthly subscriptions. RyxaDev built Lead Generator to make business data collection faster, cleaner, and accessible through flexible pricing.

The Solution

Lead Generator is a SaaS platform that lets users search for any business category in any city or location worldwide. The system automatically collects business information from Google Maps and returns a structured lead list containing:

  • Business name
  • Category
  • Full address
  • Phone number
  • Website URL
  • Star rating
  • Review count
  • Direct Google Maps link

Users can export the results to CSV in one click and use them directly in CRM systems, cold outreach campaigns, or sales pipelines.

The product combines a user-friendly React frontend, a secure NestJS backend, subscription billing through Stripe, and a Playwright-powered scraping engine designed for reliable lead extraction.

Technical Architecture

The application was built as a modern full-stack SaaS system with a clean separation between frontend, backend, database, scraping, billing, and admin operations.

Backend

The backend uses NestJS with TypeScript, chosen for its scalable architecture, dependency injection, modular structure, and strong support for enterprise-level application patterns. Authentication, billing, user management, subscription logic, scraping control, and admin features are handled through structured NestJS modules.

Database

MySQL with Prisma ORM powers the database layer. Prisma provides type-safe database access, clean schema management, and predictable query handling across users, plans, subscriptions, usage records, OAuth settings, and payment approvals.

Scraping Engine

The scraping system uses Playwright with a headless Chromium browser. It follows a two-phase process: first collecting Google Maps result URLs, then opening each listing to extract detailed business data. This design improves reliability and makes the extraction process easier to control, debug, and scale.

Frontend

The frontend is built with React.js, Tailwind CSS v3, Lucide React, and React Router DOM v6. The interface includes a polished marketing landing page, authentication pages, dashboard, scraping workflow, subscription pages, profile settings, and admin panel.

Billing

Stripe recurring subscriptions handle monthly and yearly billing. Webhooks automatically extend subscriptions, expire failed plans, reset monthly usage, and support cancellation at period end.

Key Features

1. Secure Authentication System

Lead Generator includes email/password registration, six-digit email verification, JWT-based authentication, Google OAuth, Facebook OAuth, forgot password, secure reset links, and password change functionality.

Social login providers can be enabled or disabled dynamically by the super admin without changing code. This gives the platform flexibility for different deployment or compliance needs.

2. Advanced Subscription & Billing System

The platform supports five subscription tiers:

  • Free Trial — 50 leads for 7 days
  • Starter — $9.99/month for 500 leads
  • Professional — $29.99/month for 2,000 leads
  • Enterprise — $99.99/month for unlimited leads
  • Pay Per Lead — $0.001/lead with no monthly commitment

Stripe handles recurring payments, customer management, renewals, failed payments, and cancellation workflows. A manual bank transfer option was also built with an admin approval process.

3. Playwright-Powered Lead Scraping

The scraping engine collects verified business data from Google Maps using scroll-based traversal, realistic browser behavior, custom user-agent handling, and human-like delays.

Before every scrape, the system checks the user’s subscription quota. If the requested number of leads exceeds the remaining quota, the scrape is capped automatically.

4. Role-Based Admin Panel

The admin panel gives platform operators full control over users, plans, subscriptions, payments, and OAuth settings.

Admins can manage users, assign plans, reset usage, approve or reject bank transfer payments, toggle plan availability, and control social login credentials.

The system supports role-based access for:

  • USER
  • ADMIN
  • SUPER_ADMIN

5. Professional Landing Page & SEO

The product includes a conversion-focused landing page with SEO meta tags, Open Graph tags, Twitter cards, hero section, features, how-it-works section, pricing preview, CTA, and RyxaDev branding throughout.

Challenges & Solutions

Challenge 1: Google Maps Anti-Bot Handling

Google Maps scraping can be unreliable if browser behavior looks automated. RyxaDev solved this with a two-phase scraping model, realistic user-agent headers, controlled scrolling, and human-like delays.

This made the extraction flow more stable while reducing failed scraping attempts.

Challenge 2: Dynamic OAuth Management

Hardcoding Google and Facebook OAuth credentials would make the system difficult to manage. Instead, RyxaDev built database-driven OAuth settings controlled by the super admin.

This allows social login providers to be turned on or off at runtime without deployment changes.

Challenge 3: Subscription Quota Enforcement

Lead limits had to be accurate across free trials, monthly plans, yearly plans, enterprise access, and pay-per-lead billing.

The system checks subscription validity and remaining quota before scraping, updates usage after scraping, expires invalid subscriptions automatically, and resets monthly usage through Stripe renewal webhooks.

Challenge 4: Payment Lifecycle Management

Recurring SaaS billing requires more than just checkout. RyxaDev implemented Stripe customer creation, subscription tracking, renewal handling, failed payment expiration, period-end cancellation, and manual payment approval workflows.

This created a complete billing lifecycle suitable for a real SaaS product.

Results & Outcomes

Lead Generator turns manual lead research into an automated workflow. A user can search for a business type and location, scrape verified business data, export a CSV, and start outreach almost immediately.

The platform delivers clear business value:

  • Faster lead generation
  • Lower manual workload
  • Affordable pricing for small businesses
  • Flexible subscription and pay-per-lead options
  • Admin-controlled platform management
  • Scalable SaaS architecture ready for real users

For RyxaDev, the project demonstrates strong capability in SaaS engineering, scraping automation, secure authentication, subscription billing, admin dashboards, and production-ready full-stack development.

Tech Stack Summary

  • Backend: NestJS, Node.js, TypeScript
  • Database: MySQL, Prisma ORM
  • Scraping: Playwright, Chromium Headless Browser
  • Authentication: JWT, Passport.js, Google OAuth, Facebook OAuth
  • Payments: Stripe recurring subscriptions, webhooks
  • Email: Nodemailer, SMTP, custom HTML templates
  • Frontend: React.js
  • Styling: Tailwind CSS v3
  • Icons: Lucide React
  • Routing: React Router DOM v6
Share This Case Study
Project Overview
  • Client Lead Generator
  • Category SaaS Lead Generation Platform
  • Published May 2026
  • Built By RyxaDev
Tech Stack
React.js NestJS MySQL Prisma Playwright Stripe
Have a Similar Project?

Tell us your idea — we'll build it for you.

Get In Touch