← All work

Case / 05 of 07

Elysian Plaza

Commerce connected to a wallet.

Role
Sole developer
Timeline
Jul–Sep 2026
Live
elysianplaza.com
Elysian Plaza product screenshot
Elysian Plaza product screenshot, mobile app screen 1

Context

An ecommerce platform for salon supplies where partners can purchase products and use credits earned through the wider platform.

The storefront works across web and Android from the same codebase, with a NestJS backend and a shared administrative ecosystem.

System

Storefront · webAndroid · CapacitorAdmin
NestJS APIWallet / ledger
PostgreSQLRedis
CashfreeMSG91S3Google Maps

What I built

  • Catalog
  • Variants
  • Cart
  • Orders
  • Coupons
  • Payments
  • Wallet
  • Reviews
  • Distributor management
  • Admin dashboard

The hard part

Identity can be shared; money cannot be casually shared.

Glamease grants credit, while the wallet/ledger owns the movement of that money.

Payment events are verified and deduplicated using the gateway event ID, and monetary calculations avoid floating-point drift.

Engineering decisions

  1. 01

    Shared identity, separate money.

    Accounts span products; money only moves through the ledger.

  2. 02

    Webhooks deduplicated by gateway event ID.

    A payment event processed twice has the effect of processing it once.

  3. 03

    No floats for money.

    Monetary calculations avoid floating-point drift.

Shipped

  • Web storefront
  • Android
  • Admin dashboard
  • Docker

Stack

  • React
  • Vite
  • TypeScript
  • NestJS
  • PostgreSQL
  • TypeORM
  • Redis
  • Capacitor
  • Docker

Integrations

  • Cashfree
  • MSG91
  • AWS S3
  • Google Maps / Places
  • GA4

Links

Next case →AshirwadA restaurant shouldn’t need a marketplace to run its own orders.