Logo Lanfrica

dannwaneri/stacksng

Domaine:

natural language processingdigital infrastructure

Type de record:

software
Créateur:
dan
Hôte:
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 …