Portfolio Demo · Data Visualization Developer
Built with Plotly.js. Embeds in Ghost, Squarespace, Webflow, or any HTML-capable platform.
Live-updating data · Multi-currency · Mobile-optimized.
Live demo — try interacting with the chart below
Capabilities
Crosshair tooltip, pinch-zoom (X & Y independently), pan, date range buttons, and double-tap to reset. Built on Plotly.js with custom interaction layers.
Chart lives inside an iframe injected into your CMS via a single HTML snippet. Works in Ghost, Squarespace, Webflow — any platform that accepts HTML.
Real-time FX conversion via a Cloudflare Function proxy. Toggle between USD, GBP, AUD, CHF. Prices update instantly across all chart data.
Toggle spot price line on any chart. Premium fill area visualizes the gap between spot and the cheapest dealer — an analytics layer on top of raw data.
Touch-and-hold tooltip, directional pinch zoom, swipe-to-close filter panel, fullscreen mode, and PWA installable. Tested on iOS & Android.
Daily data pulled from APIs, written to Google Sheets, served via Cloudflare Functions proxy. No sensitive keys exposed to the browser.
Architecture
Daily price data pulled from APIs via Apps Script or n8n, stored in Google Sheets, served as CSV through a Cloudflare Function proxy.
Plotly.js renders the dashboard at portfolio.nvandi.com/embed. Modular JS files (config, data, utils, app) served from Cloudflare Pages CDN.
A single <iframe> snippet pasted into your CMS injects the full dashboard — same architecture as a SaaS analytics widget.
Real client work
This demo is a mirror of a live production dashboard built for a client.
The original tracks 40+ gold & silver dealers across 10+ countries.
Available for data visualization, embedded analytics, and dashboard projects on Upwork.
View Upwork profile →