Skip to content
ARZ Labs

Work / Mizan

Mizan · ميزان

Live at mizan.arzlabs.cloud

An Arabic-first web app that prices gold, silver and cash conversions at your actual dealer's margins, tracks the resulting ledger by karat, and tells you where you stand, built on an exact-integer money engine with a 201-test correctness contract.

201

Tests, money-math contract

0

Floats in storage: bigint everywhere

12

Routes, RTL throughout

5

Alert kinds on a 30-min price loop

The Mizan swap calculator in Arabic, right to left, showing a gold-to-silver conversion result with break-even and round-trip cost.
The swap calculator: break-even and round-trip cost on every quote. Live spot prices, no login.

The problem

Screen prices are not the prices you get. International spot quotes fine metal per troy ounce; a real trade is a physical weight at a real karat, priced by a dealer who adds his own absolute margin, quoted in whatever unit you asked in. Every step moves the number, and none of them are visible in a generic portfolio tracker.

What it does

Price a swap first

Bidirectional gold / silver / cash quotes at a chosen dealer's margins, with break-even and round-trip cost stated plainly. Public, no login.

Record the real deal

Swaps freeze the spot prices and margins actually applied; deposits and withdrawals are separate movements. The ledger stays reconstructable forever.

See where you stand

Holdings bucketed by metal and karat, valued by liquidating through the dealer, contributions subtracted, so added money never shows as profit.

Dealer commission cards

A dealer quotes by the unit you ask in, so each carries two metals × three units × buy/sell, with cheaper-category detection and per-deal overrides.

Ratio charts & alerts

The gold/silver ratio plotted from the app's own price history with your trades marked; five alert kinds delivered by email.

Arabic-native, RTL

Written in Arabic, not translated, right-to-left from the locale, with domain vocabulary as first-class terms rather than English words in translation. Arabic-Indic digits are accepted as input. Examples: صائغ، عيار، العالمي زائد/ناقص، ليرة ذهب.

Engineering notes

Nothing is stored as a float

Metal is bigint milligrams, cash is bigint cents, margins are integer cents per ounce. Rounding never manufactures value: conversions floor in the direction that cannot invent metal or cash.

A dated, documented correction

The purity model was corrected mid-project: face weight stays physical, purity scales the price. The earlier model overvalued 875 jewelry by 12.5 percent: the bug, the reasoning and the migration are all recorded in the repo.

Append-and-void ledger

Transactions are never edited or deleted: a void is a timestamp, and holdings are always a fold over the ledger. Idempotency keys make a double-submit unable to insert a second row.

An advisor that refuses to advise

The advisory layer states facts, where today's ratio sits, what the round trip costs, and deliberately emits no direction and no confidence. Below 300 samples over 14 days, it says so instead of guessing.

Stack

Framework
Next.js 16 App Router · React 19 · TypeScript strict
Data
PostgreSQL · Drizzle ORM · versioned migrations
Money math
decimal.js-light in a pure, framework-free domain layer
Prices
metals.dev → gold-api.com → Swissquote fallback chain

Status: live and early, weeks old, solo-built, no usage metrics claimed. Its value is rigor per line, and we say that plainly.

Talk to us →
Talk to us →