Hi Dev.to π
I'm Jonathan, 16, from Bauchi, Nigeria. Self-taught developer. This is my first real product.
#
The Problem I'm Solving
Fake bank transfer receipts are destroying Nigerian small businesses.
A buyer sends a screenshot of a "successful transfer" β it looks 100% real. The vendor ships the goods. The money never lands. The vendor loses the goods AND the money, with zero recourse.
I've seen one of these fake receipts myself. If a vendor wasn't paying attention, they'd be scammed in 5 seconds.
#
What I Built
NaijaStack β a free business automation tool for Nigerian SMEs.
Key features:
AI Fake Transfer Detector β scans payment receipts (OPay, PalmPay, Moniepoint, GTBank, etc.) and flags fakes: edited fonts, wrong session IDs, doctored amounts #
AI Magic Fill β type "Emeka bought 2 shirts for 15k" and the form fills itself #
Order tracking β New β In Progress β Ready β Paid #
Stock management β auto-decrements when you sell
- Expense tracker + 7-day P&L dashboard
- WhatsApp receipts, reminders, and rider dispatch
AI Business Assistant β ask "how much profit did I make this week?" and get a real answer
#
Tech Stack
- Vanilla JS (no framework)
- Firebase Firestore + Auth
- Google Gemini API via Netlify Functions (API key never exposed)
- PWA (installable, works offline)
- Hosted on Netlify
#
What I Learned Building This
Structure over features. My first version had nested event listeners that duplicated orders. Lesson: keep functions clean. 2. Security is not optional. I moved my Gemini API key to a Netlify Function after realizing it was exposed in the browser. 3. Small details matter. Toasts, skeleton s, an onboarding tour β these took 10% of the time and made a 90% difference in feel.
#
What I Need Help With
- Security β I'm learning this as I go. Any tips on Firestore rules or API safety?
- AI prompt engineering β how would you improve the fake receipt detection?
- Getting my first users β I have zero. Advice welcome.
#
Try It It's free during beta, no card:
https://naijastack.netlify.app Feedback welcome β good or bad. I'd rather know what's broken than ship something mediocre.
β Jonathan