U1Samarth Bhatia
All projects

U2 · May 2026 – Jun 2026 · SummerBuild 2026

Vantage

Multi-asset, multi-currency portfolio tracker that separates FX movement from real asset returns.

Tech stack: Next.js 16 · React 19 · TypeScript · Supabase · Tailwind CSS v4 · Vercel · Anthropic API · OpenRouter

The problem

If you hold assets in more than one currency, your portfolio’s headline number lies to you. A position can be up in its own currency and down in yours, or the reverse, and most retail trackers — Moomoo, StocksCafe, Syfe — collapse both effects into a single gain figure.

Vantage separates them. A deterministic FX-vs-asset gain decomposition isolates how much of a return came from the asset moving and how much came from the currency moving, reported against an SGD base.

Architecture

A four-layer stack, built for a zero-waterfall initial load:

  • React Server Components render the first view without a client-side data waterfall.
  • Supabase Postgres with Row-Level Security, enforced at the PostgREST layer rather than in application code — so a bug in the app cannot leak another user’s holdings.
  • Live market data aggregated from EODHD, CoinGecko, GoldAPI, Finnhub and Frankfurter, covering equities, ETFs, crypto, gold, bonds, real estate and cash.

The AI analyst

A dual-provider analyst streams over SSE: Anthropic claude-sonnet-4-6 with an OpenRouter fallback, admin-toggled behind feature flags. The prompt is grounded with real 30-day sparkline data specifically to stop the model inventing plausible-sounding scores for positions it cannot actually see.