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 β¦