Skip to main content

Case study

Deskon

Local Business Discovery Platform

  • Discover verified local businesses — search, compare, and enquire with confidence.
  • Shop owners publish listings, manage catalogs, and stay visible while subscribed.
  • Subscription-gated discovery with GST, MSME, and FSSAI verification workflows.
  • City-scoped operations for regional managers without national data exposure.
Visit Live Platform
Deskon business discovery and listing platform
Industry
Local Discovery
Duration
2 Months
Platform
Dual-app platform
Users
Businesses & Consumers
Stack
Next.js · NestJS · PostgreSQL · Redis

What was built and why it matters

Executive Summary

Local consumers struggle to discover verified nearby businesses with comparable services and products. Shop owners need a single portal to publish listings, manage catalogs, handle enquiries, and stay visible only while subscribed — without building separate websites or ad-hoc directories.

Deskon operates a three-sided marketplace: consumers browse, search, compare, and enquire; shop owners manage businesses, services, products, verifications, and subscriptions; platform admins and field operations staff govern catalog quality, plans, and city-scoped access.

The platform ships as three deployable applications — a Next.js customer app for public discovery and shop-owner portals, a Next.js control panel for admin and field operations, and a NestJS API — with subscription-gated listing eligibility, profile scoring, and government verification workflows.

What problem existed before this project

The Business Challenge

Unstructured business directories fail both consumers and shop owners — listings go stale, contacts get scraped, and there is no trust signal beyond paid ads.

Status quo

Before the platform

  • Consumers cannot compare local businesses with structured product and service data
  • Shop owners building one-off websites with no discovery traffic
  • Expired subscriptions still showing in public search results
  • Contact details scraped by anonymous visitors without authentication
  • No verification workflow for GST, MSME, or FSSAI credentials
  • Regional operations teams lacking city-scoped access to manage local listings

What it cost

Business consequences

  • Consumer trust erodes when unverified or inactive businesses appear in search
  • Shop owners pay for visibility that continues after subscription lapses — or stops unfairly
  • Platform reputation damaged by low-quality, incomplete listings
  • Contact scraping leads to spam calls for business owners
  • Regional managers cannot oversee their territory without seeing national data
  • Verification bottlenecks when document review is manual and synchronous

Previous workflow

How work happened before

A disconnected chain of manual steps — each handoff added delay, errors, and lost visibility.

  1. 01Step

    Unstructured directory

    Business listed in a generic directory with minimal profile data

  2. 02Step

    No subscription gate

    Inactive businesses remain visible after payment stops

  3. 03Step

    Contact exposed publicly

    Phone numbers and messaging links visible to scrapers

  4. 04Step

    Manual verification

    GST or FSSAI documents reviewed ad hoc with no workflow

  5. 05Step

    Separate shop website

    Owner maintains own site with no connection to discovery platform

  6. 06Step

    National admin access

    Regional staff see all businesses regardless of assigned city

What the client needed to achieve

Project Objectives

Engagement scope

8 objectives

  1. Build a subscription-gated local business discovery platform with search and compare

  2. Give shop owners a portal for profiles, catalogs, enquiries, and analytics

  3. Enforce listing eligibility so only active subscribers appear in public search

  4. Implement GST, MSME, and FSSAI verification workflows with admin review

  5. Protect contact details from anonymous scraping until user authentication

  6. Enable city-scoped manager and staff access for regional operations

  7. Score listing quality to surface complete, verified, and active businesses

  8. Deliver multi-channel notifications for enquiries, subscriptions, and verifications

How the platform addresses the challenge

The Solution

Deskon ships as three deployable applications sharing one backend contract: a Next.js customer app for public discovery and shop-owner portals, a Next.js control panel for admin and field operations, and a NestJS API on a high-performance HTTP adapter.

Subscription-gated listing rules and contact privacy for anonymous users are enforced server-side on every public query. A weighted profile scoring system surfaces higher-quality listings based on completeness, verification status, reviews, and recent activity.

Regional operations use city-scoped allocations — managers and staff see only businesses in their assigned cities, enabling verification approval and listing oversight without national data exposure.

Platform architecture

