← SELECTED WORK SYSTEM / CASE STUDY ONLINE
CASE STUDY / Production CRM / SaaS

LeadKavach

A production CRM platform for insurance-advisor workflows spanning contacts, leads, follow-ups, multilingual messaging, landing pages, notifications, analytics, and role-aware operations.

ENGINEERING SIGNAL / 01

Designing a role-aware insurance CRM that moves from contact to conversation to follow-up.

~/portfolio/leadkavach/architecture LIVE SYSTEM MAP
01Client surfacesReact / Vite
02Application APINode.js / Express
03Relational dataMySQL / mysql2
04Async product signalsFirebase Admin / Scheduled jobs
05Public deliveryVite build / prerender scripts
REQUESTLOGICSTATEDELIVERY
STACK /React 19ViteExpress 5MySQLJWTFirebaseCapacitorTailwind CSSRazorpay
01 / Product Context

Why this system exists.

LeadKavach is a production CRM/SaaS product built around the day-to-day workflow of insurance advisors. It combines a public marketing surface with authenticated advisor, admin, and staff experiences, while also supporting a mobile Android shell through Capacitor.

Insurance-advisor workflows are fragmented across contact lists, WhatsApp conversations, follow-up reminders, landing pages, templates, notifications, and administrative operations. The engineering challenge was to turn those separate actions into one system without exposing advisor data across roles or making the workflow feel heavier than the work it was replacing.

02 / Engineering Role

End-to-end ownership.

I worked across the product end to end: frontend flows, Express APIs, MySQL-backed data operations, role-aware authorization, notification workflows, public-route prerendering, mobile packaging, and production-oriented debugging. The project evolved through repeated product iterations rather than as a one-screen demo.

03 / Architecture

The product as connected layers.

01

Client surfaces

A React/Vite application serves public marketing pages plus authenticated advisor, admin, and staff routes. Capacitor packages the same product experience for Android.

React · Vite · React Router · Capacitor
02

Application API

Express exposes the product API, with middleware for authentication and role-sensitive operations. Controllers and services separate product workflows from routing concerns.

Node.js · Express · JWT · Helmet · Rate limiting
03

Relational data

CRM records, leads, workflow state, subscriptions, and operational data are persisted through MySQL-backed application logic.

MySQL · mysql2 · SQL migrations
04

Async product signals

Background jobs and Firebase-based notification services handle reminders, daily briefs, trial lifecycle events, and native notification actions.

Firebase Admin · Scheduled jobs · Push notifications
05

Public delivery

Public routes are prerendered at build time to improve discoverability while the authenticated CRM remains a client application.

Vite build · prerender scripts · React Helmet
04 / Core Workflows

Where product logic becomes behavior.

01

Contact → WhatsApp → Lead

  1. Advisor works from a contact record
  2. Opening WhatsApp starts a share attempt
  3. The advisor confirms the message was sent
  4. A lead is created only after that confirmation
  5. Follow-up state then becomes part of the CRM workflow
02

Follow-up and daily work

  1. Lead/contact state stores the next action
  2. Scheduled jobs evaluate due and overdue work
  3. Advisor-facing daily views surface what needs attention
  4. Notification preferences control how reminders are delivered
03

Role-aware operations

  1. Public users access marketing and signup surfaces
  2. Advisors manage their own CRM data
  3. Staff operate assigned support/sales workflows
  4. Admin manages platform-level configuration and operational surfaces
04

Multilingual landing-page workflow

  1. Admin maintains language-specific plan content
  2. Advisor generates a plan page with advisor placeholders
  3. The generated public link is attached to outbound messaging
  4. Each language can evolve independently instead of being forced through one translation path
05 / Engineering Decisions

Not just what was built — why.

DECISION / 01

Make lead creation intentional

Opening WhatsApp is not treated as proof that a message was sent. The workflow separates the share attempt from the advisor's confirmation, avoiding false lead records caused by a user abandoning WhatsApp.

DECISION / 02

Keep advisor data ownership isolated

The product uses role-aware routes and authorization boundaries so platform administration does not imply unrestricted access to every advisor's CRM data.

DECISION / 03

Reuse the web product on Android

Capacitor was used to package the existing web application instead of maintaining a separate native product, while still enabling push notifications, splash behavior, and app lifecycle handling.

DECISION / 04

Prerender only what benefits from it

Public discoverable routes are handled differently from the private CRM. This keeps SEO concerns focused on pages search engines should actually index.

06 / Challenges

Complexity designed around.

CHALLENGE / 01

Many roles without one giant permission mess

Advisor, staff, and admin experiences were separated into explicit product surfaces and middleware-backed access patterns rather than relying only on hidden navigation links.

CHALLENGE / 02

Notifications that match real workflow state

Reminder jobs, daily briefs, notification preferences, and native action handling had to agree on due dates and user intent rather than simply sending generic scheduled messages.

CHALLENGE / 03

Public content and private application in one product

The project combines SEO-friendly public routes with a private SPA-style CRM, requiring different rendering and analytics considerations across the same codebase.

CHALLENGE / 04

Product growth without rewriting the foundation

The codebase expanded from core advisor CRM flows into staff tooling, support tickets, subscriptions, mobile delivery, guided trials, and assistant workflows while preserving the existing product path.

07 / Outcome

What the system supports now.

  • A single advisor workflow covering contacts, leads, follow-ups, messaging, notifications, templates, and plan-page sharing.
  • Separate advisor, staff, and admin product surfaces backed by role-aware server behavior.
  • A web product that also ships as an Android application through Capacitor.
  • A public marketing and landing-page layer that can be prerendered independently from the authenticated CRM.
  • An architecture that supports scheduled jobs, push notifications, payment/subscription flows, uploads, and spreadsheet-based operations as the product expands.

The production repository is private. Architecture and workflow descriptions are based on the implemented application structure and code paths; no private customer data or secrets are exposed here.

← BACK TO SELECTED WORK