Open financial data infrastructure for African markets. GSE + NGX, normalized JSON, built for the global developer economy.
# 🌍 African Markets
> The definitive data layer for African financial markets.
**African Markets** is a high-performance, developer-first platform designed to bridge the data gap in African stock exchanges. It provides real-time and historical data for the **Ghana Stock Exchange (GSE)** and the **Nigerian Exchange (NGX)**, offering both a premium web dashboard and a robust API for builders.
---
## 🚀 Vision: The AI-Ready Data Layer
We are building more than just a dashboard. We are establishing the **standard data primitive** for African finance.
- **Current Stage:** Web Dashboard + REST API
- **Upcoming Stage:** **MCP (Model Context Protocol)** — enabling AI agents (Claude, ChatGPT, etc.) to query African market data natively.
---
## 🛠 Features
### 📈 Comprehensive Market Data
- **Real-time Tickers:** Live prices and daily performance for GSE and NGX.
- **Historical Analysis:** 10+ years of historical price data with interactive charts.
- **Company Profiles:** In-depth information for listed companies.
### 🕸 Professional API
- **Scraper Adapters:** Intelligent, resilient scrapers built with `got-scraping` and `cheerio`.
- **Caching Layer:** High-speed in-memory caching to ensure sub-100ms response times.
- **RESTful Endpoints:** Clean, typed routes for tickers, history, and market summaries.
### 🎨 Premium Web Experience
- **Modern UI:** Built with Next.js 16+, Tailwind CSS 4, and Lucide Icons.
- **SEO Optimized:** Dynamic metadata, JSON-LD structured data, and automated sitemaps for every ticker.
- **Responsive Design:** Financial insights available on any device.
---
## 🏗 Architecture (Monorepo)
```text
african-markets/
├── apps/
│ ├── api/ # Node.js Express server (Data Aggregator)
│ └── web/ # Next.js App Router (User Dashboard)
├── package.json # Workspace configuration
└── README.md # You are here
```
---
## 🚦 Getting Started
### Prerequisites
- Node.js 18+
- npm or yarn
### Installation
1. Clone the reposit …