Full-Stack Matrimonial Platform

Soulmate:
Where intentions meet forever

A production matrimonial platform — realtime chat, a complete interest → accept → connect matchmaking loop, a Razorpay-powered credit economy, and a 20-filter discovery engine, all on a single PostgreSQL backend.

Try the live demo
email male1.user@example.com · password Password123!

TECHNICAL HIGHLIGHTS

Realtime Chat

Socket.io messaging with presence and multi-device sockets

Matchmaking Loop

Interest → accept → connect → chat state machine

Credits Economy

Razorpay top-ups + daily free-search/message allowance

Per-Request Discovery

20+ filters sent per search — change a filter, get new results

Correct by Construction

Idempotent payments, guarded credit spends, atomic writes

Notifications

In-app notification centre + Firebase push (FCM)

Visual Tour

Explore the platform's features through detailed screenshots.

Curated Discovery
Discovery

Curated Discovery

20-Filter Search Panel
Discovery

20-Filter Search Panel

Rich Match Profiles
Profiles

Rich Match Profiles

Razorpay Credit Wallet
Payments

Razorpay Credit Wallet

Warm, Premium Landing
Experience

Warm, Premium Landing

Account & Privacy
Account

Account & Privacy

TECHNOLOGY STACK

frontend

  • Next.js 15

    App Router, React 19

  • TypeScript

    Type-safe end to end

  • Tailwind CSS v4

    Warm, custom design system

  • shadcn / Radix UI

    Accessible primitives

  • TanStack Query

    Server-state & caching

  • Zustand

    Client/realtime state

  • Socket.io client

    Realtime chat & presence

backend

  • NestJS 11

    Modular, guarded API

  • Drizzle ORM

    Single PostgreSQL, typed SQL

  • PostgreSQL

    One consolidated database

  • JWT Auth

    Sessions + refresh tokens

  • Socket.io Gateway

    Chat on the main server

  • Razorpay

    Payments & webhooks

  • Cloudinary / Redis

    Media + Upstash cache

devops

  • Render

    Backend hosting

  • Vercel

    Frontend hosting

  • Firebase FCM

    Push notifications

  • drizzle-kit push

    Schema reconciled on deploy