Free Portfolio Widget by Satia

Track & Display
Your Portfolio

Turn your Crypto, Stock, or Forex holdings into a beautiful embeddable card. Real-time prices, multiple themes, and zero coding — paste it on any website, Notion page, or Bio Link in minutes.

Live Preview

Real-time Data

Embed Code (iframe)

Copy this snippet and paste it into any Custom HTML block on WordPress, Webflow, Notion, or your own site.

* The widget automatically adapts to the width of its container.

Why Satia Folio?

Built for investors who want a clean, honest view of their portfolio — without complex dashboards or expensive subscriptions.

💼

All Asset Classes

Crypto, US Stocks, and Forex in one clean card. Show the full picture of your portfolio, not just one slice of it.

📈

Real-Time Prices

Server-side caching delivers live prices refreshed every 2 minutes from CoinGecko, Finnhub, and Yahoo Finance — no rate limits, no delays.

🎨

4 Distinct Themes

Dark, Light, Aurora, and Neon. Each theme has its own visual character — pick the one that fits your site's personality.

🔒

Privacy by Default

No account, no sign-up, no tracking. Your holdings exist only in the widget URL — they never touch our servers.

Zero Coding

Configure, generate, copy, paste. Works on WordPress, Webflow, Notion, Linktree, and any page that accepts HTML.

★★★★★

"Finally a portfolio widget that supports stocks AND crypto. Looks great on my Notion finance dashboard."

R
Rizky A.
Investor · Jakarta

How It Works

From zero to a live portfolio widget in under 3 minutes.

1

Choose your asset

Select Crypto, Stock, or Forex. Enter the asset ID or ticker — for example, bitcoin for BTC or AAPL for Apple stock.

2

Enter your holdings

Set your starting balance and current balance. Optionally set a start date to unlock full historical P&L tracking (Crypto only).

3

Customize the look

Choose your display currency, language, theme (Dark / Light / Aurora / Neon), and default time period. The live preview updates instantly.

4

Embed anywhere

Click Generate Widget, copy the iframe code, and paste into any Custom HTML block. Notion users: use Copy for Notion instead.

Transparency & Data

We believe in being fully open about how this widget works, where data comes from, and what is stored.

📡 Data Sources 4 providers

Crypto pricesCoinGecko free API. Live prices and 24h change for 500+ coins.

Crypto history — CoinGecko History API, fetched directly from the browser for specific date lookups.

StocksFinnhub free tier. Real-time quotes for US-listed equities.

ForexYahoo Finance public endpoint. Exchange rates referenced against USD.

⚡ Server Cache 2 minutes

Market data is cached server-side for 120 seconds. This means prices refresh every 2 minutes — a balance between accuracy and API rate limits.

If live data is unavailable, the widget silently serves the last known price rather than showing an error.

🍪 Cookies & Storage No cookies

This site uses no cookies of any kind.

Your browser's localStorage is used solely to remember your last widget configuration so you don't have to re-enter it. This data never leaves your browser.

Your holdings (balance amounts) exist only in the widget URL — never stored on our servers.

🛡️ Privacy No tracking

No analytics, no fingerprinting, no third-party trackers. The widget iframe communicates with our server only to fetch market prices.

We do not collect, store, or sell any visitor data. No accounts, no sign-ups, no email collection.

🔒 Security

All connections are served over HTTPS. API keys are stored server-side and never exposed to the browser. Rate limiting is active to prevent abuse. The widget iframe is isolated from your site's JavaScript context through standard iframe sandboxing.

⚠️ Disclaimer

Market data is provided for informational purposes only. Prices may be delayed up to 2 minutes. This widget is not a financial product and should not be used as the sole basis for investment decisions.

Data accuracy depends on third-party providers (CoinGecko, Finnhub, Yahoo Finance).

Supported Assets

  • Cryptocurrency: 500+ coins via CoinGecko. Enter the ticker symbol: BTC, ETH, SOL, and more.
  • US Stocks: All US-listed equities via Finnhub (AAPL, TSLA, NVDA, and more).
  • Forex: Major and minor currency pairs via Yahoo Finance, USD-referenced.

P&L Calculation

  • Crypto: Full historical P&L — (qty_now × current price) − (qty_then × purchase price) — in your chosen currency.
  • Stock: Displays 24h % change as a performance indicator (free historical API not available).
  • Forex: Displays 24h % change on the exchange rate.

Frequently Asked Questions

Everything you need to know before embedding.

Yes, completely free to use and embed on any website. If it helps you, consider buying a coffee to keep the servers running — but it's entirely optional.
Just enter the standard ticker symbol — BTC for Bitcoin, ETH for Ethereum, SOL for Solana, and so on. The same symbols you'd use on any exchange. For less common coins, the ticker symbol from CoinGecko works too.
For Crypto: the widget fetches historical prices from CoinGecko and calculates P&L as (qty_now × current price) − (qty_then × price at start) in your chosen currency. The 3M / 6M / 1Y toggle changes the reference date. Setting a Start Date overrides the toggle and uses that exact date. For Stocks and Forex: historical prices are not available for free, so 24h % change is shown as a performance indicator.
Market data is cached server-side and refreshed every 2 minutes. This balances accuracy against API rate limits. If the upstream API is temporarily unavailable, the widget serves the last cached price silently rather than displaying an error.
Yes. Notion supports embedding via a direct URL — not a full iframe tag. Use the "Copy for Notion" button to get the embed URL, then paste it into a Notion /embed block.
Yes. Your balance amounts exist only in the widget URL (as iframe parameters) and your browser's localStorage — they are never stored on our servers. Our server only receives the asset symbol in order to fetch market prices. If privacy is a concern, you can use approximate or dummy balances.
No. The widget loads inside an iframe, completely independently from your page. Your site's load time is not affected at all. The entire widget is under 50KB.