Skip to content
→ All work

Case study 01 / 26

DataJewellers

Multi-tenant jewellery ERP, billing and Nepal tax compliance — one deployment serving many businesses, each isolated in its own Postgres schema.

Status
Commercial · private
Domain
web · cloud
Source of claims
Private repository README (reviewed). Source and deployment are not public.

Three surfaces from one build: a public marketing and signup site, each jewellery business's ERP, and a provider console with separate credentials. Tenants get their own schema, users, branches, stock, karigars, rates, invoices and audit trail; product name, pricing tiers and entitlements are configuration, not code.

01/The problem

Jewellery businesses price by weight, purity, making charge and wastage, track individually tagged high-value stock across branches and workshops, and must keep tax records the regulator can audit. Generic retail software handles none of that — and selling the solution as a service means every business's data must be provably unreachable by every other.

02/The system

Three surfaces from one build: a public marketing and signup site, each jewellery business's ERP, and a provider console with separate credentials. Tenants get their own schema, users, branches, stock, karigars, rates, invoices and audit trail; product name, pricing tiers and entitlements are configuration, not code.

One build, three surfaces, a schema per tenant9 components
  • Marketing + signup to Public API
  • Tenant ERP to Tenant resolver
  • Provider console to Control plane
  • Public API to Provisioning worker
  • Tenant resolver to PostgreSQL
  • Provisioning worker to PostgreSQL
  • PostgreSQL to CBMS outbox

03/Scope

  1. 01Live gold and silver rates fetched on a schedule, per purity, with history, stale detection, suspicious-change flagging and manual override; finalised transactions keep the rate they used.
  2. 02Jewellery items with barcode and QR, gross/stone/net/fine weights, making charge and wastage, and category-aware item codes on independent sequences.
  3. 03Stock movements, approved transfers and adjustments, opening stock, and Excel/CSV import with column detection, preview and batch rollback.
  4. 04Purchasing, POS-style sales with barcode lookup, credit notes, sales orders and old-gold exchange; invoice numbers are never reused.
  5. 05Workshop flows for karigars with weight reconciliation, plus repairs that never enter saleable stock.
  6. 06Physical stock audits — snapshot, scan, classify, review, approve, close — immutable once closed.
  7. 07Configurable Nepal VAT, fiscal-year reporting and statutory registers, with a CBMS adapter behind a durable outbox.
  8. 08Self-serve signup with background provisioning, plans, entitlements, support sessions and per-tenant backups.

04/Engineering

Schema-per-tenant isolation

Each business lives in its own Postgres schema resolved from the host. Tenant isolation has its own mandatory test suite rather than relying on query discipline.

Three surfaces, one build

Marketing site, tenant ERP and provider console are separate routers chosen by pathname, and separate API surfaces on the server — public and platform routes are mounted outside the tenant resolver.

Money is exact

All money maths uses Decimal; historical cost and current market value are reported separately, and fine weight comes from the piece's own purity — never the 24K rate.

Nepal-first by design

NPR, Asia/Kathmandu, Bikram Sambat dates, the Nepali fiscal year, PAN/VAT and NPR-per-tola alongside NPR-per-gram are first-class, not localisation afterthoughts.

Honest compliance

It implements Inland Revenue Department e-billing requirements and documents them in a compliance matrix — and states plainly that it is not IRD certified.

Plans as configuration

Product name, pricing tiers and what each tier unlocks are data; 12 built-in roles plus tenant-defined custom roles that cannot escalate.

05/Interface

Interface screenshots of this commercial product are not public. The visual above is an abstract representation of its modules — not the product itself.

06/Tech stack

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS 4
  • Express
  • Prisma
  • PostgreSQL
  • Zod
  • JWT (httpOnly cookies)

07/Result

Verified outcomes

  • Runs as a multi-tenant SaaS or as a single-business installation from the same codebase.
  • Test suites cover server lifecycle, security, money, calendar, rates, compliance, tenant isolation and the full SaaS signup-to-support lifecycle.

Known limitations

  • Not IRD certified — no such claim is made by the product.

08/Links

Private commercial codebase — no public links.

Next case study

TimeTravel →