Projects

Nafis — Multi-Asset Price & Portfolio

2026·6 min read

React Native
Expo
TypeScript
NativeWind
SQLite
Coming soon · Google Play

Nafis (نفيس, "precious") puts every valuable you care about in one place — the daily gold price at your local صاغة, silver, platinum and palladium, live currency rates, and crypto — then lets you track what you actually own and what it's worth today. Local metal prices are computed the way the market really works — a بيع/شراء (buy/sell) spread over a live-calibrated "صاغة dollar" — so the numbers

Nafis — Multi-Asset Price & Portfolio preview

Nafis (نفيس, "precious") puts every valuable you care about in one place — the daily gold price at your local صاغة, silver, platinum and palladium, live currency rates, and crypto — then lets you track what you actually own and what it's worth today. Local metal prices are computed the way the market really works — a بيع/شراء (buy/sell) spread over a live-calibrated "صاغة dollar" — so the numbers match the apps people already trust, with no backend and no API keys. Everything works offline; your holdings live on your device.

Nafis — everything valuable, priced for you

Nafis (نفيس) is Arabic for precious. The goal: the price you'd actually pay at the صاغة — not just international spot — for everything valuable you hold, with your portfolio, zakat, and a full toolbox in one calm, Arabic-first app.

Coming soon

Nafis is in Google Play closed testing — a public production release is on the way. Android-first, العربية / English with a right-to-left layout, offline-first, and no backend.

Screens

A tour of Nafis — Arabic-first, in both the "Bullion" dark and "Champagne" light themes. Sixteen screens, covering every feature.

Home Markets
Today's local gold price at your صاغة Every metal, currency and crypto in one list
Asset detail Insights
Per-asset chart plus a buy/hold/wait signal Scrub the chart and read the range
Portfolio Allocation
Every holding valued live, with true P&L How your value is split across assets
Compass Fear & Greed
One fused buy/hold/wait verdict for gold The market's mood at a glance
Calculator Converter
What is your gold actually worth? Instant local-currency conversion
Gold gam'eya Zakat
Plan a جمعية in gold Nisab plus 2.5% from your holdings, to the pound
Authenticity Fair price
Spot fake gold with the Archimedes test A price and making-charge (مصنعية) coach
News Settings
Distilled, in a native in-app reader Arabic/English, light and dark

Why Nafis

Most price apps quote international spot and stop there — but nobody buys gold at spot. Nafis models the price you'd actually pay at the صاغة, tracks what you own against it, and does it all with no backend and no keys.

  • Local prices, market-accurate — each karat shows بيع (buy) and شراء (sell), priced off a live-calibrated دولار الصاغة, landing within ~1 EGP of the real صاغة price.
  • Self-calibrating, keyless — the local premium auto-corrects from the actual صاغة figure parsed out of the Arabic news feed. No backend, no key, never breaks.
  • Offline-first, instant — a live rates payload is cached in MMKV so the UI paints instantly on cold start; a failed fetch never blanks the screen.
  • Polished in light & dark — a "Bullion" dark and "Champagne" light identity, warm-tinted, following the system by default, with full RTL and no floats anywhere.

Features

Local prices

  • Gold (24/22/21/18K), silver (999/925/800), platinum and palladium — per gram and per ounce, each karat with a بيع/شراء spread over a live-calibrated صاغة dollar and the الفجوة السعرية on view
  • Local gold coins — الجنيه الذهب (8g 21K), half, quarter, and ounce coin
  • Crypto and every major currency vs your home currency, all in your local money (USD is the anchor)
  • Browse any country — view another market's prices in its own currency and premium, and its localized news, while your home stays put

Portfolio

  • Log metals (any metal + purity + weight + مصنعية) and crypto (quantity); one total value and P&L across everything
  • مصنعية modeled — the portfolio shows realistic resale value (شراء − مصنعية) and true P&L, not just melt value
  • Each piece can carry an heirloom photo (camera or gallery, stored on-device), and selling a piece is a first-class flow

Signals

  • Nafis Compass — one fused buy / hold / wait verdict for gold, blending the price's own range, the dollar gap, Fear & Greed, and seasonality into a single honest read, with a "why" breakdown. Indicators, not financial advice
  • Signal alerts — optional nudges when the market mood shifts: Fear & Greed crossing a band, the Compass flipping, the street-dollar gap widening, or a seasonal window opening — plus a morning digest and a weekly recap

Toolbox

  • A gold-dial hub of ~30 focused tools: zakat (nisab + 2.5% from your holdings), currency converter, "what's my gold worth?" calculator, Fear & Greed, gold seasons, authenticity check (Archimedes water-displacement karat test), fair price and fair making-charge (مصنعية) coaches, gold gam'eya (جمعية) planner, shabka planner, break-even, allocation, gold↔silver ratio, cheapest gold form, street-dollar and dollar-gap trackers, purchasing power, and a time machine ("what if I'd bought…")
  • Per-asset charts, buy-signal and alerts

News

  • Per-country, per-language headlines (gold, currencies, central bank, crypto, economy) with the right central-bank name per country
  • A clean native in-app reader with an on-device extractive summary (الخلاصة), and offline cache — never a WebView

How it's built

Offline-first by design: a live rates payload is cached in MMKV so the UI paints instantly on cold start, then refetches in the background — a failed fetch never blanks the screen. All prices come from free, keyless sources (metals from gold-api.com, FX from open.er-api.com, crypto from CoinGecko), with USD as the single conversion pivot. Local retail prices layer a per-market premium (the "صاغة dollar") and a bid/ask spread on top of international spot, and that premium self-calibrates from the actual صاغة figure parsed out of the Arabic news feed — so accuracy tracks the real market with nothing to host. One asset catalog resolves every asset code (metal purity, coin, crypto, currency) to a price, change, name, and tint, so the UI stays generic. Money is integer minor units, weight integer milligrams, crypto quantity integer 1e-8, and purity basis points — never a float. The portfolio is SQLite (source of truth); a schema migration back-fills older gold-only rows into the multi-asset model.

Tech stack

Layer Choice
Framework Expo SDK 57 (managed) + Expo Router (typed routes)
Runtime React Native 0.86 / React 19, React Compiler enabled
Language TypeScript, strict mode
UI NativeWind 4 (Tailwind) + a dual light/dark palette (usePalette())
Client state Zustand, persisted to MMKV
Local data expo-sqlite — portfolio source of truth, offline-first
Server data TanStack Query (offline-first)
Data sources gold-api.com · open.er-api.com · CoinGecko · Bing News + curated RSS (all keyless)
Notifications expo-notifications + expo-background-task (local, no backend)
Animation react-native-reanimated · SVG via react-native-svg
Icons lucide-react-native
Analytics PostHog (privacy-safe — no amounts, holdings, or vault contents)

Non-negotiables

  • Offline-first. A cached rates payload paints the UI instantly; a failed fetch never blanks the screen, and the app is fully usable with no connection.
  • Keyless by design. Every data source is a free public API — no secrets, no server. The local premium self-calibrates from the news feed.
  • Money and weight are integers. Money in minor units, gold weight in milligrams, crypto quantity at 1e-8, purity in basis points — never floats, end to end.
  • Analytics carry no financial data. Structural events only — never amounts, holdings, or vault contents.