Skip to content
All work

Flagship · Evoc Labs

A multi-tenant commerce platform: brands launch a storefront on their own domain, then run orders, shipping, payments, ads and AI assistants from one dashboard.

Role
Co-founder / CTO. Engineering lead from the first commit
Year
2026
Status
In production
Links
Platform monorepo (private) Storefront evoclabs.com
APIMerchantAdminStorefrontAI layerIntegrations

Architecture

One Express API and one PostgreSQL schema serve three Next.js apps, a merchant dashboard, an admin console and a storefront that resolves the tenant from the request's hostname.

deployable apps
4deployable apps
Prisma data models
66Prisma data models
contributors
22contributors
commits, ~280 mine
820+commits, ~280 mine

01

The problem

Small D2C brands in India stitch together a store builder, a courier aggregator, a payment gateway, an ads manager and WhatsApp tools, then reconcile data across all of them by hand. Orbit puts those workflows on one platform with one data model, so a merchant can go from sign-up to a live branded storefront and run daily operations in one place.

02

My leadership

  • Started the repository in January 2026 and set the architecture: one API, one relational schema, separate apps per audience.
  • Wrote the team's coding guidelines and review responsibilities, and merge feature branches from a team of 22 contributors after review.
  • Main contributor to the shared Prisma schema, the merchant dashboard and the admin console.
  • Made platform-level calls such as moving AI features to a single provider-agnostic client (Gemini → Mistral → Groq) and automating custom-domain provisioning.

03

Key features

  • 01Multi-tenant storefronts on Orbit subdomains or a merchant's own domain, with domains provisioned automatically through the Cloudflare API
  • 02Visual website editor with section-based layouts, theming and an AI store builder that drafts sections from a brief
  • 03Catalog with variants and variant images, bundles, coupons, reviews, blogs and legal pages
  • 04Order operations: returns and RTO analytics, COD remittance tracking and Shiprocket / iThink logistics
  • 05PayU and cash-on-delivery checkout behind a pluggable payment-provider interface, with a merchant wallet for usage-based charges
  • 06Meta and Google Ads: OAuth connection, campaign management and cached insights, with sync jobs on BullMQ
  • 07Abandoned-cart recovery and order updates over WhatsApp
  • 08Seller AI (analytics over the merchant's own data, also exposed over MCP) and Customer AI (a shopping assistant on the storefront)
  • 09Separate admin console for brand onboarding, support tickets, credentials and platform analytics

04

Four surfaces, one platform

  • Brands

    Merchant dashboard

    Catalog, orders, logistics, marketing, website editor, wallet and Seller AI.

    Next.js 16 · React 19 · shadcn/ui

  • Evoc Labs team

    Admin console

    Brand onboarding, support tickets, merchant credentials and platform analytics.

    Next.js 16 · Prisma

  • Shoppers

    Storefront

    One deployment serving every brand, themed per tenant, with PayU checkout and Customer AI.

    Next.js 16 · Prisma 7

  • All three apps

    API & workers

    Express 5 API, BullMQ workers and WebSocket notifications on PostgreSQL and Redis.

    Express 5 · PostgreSQL · Redis

05

Architecture highlights

  • Tenant isolation by store: every storefront request resolves a store from its subdomain or custom domain, and CORS allows verified custom domains dynamically.
  • 66 Prisma models cover stores, catalog, orders, logistics, payments, wallets, ads caches, AI sessions and support. Migrations are applied in CI on every deploy.
  • Slow third-party work (ad insights sync, order pushes) runs on BullMQ workers backed by Redis, not inside request handlers.
  • AI features share one provider-agnostic LLM client (Groq or Mistral via an env flag). Assistant tools are read-only, store-scoped and validated, so the model can only see the authenticated merchant's data.

06

The storefront: one codebase, every brand

The storefront is a static shell that renders whichever brand owns the incoming hostname. It resolves the subdomain, fetches that store's catalog, theme, navigation, announcements and legal pages from the public storefront API, and renders them. A new brand needs no new deployment.

  • Hostname-based tenant resolution, with a local-dev override and a dedicated store-not-found route
  • Hosted PayU redirect checkout; the store is resolved from the callback, so payments work on custom domains
  • Catalogue, product, cart, wishlist, orders and policy pages driven entirely by API data
  • Performance work: preloaded hero images, deferred slider scripts, tuned image qualities

07

AI that only sees what it should

Both assistants use a tool-calling loop over a shared LLM client. The model never writes SQL. It picks from a small set of validated, read-only tools, and the server injects the merchant or store identity.

  • Seller AI: tools for sales summaries, recent orders, inventory, top products, customers and voice-call insights, with charts built only from verified tool results
  • The same tool registry is served over stateless MCP JSON-RPC, so external agents get the same guarded access
  • Customer AI: catalog search, product details, offers, shipping guidance and store knowledge, with citations and a per-store usage quota
  • Responses stream over SSE, and every tool execution is persisted for audit

08

Production engineering

  • Every merge to master runs a GitHub Actions deploy: sync, install, prisma migrate deploy, build all apps, then restart PM2. The deploy aborts on any failed step instead of restarting onto a stale build.
  • Seller AI tests run the real handlers against mock Prisma and a mocked model client, with no network calls.
  • Cloudflare-backed domain verification and provisioning for merchant custom domains.

09

Timeline

  1. Jan 2026

    Hello, world

    First commit: the backend, merchant dashboard and storefront templates connected to one API.

  2. Feb 2026

    Multi-category themes

    Moved storage to Supabase and Cloudinary and shipped 22 storefront themes across product categories.

  3. Apr – Jun 2026

    Operations

    Voice-call scripts, Shiprocket logistics, PayU checkout, abandoned-cart recovery and first-party event tracking with Meta Pixel analytics.

  4. Jul 2026

    Custom domains & growth

    Automated subdomain and custom-domain provisioning on Cloudflare, plus coupons, WhatsApp flows and Google Ads.

  5. Aug 2026

    Scaling the team

    Wrote coding guidelines and review responsibilities as more contributors joined.

  6. Sep – Oct 2026

    AI layer

    Seller AI and Customer AI assistants, product variants with images, payment-gateway settings and product reviews.

10

Tech stack

Backend

  • Node.js
  • Express 5
  • PostgreSQL
  • Prisma
  • MongoDB
  • Redis
  • BullMQ
  • WebSockets

Frontend

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • shadcn/ui

AI

  • Groq (gpt-oss-120b)
  • Mistral
  • Tool calling
  • SSE streaming
  • MCP

Integrations

  • Cloudflare
  • PayU
  • Shiprocket
  • iThink Logistics
  • Meta Marketing API
  • Google Ads
  • WhatsApp (WAPI)

Ops

  • GitHub Actions
  • PM2
  • Nginx
  • Linux VPS

Next project

Dialyn