Offline AI coding assistant for the African developer stack — Paystack, Flutterwave, Monnify, Termii. No internet, no API fees. Africa Deep Tech Challenge 2026.
# StacksNG
**The first offline AI coding assistant built for the African developer stack.**
No internet. No API fees. No cloud dependency. Runs entirely on a standard laptop.
## The problem
Every AI coding assistant was built for a developer in Virginia. They default to Stripe.
They don't know what USSD is. They've never heard of Moniepoint. They assume stable
internet, dollar payments, and AWS.
For a developer in Port Harcourt, Lagos, or anywhere across Nigeria, that's not reality.
The African developer stack is Paystack, Flutterwave, Moniepoint, USSD flows, NGN/kobo
currency handling, and BVN verification. No existing AI coding tool knows this stack
deeply. None of them run offline.
## What it does
Ask StacksNG how to verify a Paystack webhook, handle a Flutterwave bank transfer,
implement USSD flows, or format NGN currency: it answers correctly, with citations,
entirely on-device.
```
$ python scripts/query.py "How do I verify a Paystack webhook signature in Node.js?"
[retrieving context...] [generating answer...]
To verify a Paystack webhook signature in Node.js:
1. Get the signature from the x-paystack-signature header
2. Compute HMAC SHA512 of the request body using your secret key
3. Compare the computed hash to the header value
```
```javascript
const crypto = require('crypto');
const hash = crypto
.createHmac('sha512', process.env.PAYSTACK_SECRET_KEY)
.update(JSON.stringify(req.body))
.digest('hex');
if (hash === req.headers['x-paystack-signature']) {
// verified
}
```
> Source:
paystack.com
## How it works
StacksNG is a RAG (Retrieval-Augmented Generation) system:
1. **Corpus**: 780 chunks scraped from Paystack, Flutterwave, Monnify, and Termii
official documentation
2. **Embeddings**: each chunk embedded with `nomic-embed-text` via Ollama, stored
in SQLite
3. **Retrieval**: when you ask a question, the most relevant chunks are found via
vector similarity search
4. **Generation**: `qwen2.5 …