Skip to content

Karat — AIM GOLD

Karat is the monorepo for AIM GOLD, a digital-gold platform: buy, save (SIP), and hold 24K gold from a phone or the web, plus a jewellery shop and a back-office admin console.

The problem

Retail gold buyers in India want to save small amounts regularly, hold gold digitally without storage risk, and redeem or buy jewellery — with KYC, payments, and a custodian (SafeGold) handled for them. Running that safely needs a customer app + website, a payments/KYC/gold-custody backend, an admin console, and observability, all deployable by a small team.

The solution

One repository containing every part of the platform:

  • a Flutter mobile app and a React website for customers;
  • a NestJS backend (customer API + admin API) integrating SafeGold (gold), Razorpay (payments/payouts), and an SMS gateway;
  • a Next.js admin portal for operations, including a Build Tools page that drives deployments;
  • a single-VPS Docker Compose stack behind Caddy, deployed by GitHub Actions → GHCR → SSH pull;
  • a Grafana/Prometheus/Loki/Tempo monitoring stack.

A second, parked Go/Fiber backend is a from-scratch rewrite of the API that is not yet deployed.

Who it's for

  • Customers — via the mobile app (aimgold.org app stores) and website (aimgold.org).
  • Operations/admin staff — via the admin portal (admin.aimgold.org).
  • Developers — this repository; start with Getting Started.

Current status

Early-stage, actively deployed. What is live end-to-end today:

  • Account, auth (OTP/MPIN/biometric), and profile.
  • The jewellery shop: catalogue → cart → Cash-on-Delivery order.
  • SIP (recurring gold savings) plan creation.
  • Live gold price, transactions, admin console, monitoring, and push-to-deploy CI/CD.

What is intentionally gated off or stubbed: digital-gold buy/sell settlement (feature-flagged off in every client), KYC (no live provider), sell/redeem, silver, and push notifications. See Features for the exact per-feature status, and the Changelog for how the platform reached its current state.

Production domains

aimgold.org + www (website) · api.aimgold.org (customer API) · admin-api.aimgold.org (admin API) · admin.aimgold.org (portal) · monitor.aimgold.org (Grafana) · docs.aimgold.org (this documentation). All on a single VPS behind Caddy.