Snapshot — The Easiest Way to Track Your Portfolio

Inspiration

If you're an investor, your money is probably everywhere — stocks in Robinhood, gold derivatives through XTB, crypto on Coinbase, fixed income on some platform you barely remember.

And the result? You have no idea what your actual net worth is.

Existing solutions are painful:

  • Export CSVs into spreadsheets
  • Manually enter every holding
  • Hand over your banking password to a third party

We tried all three. They’re slow, fragile, and break constantly. So we asked:
What if you could just take a screenshot?

Screenshot. Done. That’s Snapshot.


What It Does

Snapshot is a mobile portfolio tracker that lets you add holdings by sharing screenshots from any broker, bank, or exchange.

Using AI vision, it extracts tickers, quantities, values, and categories — then drops them into a unified portfolio.

Core Features

  • Screenshot → Portfolio: Share up to 4 images via iOS Share Extension or Android intents. Assets are automatically deduplicated across stocks, ETFs, crypto, cash, commodities, bonds, real estate, and more.
  • AI Chat Assistant: Add holdings, ask questions, and get portfolio commentary — with selectable personalities.
  • Live Net Worth: Prices refresh every 5 seconds using FinnHub, CoinGecko, and Yahoo Finance.
  • Diversification Insights: Risk scoring, HHI concentration analysis, and rebalancing suggestions.
  • Multi-Currency Support: Handles per-asset currencies and ASX suffix logic automatically.

How We Built It

Snapshot is built with:

  • React Native + Expo SDK 54
  • Expo Router
  • NativeWind (Tailwind CSS)
  • Convex for a fully real-time backend
  • Google Gemini 2.0 Flash (Vertex AI) with function calling

When a screenshot is shared:

  1. It’s uploaded to Convex storage.
  2. Sent to Gemini with the user’s current holdings for dedup context.
  3. Gemini responds with structured save_assets tool calls.
  4. Assets are upserted in a loop until extraction is complete.

No manual entry. No APIs. No integrations.

Subscriptions with RevenueCat

We use RevenueCat to power subscriptions across iOS and Android with a unified entitlement system.

Instead of building separate StoreKit and Play Billing logic, RevenueCat abstracts everything into:

  • Centralized product management
  • Cross-platform subscription handling
  • Server-side receipt validation
  • Real-time entitlement sync

To move even faster, we used the RevenueCat MCP (Model Context Protocol) integration during development. This allowed us to:

  • Generate subscription flows and entitlement logic directly from structured context
  • Validate pricing tiers and product configurations programmatically
  • Reduce trial-and-error when wiring up paywalls and feature gating

This dramatically accelerated development and eliminated a huge amount of platform-specific complexity.


Challenges

  • Deduplication across brokers: Slight naming differences required robust ticker + category resolution logic.
  • AI screenshot variability: Dark mode, cropped images, multi-currency layouts — extensive prompt engineering and multi-turn function-calling were required.
  • Rate limits: Three price providers with different constraints required cooldowns and fallback logic.
  • iOS Share Extension: Passing images via App Groups into Expo reliably was one of the toughest native challenges.

What We’re Proud Of

  • Zero-friction onboarding: Full portfolio visible in under 60 seconds.
  • Multi-call AI extraction loop: 20 holdings from one screenshot processed in a single automated pass.
  • Real-time architecture: No refresh button anywhere. Data just flows.
  • No broker APIs required: Works across Robinhood, IBKR, CommSec, Coinbase, XTB, and dozens more.

What We Learned

  • AI vision + function calling turns a chatbot into a structured data pipeline.
  • Convex’s real-time model eliminates entire categories of backend complexity.
  • Share Extensions are an underrated growth surface.
  • Prompt engineering is infrastructure.

What’s Next

  • Background price updates while the app is closed
  • Historical net worth charts (already storing price snapshots)
  • Deeper sector and country exposure analysis
  • Options, futures, and private equity support
  • Collaborative portfolios for families
  • OCR fallback for maximum screenshot reliability

Built With

Share this project:

Updates