Inspiration

I am an Igbo man from Nigeria. One of the problems I have noticed about Igbos is that there is no agreed concensus of the origin stories of the towns in igbo land, so I figured that I could build a platform that gathers all the Igbo origin myths together in a knowledge graph we may glean insights never before discovered about the relations and connection of towns in igbo land to one another

What it does

Njiko is a living atlas of Igbo origin stories. It maps myths to real places; village, town, lineage (Umunna); and shows how versions relate across borders, eras, and families. Contributors submit text or voice; elders and custodians endorse versions; voters rate clarity and usefulness. Every telling keeps provenance: who recorded it, when, where, and from whom. A searchable index, vector map, and knowledge graph let you compare variants, trace lineages, surface patterns, and preserve culture and community memory. Explore by map, timeline, or theme; export datasets for research and teaching.

How we built it

Njiko runs on Next.js with a Postgres/PostGIS core. Every place is a MULTIPOLYGON. We compute which places touch using ST_Touches and cache the results. No one types neighbor lists by hand. Search is Typesense with diacritic-aware indexing, synonyms, and a phonetic key for tricky spellings. We extract graph nodes and links with an LLMGraphTransformer bound to a small schema. Humans review before it goes live. The graph renders with Sigma or Cytoscape. Maps use MapLibre. Media files live in object storage with signed URLs. Security uses Argon2id, rotating JWTs, and rate limits. Votes use a Wilson score with time decay. It’s a PWA, so you can draft offline and upload later. We track logs and metrics and follow NDPA rules for consent and data retention.

Challenges we ran into

Built With

  • aleo-sdk
  • augment
  • background-sync
  • cache-storage-api
  • client?side
  • code
  • github-actions
  • greedy-meshing
  • indexeddb-(save/restore)
  • instancedmesh
  • javascript
  • ktx2/basisu-texture-compression
  • object-pooling
  • pnpm
  • proving
  • react
  • react?three?fiber
  • replit-agent-(prototype)
  • service-worker
  • three.js
  • typescript
  • vite
  • wasm)
  • web-workers
  • webassembly
  • webgl
  • zk
  • zustand
Share this project:

Updates