Back

Case study

SaaS Advisory Hub

B2B SaaS Discovery Marketplace

saasadvisoryhub.com

Visit live site

Product preview

Screenshots

Overview

Architected SaaS Advisory Hub — a B2B marketplace with NestJS and Prisma on PostgreSQL, Meilisearch discovery, dual Next.js apps, a vendor moderation pipeline, rich software and service catalogs, G2-style reviews, compare UX, cloud media uploads, Google OAuth, and Docker deployment on a shared platform edge at saasadvisoryhub.com.

Problem & goal

The Challenge

Buyers struggle to evaluate SaaS tools and service agencies from scattered vendor sites. Vendors need a structured marketplace to publish rich listings, collect reviews, and drive affiliate traffic — with editorial control so low-quality or unverified content does not pollute discovery.

SaaS Advisory Hub operates a three-sided content marketplace: buyers discover and compare software and services, vendors manage businesses and listings through a dedicated portal, and platform admins approve listings, reviews, vendors, and editorial blog content.

Target users

Who It's For

  • Buyers — browse categories, search, compare software and services, and submit structured reviews

  • Vendors — register, get approved, and manage business profiles plus software and service listings

  • Platform admins — moderation queue, category management, blog CMS, and user and vendor administration

Core capabilities

Platform Modules

Auth

Email and password login, Google OAuth with account-type routing, email verification, and secure session management.

Software catalog

Rich product pages with pricing plans, mobile apps, FAQs, competitors, integrations, and affiliate links.

Service marketplace

Agency profiles with industry focus, hourly rates, certifications, and capability matrices.

Discovery & search

Meilisearch-powered global search combined with PostgreSQL filters for category and facet browsing.

Compare

Side-by-side software and service comparison with shareable links for buyer research.

Reviews

G2-style structured reviews with multi-dimensional ratings, pros and cons, and admin approval.

Vendor portal

Dashboard, business CRUD, and multi-section listing wizards for software and services.

Admin console

Dashboard KPIs, moderation workflows, blog management, and user and vendor administration.

Blog

Sectioned posts with tags, SEO metadata, analytics, and search index sync on publish.

Media uploads

Authenticated cloud storage uploads with ownership validation before listing creation.

High-level design

System Architecture

The platform ships as three deployable applications: a Next.js public app for discovery, compare, blog, and vendor portal routes; a Next.js admin console on a separate subdomain; and a NestJS API handling versioned REST endpoints. PostgreSQL is the authoritative data store with Prisma. Meilisearch indexes denormalized documents for software, services, categories, and blogs synced on create, update, and publish. Customer and admin frontends proxy API requests same-origin in production.

External integrations include DigitalOcean Spaces for media, Resend for transactional email, and Google OAuth. Listings, reviews, and vendors default to a pending state until admin approval — public queries filter approved and active content only. Secure authentication with role-based access, authenticated media uploads with ownership validation, and throttled auth endpoints protect platform integrity.

Production stack

Technology Stack

Frontend

  • Next.js
  • React.js
  • TypeScript
  • Tailwind CSS
  • Framer Motion

Backend

  • NestJS
  • Express
  • Prisma
  • Swagger

Data & search

  • PostgreSQL
  • Meilisearch
  • Resend

Infrastructure

  • Docker
  • Shared platform edge TLS
  • DigitalOcean Spaces

Dual-store pattern

Search & Discovery

Meilisearch indexes

Dedicated indexes for software, services, categories, blogs, users, and roles with filterable attributes configured at bootstrap.

Sync on write

Create and update operations flatten relational data into denormalized search documents with error logging on sync failure.

Global search

Parallel Meilisearch queries merge software, category, and service hits with PostgreSQL counts for unified results.

Virtual categories

Service industry types surface as virtual category entries when not yet mapped to the software taxonomy.

Editorial control

Catalog & Moderation

Software listings

Rich payloads covering deployment type, feature flags, pricing plans, competitors, webinars, resources, and affiliate links.

Service listings

Agency metadata with company type, industry, locations, project sizing, and nested capability focus matrices.

Moderation workflow

Vendor submissions enter pending state; admin approve or reject with reason before public catalog visibility.

Re-moderation

Non-rejected vendor edits reset listings to pending for admin review before changes go live.

Buyer research

Reviews & Compare

Structured reviews

Organization, job title, usage duration, multi-dimensional ratings, pros and cons, and likelihood to recommend.

Approval pipeline

Reviews default to pending; approved reviews recompute average rating and total count on parent listings.

Side-by-side compare

Compare context syncs with URL parameters for software and service entities with shareable compare links.

Detail enrichment

Compare views fetch listing detail and approved reviews per item through shared listing components.

Listing management

Vendor Portal & Content

Vendor dashboard

Stats on listings by status, ratings, and activity trends with role-gated portal access after admin approval.

Business profiles

Business CRUD with proof upload; services require an approved parent business before creation.

Listing wizards

Multi-section create and edit forms for software and service listings with URL-based media references.

Blog CMS

Admin sectioned posts with tags, SEO meta, featured images, and Meilisearch sync when published.

Marketplace economics

Monetization & Editorial

Affiliate links

Vendors configure outbound affiliate URLs and commission on software listings with disclosure on the frontend.

Editorial badges

Featured and verified flags on catalog entities for editorial promotion of quality listings.

Paid vendor flag

Schema support for paid vendor tiers tracked in admin KPIs — in-app subscription checkout planned for a future phase.

Challenges solved

Engineering Highlights

01

Rich software payloads from complex forms

Server-side normalization of stringified JSON arrays and booleans before validation on create and update.

02

Service verticals vs software categories

Virtual categories in global search merge service industry types with the software taxonomy.

03

Untrusted vendor media

Authenticated upload with user-scoped storage keys and ownership validation on listing create.

04

Review spam and low quality

Admin approval pipeline with aggregate ratings computed only from approved reviews.

05

Re-moderation on vendor edits

Non-rejected listing edits automatically return to pending for admin review.

06

OAuth signup vs login confusion

Google OAuth with signed state carrying intent and account type for customer vs vendor flows.

07

Search index drift from database

Dual-store pattern with Meilisearch sync on every write and filter configuration on service bootstrap.

Built for production load

Performance & Scale

  • Meilisearch full-text search avoids heavy PostgreSQL pattern matching on discovery queries

  • Parallel search queries in global search endpoint for sub-second unified results

  • Denormalized index documents avoid joins at search time

  • Stateless API scales horizontally behind shared platform edge nginx

  • Cloud object storage offloads binary media traffic from API containers

  • Same-origin API proxy in frontends eliminates CORS preflight on read requests

  • Pagination utilities on list endpoints for admin and catalog browsing

Operations

Deployment

The production stack runs in Docker containers — database, Meilisearch, API, public app, and admin console — on a shared platform edge network with automated TLS at saasadvisoryhub.com. Prisma migrations run on backend startup. Health checks on core services ensure reliable uptime for the discovery marketplace.

Roadmap

What's Next

  • Lead capture API wired to software detail CTAs and vendor inbox

  • Affiliate click tracking on outbound link redirects

  • Paid vendor tier billing integration

  • Meilisearch replicas for high-availability search at scale

  • Review verification workflow with proof URL review queue

  • Buyer accounts with saved comparisons and listing follow alerts

  • AI-generated blog summaries for SEO at scale

  • Async search index queue decoupled from write path