6 components

  1. Consumer discovery app

    Search, browse, compare products, favourites, enquiries, and reviews

  2. Shop owner portal

    Business profiles, catalogs, verifications, analytics, and subscription management

  3. Control panel

    Admin, manager, and staff operations with city-scoped access

  4. Listing eligibility engine

    Central subscription check applied to every public search and catalog query

  5. Verification pipeline

    GST, MSME, and FSSAI workflows with background processing and admin review

  6. Search cache layer

    In-memory cache for repeat filter combinations with safe invalidation

How users move through the system

Product Workflow

User journey

8 steps

  1. 01Step

    Shop owner registers

    Business profile created with media, services, and product catalog

  2. 02Step

    Subscribe to plan

    Active subscription required for public listing visibility

  3. 03Step

    Submit verification

    GST, MSME, or FSSAI documents uploaded for admin review

  4. 04Step

    Consumer discovers

    Search by query, city, geo radius, category, and rating with eligibility applied

  5. 05Step

    Compare & enquire

    Side-by-side product comparison and lead capture with authenticated contact reveal

  6. 06Step

    Owner manages leads

    Enquiry inbox, review moderation, and call-to-action analytics in owner dashboard

  7. 07Step

    Regional oversight

    City-scoped managers approve verifications and monitor listing quality

  8. 08Step

    Subscription renewal

    Listing visibility tied to active subscription; expired businesses hidden automatically

What the platform delivers

Core Features

Platform capabilities

14 features

  • Local Business Search

    Filter by query text, city, geo radius, category, and rating with subscription eligibility on every result.

  • Product Comparison

    Side-by-side property matrices let consumers compare products before submitting an enquiry.

  • Subscription-Gated Visibility

    Central eligibility rule ensures only active subscribers appear in consumer search and catalog.

  • Rich Business Profiles

    Media, services, products, brands, and hierarchical categories with owner-managed content.

  • Profile Scoring

    Weighted scoring across completeness, verification, reviews, and activity to surface quality listings.

  • Government Verification

    GST, MSME, and FSSAI verification workflow with admin review and background processing.

  • Contact Privacy

    Phone numbers, messaging links, and coordinates withheld from anonymous users until authentication.

  • Enquiry Management

    Lead capture for consumers with owner-facing enquiry inbox and status tracking.

  • Review Moderation

    Consumer reviews with moderation workflow and impact on profile scoring.

  • City-Scoped Operations

    Managers and staff see only businesses in assigned cities for regional oversight.

  • Analytics & CTA Tracking

    View and search events with session throttling; call-to-action click analytics for owners.

  • Multi-Channel Notifications

    Email, SMS, and Firebase push for verification, subscription, and enquiry events.

  • Control Panel

    Dedicated admin console for plans, subscriptions, roles, permissions, and platform analytics.

  • Cloud Media Storage

    High-throughput photo and video uploads offloaded to cloud object storage with optional CDN delivery.

Dashboard, workflows, and portals

Product Screenshots

Product UI

3 screenshots

How the system is structured

Technical Architecture

Three deployable applications share one backend contract on NestJS with Fastify, TypeORM on PostgreSQL, and Redis for search caching and background job queues. External integrations include object storage for photos and videos, transactional email, Firebase push, and SMS delivery.

Identical filter combinations are served from an in-memory cache with versioned namespaces for safe invalidation when listing rules change. Role-based admin controls and encrypted credential storage protect sensitive operations.

System layers

5 layers

  1. Customer discovery frontend

    Next.js app for public search and shop-owner portal

  2. Control panel frontend

    Separate Next.js app for admin and field operations

  3. NestJS API

    Versioned REST with validation, role guards, and eligibility injection

  4. PostgreSQL + TypeORM

    Relational business data with selective relation loading

  5. Redis cache & queues

    Search cache and background workers for email and verification

Infrastructure components

10 services

  • Next.js customer app with Tailwind CSS and Radix UI

  • Next.js control panel for admin and regional operations

  • NestJS API on Fastify with Swagger documentation

  • TypeORM on PostgreSQL with subscription eligibility queries

  • Redis in-memory search cache with versioned namespace invalidation

  • Background job queues for email and verification processing

  • Cloud object storage for business photos and video uploads

  • Firebase push notifications for owner and admin alerts

  • SMS delivery for key notification events

  • Role-based access with city-scoped manager and staff allocations

