Skip to content

About

πŸͺ™ Free, open-source crypto dashboard β€” live prices, candles, indicators, order book heatmap, portfolio & alerts. 100% keyless data sources with multi-source failover.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

3 Commits

Folders and files

Repository files navigation

πŸͺ™ CryptoPulse

Live cryptocurrency market dashboard β€” prices, charts, portfolio tracker, price alerts, and news. 100% free data sources, no paid APIs, no accounts required.

License: MIT PRs Welcome

Open source & fully self-hostable. No database, no login, no secret required β€” all data comes from free, keyless public APIs with automatic multi-source failover so rate limits rarely bite.

πŸ“Έ Screenshots

Home β€” Bitcoin hero chart, top markets & hot news Coin detail β€” Binance-style layout
Home (dark) Coin detail
Candlestick chart (Candle + indicators) News feed
Candlestick chart News
Home (light theme)
Home (light)

Stack

Layer Tech
Frontend React 19 Β· TypeScript Β· Vite Β· Tailwind CSS v4 Β· TanStack Query
Charts lightweight-charts (TradingView, OSS) Β· Recharts
State Zustand (persisted to localStorage)
Backend Node Β· Express Β· TypeScript Β· WebSocket (ws)
Data CoinGecko (market/chart) Β· Binance (live WS: ticker/depth/trades) Β· alternative.me (F&G) Β· RSS (news)

Features

  • 🏠 Home β€” Bitcoin hero chart at top, global stats, hot news feed, top-100 market table
  • πŸ“Š Markets dashboard β€” global market cap, BTC/ETH dominance, Fear & Greed gauge
  • πŸ“ˆ Coin detail (Binance-style) β€” header + 24h stat strip, tabbed Chart/Info/News, chart-left & order-book-right layout
  • πŸ•―οΈ Rich chart β€” chart types (Area / Line / Candle / Bar), ranges, fullscreen, reset zoom
  • πŸ”— Deep-linkable charts β€” share a URL with the exact view, e.g. /coin/bitcoin?type=candle&range=30
  • πŸ“ Technical indicators β€” SMA 20/50, EMA 200, Bollinger Bands, Volume, RSI (14), MACD (12,26,9)
  • 🌑️ Order book heatmap β€” live bid/ask depth with liquidity intensity bars + spread
  • ⚑ Realtime trades β€” streaming trade tape (price/size/side/value), pausable
  • πŸ“° News β€” aggregated from free crypto RSS feeds (+ per-coin news tab)
  • ⭐ Watchlist β€” persisted locally, live-updating
  • πŸ’Ό Portfolio tracker β€” holdings, cost basis, P&L, allocation donut chart
  • πŸ”” Price alerts β€” browser notifications via the free Web Notifications API
  • πŸ’± Multi-currency (USD/IDR/EUR) with live FX conversion of realtime prices
  • πŸŒ— Dark/Light theme, πŸ“± PWA β€” installable + offline shell caching
  • πŸ” Multi-source failover β€” CoinGecko β†’ CoinCap β†’ CoinPaprika (markets), CoinGecko β†’ Binance (chart/candles), so rate limits rarely bite

Quick start

# 1) Backend
cd backend
cp .env.example .env      # optional: add a free CoinGecko demo key
npm install
npm run dev               # http://localhost:8787

# 2) Frontend (new terminal)
cd frontend
npm install
npm run dev               # http://localhost:5173

Open http://localhost:5173 β€” the Vite dev server proxies /api and /ws to the backend, so there is no CORS setup needed during development.

Production

# Backend
cd backend && npm run build && npm start

# Frontend (set the API origin, then build)
cd frontend
VITE_API_URL=https://your-backend.example.com npm run build
# deploy the ./dist folder to any static host (Vercel, Netlify, Render, ...)

When VITE_API_URL is empty, the frontend talks to the same origin β€” useful when you serve the built frontend from the backend or behind a reverse proxy.

API

Method Endpoint Description
GET /api/health Health check
GET /api/global Global market stats
GET /api/markets?currency&per_page Top coins (multi-source failover)
GET /api/fx USD→IDR/EUR FX rates
GET /api/sources Last data source used per domain
GET /api/coin/:id Coin detail
GET /api/chart/:id?currency&days&type=line|candle Price history / OHLC
GET /api/search?q Coin search
GET /api/fear-greed Fear & Greed index
GET /api/news Aggregated crypto news
WS /ws Live tickers ({symbols:[...]})

WebSocket message types

Send a JSON message after connecting to /ws:

// Live tickers for many symbols
{ "symbols": ["btcusdt", "ethusdt"] }

// Order book (bids/asks), refreshed ~10x per second
{ "type": "depth", "symbol": "btcusdt" }

// Realtime market trades (aggTrade)
{ "type": "trades", "symbol": "btcusdt" }

Server pushes messages tagged with a stream field: ticker, depth, or trade. Order book and trades require the coin be listed on Binance (USDT pair).

Environment (backend .env)

Var Default Notes
PORT 8787
COINGECKO_API_KEY (empty) Free Demo key β†’ stable higher rate limit
CACHE_TTL_PRICES 30 seconds
CACHE_TTL_CHART 300 seconds
CACHE_TTL_NEWS 600 seconds
CORS_ORIGINS dev origins comma-separated allowed origins

Tests

cd backend  && npm test    # vitest
cd frontend && npm test    # vitest + testing-library

Data source notes (free tier)

  • CoinGecko public API is rate-limited (~10–30 req/min). The backend caches responses and falls back to CoinCap / CoinPaprika automatically. For heavier use you may add a free Demo key via COINGECKO_API_KEY.
  • Binance WebSocket & public data mirror are free and need no key; charts fall back to Binance klines when CoinGecko is unavailable.
  • News uses public RSS feeds β€” no API key required.
  • Live prices from Binance are quoted in USDT (β‰ˆUSD) and converted to the selected currency using live FX rates.

Documentation

  • AGENTS.md β€” architecture & conventions for contributors and AI agents.
  • CONTRIBUTING.md β€” how to contribute.
  • TODO.md β€” recent feature work log.

License

This project is fully open source, released under the MIT License. You are free to use, modify, and distribute it (including commercially) as long as you keep the copyright notice. No warranty is provided.

Feel free to ⭐ the repo and open issues / PRs!

About

πŸͺ™ Free, open-source crypto dashboard β€” live prices, candles, indicators, order book heatmap, portfolio & alerts. 100% keyless data sources with multi-source failover.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages