Skip to content

Oddjobe/Axis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

231 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌍 AXIS AFRICA

African X-ray Intelligence System

Real-time strategic intelligence platform tracking sovereignty, resource wealth, and outside influence across all 54 African nations.

Live Demo Next.js License


What is AXIS?

African X-ray Intelligence System β€” a strategic intelligence dashboard that provides a comprehensive, data-driven view of Africa's sovereignty landscape. AXIS treats Africa as Layer Zero of the global technology supply chain and provides the tools to understand, visualize, and act on that reality.

AXIS tracks:

  • πŸ›οΈ Sovereignty scores for all 54 nations (0–100 composite metric)
  • ⛏️ Resource wealth metrics with key natural resources per country
  • πŸ“‘ Live OSINT intelligence scraped from Al Jazeera, Mining Weekly, African Business & Medium
  • πŸ—ΊοΈ Interactive heat map with country-level filtering and historical timeline
  • πŸ“Š Country dossiers with strategy, exports, and friction analysis
  • 🌐 Outside influence tracking β€” monitoring foreign power impact on African affairs
  • 🧠 AI Resource Nexus β€” force-directed knowledge graph mapping Africa's role in the AI supply chain
  • πŸ“ˆ Strategic analytics β€” scatter plots, trendlines, influence flows, and more

Features

πŸ—ΊοΈ Interactive Sovereignty Heat Map

Countries are color-coded by their Axis Score β€” green for high sovereignty, red for extractive economies. Click any country to filter the entire dashboard. Includes a historical timeline slider that animates score changes across years.

πŸ“‘ Live Intelligence Engine (Friction Engine)

Powered by Firecrawl, the platform scrapes multiple news sources in real-time, classifying articles as SOVEREIGNTY RISK or OUTSIDE INFLUENCE with severity ratings. Data is persisted to Supabase via automated GitHub Actions cron jobs.

⛏️ Resource Wealth Tracking

Every nation has a resource wealth score based on verified mineral and energy endowment data, with key resources tagged (Cobalt, Gold, Oil, Platinum, Lithium, etc.).

πŸ“‹ Country Dossiers

Click any country for a detailed intelligence modal with three tabs:

  • Strategy β€” Score breakdown, key initiatives, and sovereignty trajectory
  • Exports β€” Commodity pipeline with destinations and values
  • Friction β€” Active threat vectors, severity levels, and source citations

πŸ“Š Strategic Analytics Modal

A comprehensive analytics suite with four specialized dashboards:

Tab Name Description
πŸ“Š The Extractivist Trap Scatter plot of Resource Wealth vs. Sovereignty Score β€” exposing nations with high potential but low value capture
πŸ“ˆ Sovereignty Trends 10-year trajectory area charts per country, visualizing whether nations are gaining or losing economic independence
🌐 Influence Flows Nivo Sankey diagram mapping negative influence vectors from China, US, Russia, France, IMF/World Bank into vulnerable African states
🧠 AI Nexus Interactive force-directed knowledge graph (see below)

🧠 AI Resource Nexus Graph

An interactive, physics-powered knowledge graph visualizing Africa's critical role in the AI supply chain:

African Nations β†’ Critical Minerals β†’ Refined Components β†’ AI End Products
(DRC, Zambia...)   (Cobalt, Lithium...)  (Batteries, Chips...)  (GPUs, LLMs, Data Centers)

Features:

  • Force-directed layout with react-force-graph-2d and tuned d3-force physics
  • Dynamic particle animations along supply chain links
  • Hover-to-isolate: highlighting connected edges and fading unrelated nodes
  • Floating detail cards with node descriptions and flow metrics
  • Full-screen expansion support
  • Custom canvas-rendered nodes with glow effects and outlined text labels

πŸ”„ Continental Goals Ticker

Scrolling marquee of pan-African continental development goals (Agenda 2063, AfCFTA milestones), providing persistent context.

πŸ‘οΈ Watchlist System

Pin countries to your personal watchlist (persisted in LocalStorage) β€” pinned countries are prioritized in the intelligence feed and highlighted on the map.

πŸŒ“ Dark & Light Mode

Fully themed UI with smooth transitions, premium aesthetics in both modes, and proper contrast for all map and chart elements.

Tech Stack

Layer Technology
Framework Next.js 16 (App Router, Turbopack)
Language TypeScript 5
Database Supabase (PostgreSQL + RLS)
Automation GitHub Actions (Cron Jobs)
OSINT Engine Firecrawl API
Mapping React Simple Maps + D3-Geo
Charts Recharts + Nivo Sankey
Graph Viz react-force-graph-2d + d3-force
Animation Framer Motion
Styling Tailwind CSS 4
State Browser LocalStorage
Hosting Vercel

Architecture & Data Flow

graph TD
    %% Define Nodes
    subgraph Frontend [Next.js Web Application / Vercel]
        UI[Axis Interactive Dashboard]
        Map[Sovereignty Map + Timeline]
        Feed[Friction Engine Feed]
        Analytics[Strategic Analytics Suite]
        Nexus[AI Resource Nexus Graph]
        Local[Browser LocalStorage]
    end

    subgraph Backend [Serverless & Cloud]
        DB[(Supabase PostgreSQL)]
        Cron[GitHub Actions Automation]
        OSINT[Firecrawl Web Scraper]
    end

    %% Define Connections
    Cron -- 1. Triggered Twice Daily --> OSINT
    OSINT -- 2. Scrapes News Sources --> OSINT
    OSINT -- 3. Parses via AI Schema --> Cron
    Cron -- 4. Inserts Validated Alerts --> DB

    DB -- 5. Streams Live Intelligence & Scores --> Feed
    DB -- 6. Streams ISO Country Metrics --> Map
    DB -- 7. Powers Analytics Charts --> Analytics
    
    Local -- 8. Hydrates User Watchlist --> UI
    UI -- 9. Filters & Sorts Feed --> Feed
    Analytics -- 10. Renders Scatter, Trends, Flows --> UI
    Nexus -- 11. Maps Supply Chain Dependencies --> UI

    %% Styling
    classDef frontend fill:#1e293b,stroke:#3b82f6,stroke-width:2px,color:#fff
    classDef backend fill:#0f172a,stroke:#10b981,stroke-width:2px,color:#fff
    classDef storage fill:#334155,stroke:#f59e0b,stroke-width:2px,color:#fff
    
    class UI,Map,Feed,Analytics,Nexus frontend
    class DB,Cron,OSINT backend
    class Local storage
Loading

Getting Started

# Clone the repository
git clone https://github.com/Oddjobe/Axis.git
cd Axis

# Install dependencies
npm install --legacy-peer-deps

# Set up environment variables
cp .env.example .env.local
# Add your FIRECRAWL_API_KEY and Supabase keys

# Run development server
npm run dev

Open http://localhost:3000 to view the dashboard.

Environment Variables

Variable Description
NEXT_PUBLIC_SUPABASE_URL Your Supabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEY Your public Supabase API key
FIRECRAWL_API_KEY API key from firecrawl.dev
SUPABASE_SERVICE_ROLE_KEY Master database bypass key (GitHub Actions only)

Sovereignty Index Explained

Status Score Meaning
🟒 OPTIMAL 75+ Strong sovereignty trajectory
πŸ”΅ STABLE 60–74 Consistent metrics, no major risks
🟑 IMPROVING 51–59 Positive reform trend underway
πŸ”΄ EXTRACTIVE ≀50 Resources leaving without value capture

Project Structure

src/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ page.tsx                    # Main dashboard
β”‚   β”œβ”€β”€ layout.tsx                  # Root layout + SEO
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ intelligence/route.ts   # OSINT scraping endpoint
β”‚   β”‚   └── blogs/route.ts          # Blog aggregation endpoint
β”‚   β”œβ”€β”€ robots.ts                   # SEO robots.txt
β”‚   └── sitemap.ts                  # SEO sitemap
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ africa-map.tsx              # Interactive SVG heat map
β”‚   β”œβ”€β”€ friction-engine.tsx         # Live intelligence feed
β”‚   β”œβ”€β”€ analytics-modal.tsx         # Strategic analytics (4 tabs)
β”‚   β”œβ”€β”€ ai-resource-graph.tsx       # AI Nexus force graph
β”‚   β”œβ”€β”€ wealth-vs-sovereignty-chart.tsx  # Extractivist Trap scatter
β”‚   β”œβ”€β”€ sovereignty-trendline-chart.tsx  # 10-year trajectory
β”‚   β”œβ”€β”€ influence-sankey-chart.tsx   # Influence flows Sankey
β”‚   β”œβ”€β”€ country-dossier-modal.tsx   # Country detail modal
β”‚   β”œβ”€β”€ continental-goals-ticker.tsx # AU goals marquee
β”‚   β”œβ”€β”€ afcfta-matrix.tsx           # AfCFTA trade matrix
β”‚   └── mission-modal.tsx           # Platform mission overlay
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ supabase.ts                 # Database client
β”‚   β”œβ”€β”€ use-watchlist.ts            # Watchlist hook
β”‚   └── i18n.ts                     # Internationalization
└── scripts/
    β”œβ”€β”€ seed.ts                     # Database seeder
    └── scrape.ts                   # Cron scraping script

Contributing

Contributions are welcome! This platform is built for the African community. If you'd like to:

  • Add new data sources or intelligence feeds
  • Improve visualizations or add new analytics
  • Add support for African languages
  • Expand the AI Nexus graph with more supply chain data
  • Fix bugs or improve performance

Please open a pull request.

License

MIT License β€” see LICENSE for details.

Acknowledgments


Built with purpose. Built for Africa.

Africa is Layer Zero.

Live Demo Β· Report Bug Β· Request Feature

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors