Skip to content

Repository files navigation

Leadersinfo

An open, source-backed directory of Nigerian leaders across technology, business, banking, public service, politics, sports, and culture. Every profile links to sources so the facts can be verified.

The data is community-maintained: if a leader is missing, anyone can add them with a pull request. No database, no backend, no account — just a code editor.

Note: profiles are compiled with AI assistance and reviewed against public sources. Treat each profile as a research starting point and verify claims via the source links shown on the profile.

Contents

Features

  • Directory of 100+ leaders with search and filtering by category and group (e.g. women leaders, or women leaders within a specific sector).
  • Source-linked profiles — roles, achievements, books, and biography sections each carry citation links.
  • Light & dark mode, responsive layout, accessible components.
  • Zero-config data model — leaders live in plain TypeScript, validated on every pull request.

Quick start

Requires Node.js 20+ (Node 24 LTS recommended).

git clone https://github.com/<owner>/leadersinfo.git
cd leadersinfo
npm install
npm run dev

Open http://localhost:3000.

Add or fix a leader

This is the main way to contribute. The short version:

  1. Add a photo to public/leaders/<slug>.jpg (optional — a monogram is used if omitted).
  2. Register the leader in lib/data/leaders.ts with the createLeader(...) template.
  3. If the leader is a woman, add the slug to the femaleLeaderSlugs set.
  4. Run npm run validate, then open a pull request.

Full instructions, the copy-paste template, and the field reference are in CONTRIBUTING.md.

Not a coder? Open a Request a leader issue and someone else can add them.

Project structure

app/                      Next.js App Router pages
  page.tsx                Home
  leaders/page.tsx        Directory (search + filters)
  leaders/[slug]/page.tsx Leader profile
  about/page.tsx          About / sourcing approach
components/                UI components
  leaders-directory.tsx   Search + category/group filters
  leader-card.tsx         Directory + related cards
  leader-avatar.tsx       Photo with monogram fallback
  ui/                     Primitives (button, card, badge, dropdown, …)
lib/
  types.ts                Leader data model + category list
  data/
    leaders.ts            The dataset + helpers (createLeader, createSources)
    leader-biographies.ts Optional long-form biographies
public/leaders/            Leader photos (named by slug)
scripts/
  validate-leaders.ts     Dataset validator (run by CI)

How the data works

There is no database. All leaders are defined in TypeScript and rendered as a static site, which keeps contributions reviewable as plain diffs.

  • The model is the Leader type in lib/types.ts.
  • Profiles are listed in lib/data/leaders.ts. The createLeader(...) helper fills in derived fields (id, nationality, imageAlt, lastReviewed), and createSources(...) assigns stable source ids (source-official, source-reference, source-extra-N).
  • Gender is derived centrally from the femaleLeaderSlugs set (used by the Women/Men filter) so individual profiles stay clean.
  • Photos are registered in the leaderImages map and live in public/leaders/. Missing photos fall back to a generated monogram.
  • The exported allLeaders array stitches these together; the UI reads only from it.

Every change is checked by scripts/validate-leaders.ts, which verifies slugs, categories, sources, role/achievement citations, and image paths.

Scripts

Script What it does
npm run dev Start the dev server
npm run build Production build
npm run start Serve the production build
npm run lint ESLint
npm run typecheck TypeScript, no emit
npm run validate Validate the leader dataset
npm run check Lint + typecheck + validate (run this before a PR)

Tech stack

Deploy

Any platform that builds a Next.js app works. The simplest is Vercel: import the repository and deploy with the default settings (npm run build). No environment variables are required.

Contributing

Contributions are welcome — adding leaders, fixing facts, or improving the app. Start with CONTRIBUTING.md and the Code of Conduct. Open an issue for anything you want to discuss first.

License

MIT © Leadersinfo contributors.

Profile data is compiled from publicly available sources, each linked on the relevant profile. If you are a subject of a profile and want a correction, open an issue or a pull request.

About

Leaders info Next.js app

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages