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.