The Stellar Dashboard can be viewed at dashboard.stellar.org.
This is a full-stack JavaScript/TypeScript application with:
- Frontend: React SPA (Single Page Application)
- Backend: Node.js/Express API server
- Build Tool: Vite
- Package Manager: npm
Purpose: Dashboard UI displaying Stellar network metrics and data visualization
We use muicss library for the UI. It hasn't been updated in years, so it holds
us back from upgrading all dependencies to the latest versions.
react-d3-components library was replaced by d3, which is used to build
charts.
Purpose: Serve API data, cache Stellar network metrics, proxy requests, and connect to BigQuery
- Cache Updates: Periodically updates Stellar network data (lumens supply, ledger stats)
- API Proxy: Proxies requests to
/api/*(via Vite in dev, Express in production) - Data Aggregation: Fetches data from Stellar API and BigQuery
- Rate limiting: Rate limit is IP based and there are both endpoint-specific and global limits
UPDATE_DATA=true # Enable periodic cache updates
DEV=true # Development mode
BQ_PROJECT_ID=... # BigQuery project ID used by backend/bigQuery.ts
REDIS_URL=... # Production Redis connection URL used by backend/redis.ts
PORT=5000 # Server port configuration (defaults to 5000) used by backend/routes.ts
TRUST_PROXY=... # Trusted proxy CIDRs configuration used by backend/routes.ts
{
"resolutions": {
"**/ua-parser-js": "0.7.28" // Prevents vulnerable versions
}
}This pins ua-parser-js to prevent dependency vulnerabilities.
- Stellar SDK queries the Stellar blockchain
- Fetches account data, transaction metrics, network stats
- Stores historical ledger & transaction data
- Used for long-term trend analysis
- Requires service account JSON configuration
- Port: 6379 (default)
- Purpose: Store computed metrics to reduce repeated API calls
- Required for: Backend data updates
- EKS: Hosted on Amazon EKS (
stellar-dashboard-prdcluster) - Docker:
Dockerfileavailable for containerized deployment - Jenkins: Builds and pushes images via
ProductEngineering/stellar-dashboard-k8s(requires manual approval) - ArgoCD: Deploys approved images to the production cluster
- Node.js version: 22.x (specified in
engines)
Frontend (React)
↓ (HTTP requests via Axios)
Vite Dev Proxy (dev) / Express (prod)
↓ (backend/routes.ts)
External APIs (Stellar SDK, BigQuery, Redis)
- Backend periodically fetches data from Stellar API
- Computes aggregates (e.g., lumens in circulation)
- Caches results in Redis
- Frontend requests cached data via
/api/*endpoints - Charts and widgets update in real-time
- Redis: Primary cache for hot data
- In-memory: Some computed values cached in process
- Update frequency: 10-minute intervals (configurable)