Market Movers
Interactive S&P 500 and Nasdaq-100 dashboard with sector filters, browser visualizations, exports, and delayed market-data integration.
Lightweight browser dashboard for comparing S&P 500 and Nasdaq-100 stock performance. It can run from a committed market snapshot or update with 15-minute-delayed Alpaca market data when API credentials are available.
The project is strongest as a full-stack static-plus-edge app: the browser handles search, comparison, charting, sector/sub-industry filters, pagination, and CSV exports, while Cloudflare Pages Functions keep market-data credentials server-side and cache delayed quotes.
Deployed dashboard with saved-snapshot fallback and optional delayed live-price refresh
Features
- Search and compare selected tickers across daily, month-to-date, and year-to-date performance views.
- Filter the universe by GICS sector and sub-industry, with visible counts for each filter state.
- Render browser-based charts and movers tables without a heavy front-end framework.
- Export selected comparison data and market-mover tables as CSV files from the browser.
- Persist selected tickers locally so repeat visitors return to their preferred comparison set.
Market Data
- Uses a committed `data.js` snapshot as a reliable fallback when live credentials or market-data calls are unavailable.
- Refreshes the snapshot with a Python generator that pulls current index membership and price history.
- Uses a Cloudflare Pages Function endpoint for delayed Alpaca snapshots so API secrets remain server-side.
- Normalizes quote payloads, handles split-adjusted previous closes, batches symbols, and returns compact browser-ready quote data.
Deployment
The repository is configured for Cloudflare Pages with no build command and the project root as the output directory. The live version can run as a static snapshot and then upgrade to delayed market data after Cloudflare secrets are configured.