Proyek Klien Nyata EMBED CMS & VISUALISASI DATA · 2026

PhysicalStack.com Dashboard Data Interaktif & Embed CMS

Membangun dashboard Plotly.js interaktif yang di-embed ke dalam publikasi Ghost CMS untuk PhysicalStack—platform perbandingan harga logam mulia yang melacak 57+ dealer di 13 negara. Dashboard merender data langsung via Cloudflare Pages Functions yang mem-proxy Google Sheets, dengan backend database di db.physicalstack.com.

Cara Kerja Sistem Ini

Dari scraping 57+ dealer logam mulia hingga visualisasi interaktif Plotly.js live di dalam platform Ghost CMS:

01
Scraper Dealer
57+ dealer di 13 negara
02
Sheets & Database
Multi-tab & db.physicalstack
03
Cloudflare Worker
Proxy API sheets & kurs FX
04
Plotly.js Engine
Grafik perbandingan harga live
05
Ghost CMS Embed
Injeksi DOM via MutationObserver

01. Tantangan & Kebutuhan Inti

PhysicalStack melacak kuotasi beli/jual harian dari 57+ dealer logam mulia di 13 negara (AS, Inggris, Kanada, Australia, Jerman, Swiss, Singapura, UEA, Turki, India, Swedia, Norwegia, Denmark). Data discrape ke dalam beberapa tab Google Sheets—satu per produk (Silver Eagle, Gold Coin, 10oz Bar, dll.)—dengan 17 konfigurasi produk yang mencakup pasar global dan spesifik negara.

Publikasi membutuhkan grafik interaktif yang di-embed langsung di dalam halaman member Ghost CMS. Sebelumnya, screenshot grafik statis diunggah secara manual, membuatnya tidak terbaca di mobile dan langsung usang saat data diperbarui.

02. Peran Saya & Implementasi Dashboard

Tanggung jawab saya adalah merancang dashboard Plotly di sisi klien, menyusun pipeline data dari Sheets ke frontend, dan membangun kode injeksi embed Ghost CMS. Arsitektur JS modular (config.js, data.js, utils.js, app.js) di-host di Cloudflare Pages dan dimuat ke Ghost via blok injeksi HTML.

  • Embed Ghost CMS dengan Guard MutationObserver: Menginjeksi wrapper MutationObserver kustom yang mencegah mesin konten Ghost menulis ulang DOM dashboard—memastikan render Plotly bertahan dari lifecycle internal halaman Ghost.
  • Proxy Cloudflare Pages Functions: Membangun Cloudflare Worker (_worker.js) yang mem-proxy permintaan API Google Sheets via /api/sheets dan lookup kurs FX via /api/fx, menjaga API key tetap di sisi server.
  • Tab Produk Multi-Pasar: Mengonfigurasi 17 produk grafik melintasi perak, emas, dan pasar spesifik negara (Turki Gram Altın, India Gram Gold Bar) dengan navigasi tab, penugasan warna per-dealer, dan filter berbasis negara.

03. Pipeline Data Interaktif & Dashboard Tersemat

Berikut adalah demonstrasi interaktif alur data 2 tahap—dari scraping kuotasi multi-dealer mentah hingga dashboard perbandingan harga Plotly.js live yang tersemat di Ghost CMS:

01. Data Mentah Spreadsheet Scraping Multi-Dealer

Skrip backend scraping mengumpulkan data harga mentah harian dari 57+ dealer perak & emas global, menangani nilai null dan format dealer yang beragam:

#Scrape DateTime (UTC)DealerCountryProduct NameSpot BenchmarkDealer AskDealer BidPremium Spread
12026-05-1408:00:14JM BullionUSA1 oz Silver Eagle$31.50$34.80$31.60+10.5%
22026-05-1408:00:22APMEXUSA1 oz Silver Eagle$31.50$35.10$31.80+11.4%
32026-05-1408:01:05BullionStarSingapore1 oz Silver Eagle$31.50$34.60$31.40+9.8%
42026-05-1408:01:40SD BullionUSA1 oz Silver Eagle$31.50$33.95null+7.8%
↓

02. Dashboard Interaktif PhysicalStack (Live Web Embed)

Dashboard Plotly.js live yang di-embed langsung dari sistem produksi PhysicalStack dengan dukungan multi-currency, date-range filtering, spot overlay, dan mode fullscreen browser penuh:

04. Hasil & Deliverables Utama

Dashboard Plotly.js yang di-embed memungkinkan PhysicalStack menerbitkan grafik perbandingan dealer yang live dan interaktif langsung di dalam halaman member Ghost CMS. Seluruh grafik tersemat diperbarui secara otomatis setiap hari saat pembukaan spot AS via Cloudflare Pages Functions yang mem-proxy Google Sheets—sepenuhnya mengeliminasi proses manual unggah screenshot grafik.

Member mendapatkan akses ke fitur analitik lengkap mencakup *crosshair tooltips*, konversi mata uang FX live multi-currency (USD, GBP, AUD, CHF, EUR), *pinch-to-zoom*, filter dealer individual, serta overlay harga spot dengan kalkulasi spread premium di 57+ dealer melintasi 13 negara.