Back to Reports Hub
Audit date: 2026-04-19

Product #03 / 12

MatchNest Audit Report

Page-by-page audit of MatchNest — a matrimonial / matchmaking SaaS platform on Next.js 16. Largest surface area of any SaaS audited (90+ routes, 100+ API endpoints). One critical bug was fixed; one upstream-class bug remains.

90+
Total Routes
3
Bugs Found
1
Fixed In Place
2
Open

Executive Summary

MatchNest is the most ambitious of the 12 SaaS — 90+ routes (marketing, dashboard, admin, docs, API) covering smart matchmaking, verified profiles, messaging, interests/shortlist, gallery, KYC, packages/billing, admin moderation. The marketing-layer design is polished (Indian matrimonial aesthetic with pink/red gradients), Prisma schema is extensive, and a full public /docs/* tree is already written.

Critical bug found & fixed during audit: The landing page at / was serving the default Next.js create-next-app boilerplate (“To get started, edit the page.tsx file”) instead of the real marketing landing. Root cause: both src/app/page.tsx (stub) and src/app/(marketing)/page.tsx (real) resolve to /, and the stub was winning. Deleted the stub and rebuilt. Origin now serves the real MatchNest landing.

Verdict: Marketing surface is production-ready after the root-page fix. Auth pages render correctly but login submits silently fail under the basePath (same class as FundHive BUG-001). Subdomain deployment recommended to avoid the issue entirely.

Stack

ComponentValue
FrameworkNext.js 16 (App Router, basePath via env)
DatabasePrisma 7 + SQLite (dev.db)
AuthCustom JWT via /api/auth/login (NOT NextAuth — good)
UITailwind + shadcn/ui + framer-motion, jose JWT for token verify
RuntimePM2 matchnest on port 3016
Public URLcodemytown.com/matchnest/ (add ?v=1 to bypass Cloudflare cache for now)

Seed Credentials

RoleEmailPassword
Admin[email protected]admin123
Demo user[email protected] (and others: priya, vikas, sneha, etc.)demo1234

Route Map

AreaCount
Marketing group: / (fixed), /about, /features, /pricing, /stories, /contact6
Auth: /login, /register, /forgot-password, /verify-email4
User dashboard: /dashboard, /billing, /gallery, /interests, /members, /members/[id], /messages, /profile, /settings, /support10
Admin: /admin, /admin/dashboard, /admin/users + [id], /admin/deposits, /admin/packages, /admin/payments, /admin/content, /admin/notifications, /admin/reports, /admin/settings, /admin/support + [id]11
Docs: /docs, /docs/api/* (5 files), /docs/features/* (7 files), installation, configuration, deployment, customization, faq, changelog18
API routes40+

Bugs

BUG-001BLOCKER FIXED

Landing page at / served the default Next.js scaffold instead of the real marketing landing

Symptom
Browsing to /matchnest/ rendered “To get started, edit the page.tsx file” — the literal create-next-app template — with the MatchNest page title in the tab. Complete brand failure for first impression.
Root cause
Two files both resolved to /:
  • src/app/page.tsx — leftover create-next-app boilerplate
  • src/app/(marketing)/page.tsx — the real marketing landing (fully built with hero, features, pricing preview, testimonials, CTA)
In Next.js App Router, when a root page.tsx exists alongside a route-group (marketing)/page.tsx, the root wins.
Fix applied
Deleted src/app/page.tsx, cleared .next, rebuilt, restarted PM2. Origin now serves the real landing (screenshot above).
Note
Cloudflare edge is still caching the old stub for a few minutes. Append ?v=1 to bypass. Will clear automatically on next CF cache purge.
BUG-002BLOCKEROPEN

Login submit redirects to /login without basePath → 404 on parent domain

Symptom
Fill [email protected]/admin123, click Sign In. Browser navigates to codemytown.com/login (without /matchnest prefix) → 404. Same for /matchnest/dashboard and /matchnest/admin/dashboard — middleware redirect drops the basePath.
Root cause
Middleware or login route handler constructs the redirect URL with a hard-coded /login path, not the basePath-aware /matchnest/login. Same class of bug as FundHive — auth libraries that don’t respect Next.js basePath by default.
Fix plan
Path A: Add /matchnest prefix to every redirect URL inside the custom JWT middleware and login API handler. Roughly 5 string replacements. Testable.
Path B: Deploy on subdomain matchnest.codemytown.com → no basePath needed → bug disappears.
BUG-003MINOROPEN

Title template duplicates “| MatchNest” when child pages set own title

Example
Landing title reads “MatchNest - Find Your Perfect Life Partner | MatchNest” — the template suffix is added to a title that already contains the brand.
Fix
In src/app/layout.tsx, change template: "%s | MatchNest" to omit for pages that already brand themselves, or strip brand from child metadata.

Public Pages Audited

Landing
/ — Landing (AFTER FIX). Hero “Find Your Perfect Life Partner” + stats (10K+, 5K+, 98%, 50+) + Explore-by-Religion tabs + feature grid (Smart Matching, Verified Profiles, Secure Messaging, Anonymous Contact, Privacy Control, Mobile Ready) + 4-step journey + 4-tier pricing + love stories + testimonials + gradient CTA. Good brand polish.
Features
/features — 12 feature cards (Smart Matchmaking, Profile Verification, Secure Messaging, Interests & Shortlist, Real-time Notifications, Photo Gallery, Profile Boost, Detailed Profiles, Multi-language & Culture, Privacy Controls, Premium Plans, Profile Analytics) + 4-step how-it-works.
Pricing
/pricing — 4 tiers (Free / Silver $29.99 / Gold $59.99 / Platinum $99.99) with interests, messages, gallery, contact view quotas. Comparison table + 5-Q FAQ. Complete.
Stories
/stories — 6 love-story cards (Arjun & Priya, Rahul & Sneha, Vikram & Anjali, Suresh & Kavitha, Mohammad & Fatima, Karan & Simran) with 5-star ratings. 4 stat cards at top (12K+ matches, 50K+ members, 25+ countries, 4.9/5 rating).
Login
/login — Pink-gradient brand panel + clean form + demo hint: [email protected]/admin123 | [email protected]/demo1234. Login submit fails (BUG-002).
Dashboard redirect
/dashboard — Middleware redirects to /login (without basePath) → served by the codemytown parent domain → hits the new branded 404 page.

Production-Readiness Checklist

AreaStatusNotes
Marketing landing & public pagesAfter BUG-001 fix, all 6 marketing pages render with real content.
Hero stats hard-coded⚠️Stats are 10K+/5K+/50+ — should pull from DB after launch.
Docs surface (/docs/*)18 doc pages already built including API reference.
Auth (login/register/verify)BUG-002 basePath issue.
User dashboard + adminBlocked by BUG-002 — full source exists, 20+ routes.
Prisma schema + seedExtensive schema including User, Profile, Interest, Message, Package, Payment, Support, KYC.
Cloudflare cache⚠️Currently serving stale old-landing HTML. Purge CF cache for /matchnest/* or wait TTL.

Recommendation

Do two things before shipping:
1. Purge Cloudflare cache for /matchnest/* (or wait for TTL) so the fixed landing is visible to real users.
2. Either fix the login/middleware redirects to include /matchnest basePath, OR promote to the subdomain matchnest.codemytown.com. The latter is 15 minutes and neutralizes the class of bug permanently.

Once auth is unblocked, MatchNest is the deepest feature set of any audited SaaS — will be very attractive on CodeCanyon for the Indian matrimonial niche.

MatchNest audit · 2026-04-19 · 7 screenshots · 3 bugs · 1 fixed · 2 open