FPMS – Freelancer Project Management SaaS
Multi-tenant SaaS with Stripe Connect and tenant-isolated workspaces.
Freelancers and clients were juggling chat, file storage, milestone tracking, and invoicing across four tools — payment state never matched project state.
A multi-tenant SaaS where each freelancer-client pair runs in its own scoped workspace. Stripe Connect carries marketplace payments end-to-end, and the database is the source of truth for what was paid for what.
The schema was the hardest part. The first cut over-normalized tenant data and made the orders index slow. A redesign on the orders / milestones / invoices boundary cut p95 read time on the dashboard significantly. Webhooks landed last: every Stripe event flows through an idempotency log keyed on event id, so retries do not double-charge or double-fulfill.
FPMS is a project management SaaS for freelancers and their clients. Each engagement runs in an isolated workspace — file storage, milestone tracking, messaging, and payments scoped to that tenant.
The interesting work was not the screens. It was the contract between Stripe and the database.
Key decisions: • Multi-tenant from day one. Every read is tenant-scoped at the query layer; admin tools cannot cross tenants without an explicit override. • Stripe Connect for marketplace-style payouts. Connected accounts, application fees, and per-engagement payout flows. • AWS S3 for file storage with signed URLs and tenant-prefixed keys. • Webhook handling with signature verification, idempotency keys on event id, and a reconciliation job that audits pending orders against Stripe state once an hour. • Schema work to make the orders index fast — the original join shape made the dashboard slow under realistic record counts; the redesign moved the heavy work to a denormalized read path with explicit refresh triggers.
The result is not "fast" or "scalable" in the abstract. It is: the dashboard answers in well under a second on real data, payments stay in sync with project state, and webhook retries do not corrupt anything.
Other products built end-to-end.
Headless B2C Ecommerce Platform
Built end-to-end as sole backend and platform developer on MedusaJS v2. Storefront APIs, admin workflows, Razorpay payment integration, notification delivery (Novu, FCM, ZeptoMail, Twilio SMS), Jio DLT compliance, Redis caching, and AWS S3 asset storage — all live in production.
Multi-Vendor B2B Marketplace
Built on MercurJS and MedusaJS v2 with custom module development throughout. Configurable pricing engine with vendor-specific rules, order splitting with vendor assignment, finance and invoicing layer, and bulk order import pipeline — in active development.