Hard problems and how they were solved

Engineering Challenges

Challenge 1

Listings visible after subscription lapses

Solution

Central subscription eligibility checks injected into all public search and catalog queries.

Challenge 2

Contact scraping by anonymous users

Solution

Server-side contact masking on public API responses until the user authenticates.

Challenge 3

Heavy search load on the database

Solution

In-memory cache keyed by filter parameters with versioned namespaces for safe rule updates.

Challenge 4

Multi-city ops without data leaks

Solution

City-scoped allocations so managers and staff only see businesses in their assigned regions.

Challenge 5

Large photo and video uploads

Solution

High-throughput multipart handling with cloud object storage offloading media from app servers.

Challenge 6

Verification processing latency

Solution

Background job queues and scheduled renewal checks for GST, MSME, and FSSAI workflows.

Production technologies

Technology Stack

Frontend

  • Next.js
  • React.js
  • TypeScript
  • Tailwind CSS
  • Radix UI

Backend

  • NestJS
  • Fastify
  • TypeORM
  • Swagger

Data & messaging

  • PostgreSQL
  • Redis

Infrastructure

  • Docker
  • Nginx
  • DigitalOcean
  • Firebase

Built for production load

Performance & Scalability

Production readiness

8 optimizations

  • In-memory search cache avoids repeated heavy database joins for identical filters

  • Cache namespace versioning enables safe invalidation when listing rules change

  • Pagination on admin lists, search results, and enquiries

  • Analytics view throttling reduces duplicate tracking events per session

  • Background workers scale email and verification jobs independently of the API

  • Stateless API supports horizontal scaling behind a reverse proxy

  • Selective relation loading keeps detail pages efficient

  • Automated TLS certificates and scheduled database backups in production

Operational and commercial outcomes

Business Impact

Deskon created a trusted local discovery platform — where consumers find verified businesses, shop owners control their visibility through subscriptions, and regional teams operate without national data exposure.

Outcomes delivered

8 outcomes

  • Subscription-gated listings ensuring only paying businesses appear in search

  • Government verification building consumer trust in local business profiles

  • Contact privacy preventing anonymous scraping of owner phone numbers

  • Product comparison helping consumers decide before enquiring

  • Profile scoring incentivizing complete, verified, and active listings

  • City-scoped operations enabling regional managers to oversee local quality

  • Shop owner analytics showing views, searches, and call-to-action performance

  • Scalable discovery platform live at deskon.in with ongoing iteration

Technology choices explained

Why This Architecture Works

Design rationale

6 decisions

  • Why this choice

    Central subscription eligibility injection

    Listing visibility must be enforced server-side on every public query — client-side filtering is bypassable and inconsistent.

  • Why this choice

    In-memory search cache with versioned namespaces

    Identical filter combinations hit the database repeatedly; cache invalidation must be safe when eligibility rules change.

  • Why this choice

    City-scoped role allocations

    Regional operations teams need oversight authority without access to businesses outside their territory.

  • Why this choice

    Contact masking for anonymous users

    Discovery platforms attract scrapers — protecting contact details until authentication preserves owner trust.

  • Why this choice

    Background verification queues

    Document review and renewal checks cannot block API responses or shop owner onboarding flows.

  • Why this choice

    Dual Next.js apps

    Consumer discovery and admin/field operations have different UX needs, release cadences, and access patterns.

What this project reinforced

Lessons Learned

Key takeaways

5 lessons

  • Subscription gating must be a single reusable eligibility rule — not duplicated checks that drift across endpoints.

  • Profile scoring drives listing quality more effectively than manual curation at scale.

  • Contact privacy is a platform trust feature, not a premium upsell — anonymous scraping erodes owner participation.

  • City-scoped access is essential when regional managers need verification authority without national data exposure.

  • Background verification processing keeps onboarding fast while admin review catches up asynchronously.

Explore related work

Similar Projects & Services

Common questions about the Deskon project

Case Study FAQ

About the author

Kennedy Chokkalingam — available for development partnerships

Next step

Looking to Build Something Similar?

Whether you're building a multi-tenant SaaS, marketplace, CRM, ERP, or AI platform — let's discuss your project and how a dedicated development partnership can deliver it.