The Problem

Amara is 32. She sells vegetables at a market stall in Lagos, Nigeria. Last month, a man offered her a loan at "5% per week — very reasonable!" She almost took it.

That's 260% annual interest. She didn't know. Nobody told her.

1.4 billion adults globally have no bank account. 3.5 billion more are underbanked. Without financial literacy, they:

  • Pay 300%+ APR to informal moneylenders because they don't know microfinance institutions exist
  • Lose 6–10% of every remittance to fees that are 5–10× higher than the cheapest option
  • Keep cash at home because they don't understand deposit insurance
  • Default on microloans they didn't fully understand the terms of

Existing financial literacy tools are in English, require fast internet, assume basic financial vocabulary, and are designed for desktop. They weren't built for Amara.

What We Built

FinWise is Maya — an AI financial coach who meets users where they are: on a cheap Android phone, in their language, explaining money in terms that make sense to their daily life.

Core Features

🤖 Maya — AI Financial Coach Conversational AI that answers real financial questions in plain language. Ask "Is this loan offer safe?" and Maya analyzes the specific terms, calculates the true APR, and flags predatory patterns. Ask "How do I send money home cheaply?" and she compares real routes and fees for your specific corridor. The responses stream in real time, just like a chat with a knowledgeable friend.

🌍 15 Languages English, Hindi, Swahili, Yoruba, Bengali, Tagalog, Spanish, Portuguese, Hausa, Amharic, Zulu, Igbo, Tamil, Bahasa Indonesia, and Vietnamese. Language selection is the first thing users see — not a login form.

🎓 Structured Learning 6 financial literacy modules — Savings Basics, Smart Borrowing, Sending Money Home, Protecting Your Money, Running a Business, Planning Your Future. Each module has 5 lessons with culturally-specific analogies (the savings analogy for a Nigerian user is different from the one for a Bangladeshi user), interactive quizzes, and badges for completion.

🛡️ Scam Detector Paste any suspicious message or loan offer. The analyzer extracts and evaluates: guaranteed return language, advance fee requirements, time pressure tactics, missing registration numbers, and interest rates disguised in daily or weekly terms. A "5% per week" offer correctly returns VERY HIGH RISK with the 260% APR calculation shown explicitly.

🏦 Institution Finder 10 verified microfinance institutions across 8 countries — LAPO (Nigeria), KWFT (Kenya), BRAC (Bangladesh), ASA Philippines, Bandhan Bank (India), and more. Filterable by "no collateral required" and "accepts first-time borrowers."

💸 Remittance Comparison Real fee comparisons for 5 major corridors (Nigeria→UK, India→USA, Philippines→Saudi Arabia, Bangladesh→UK, Kenya→Tanzania). Shows: fee percentage, total recipient receives, delivery time, and the annual savings from switching to the cheapest option.

💰 Financial Dashboard Income/expense tracker with voice entry ("I spent 500 on food today"), savings goals with animated progress bars, and a financial health score (0–100) that responds in real time to user actions.

📱 Offline-First PWA Installs to Android home screen. Service worker caches all lesson content. IndexedDB queues financial entries made offline and syncs when connection returns. The app shows a connection status indicator and handles reconnection gracefully.

🔒 Demo Mode No signup required. Click "Continue without account" to explore the full product. This means any judge, user, or investor can try FinWise in 10 seconds.

How We Built It

Architecture decision 1: Mock AI over no AI. We don't have a production AI API key. Rather than ship a broken product, we built a sophisticated mock AI layer that pattern-matches financial questions and returns contextually appropriate responses — including extracting specific numbers from user input. A user asking "is 5% per week a good rate?" gets a response that calculates 260% APR and flags it as predatory. The mock is indistinguishable from real AI in a demo, and the architecture is designed to swap in Ollama (local AI) or any LLM API with one environment variable change.

Architecture decision 2: Ollama-first, not API-first. The production AI strategy uses Ollama — local LLM inference on a $20/month VPS — rather than expensive cloud APIs. At 10,000 monthly active users, this costs $51/month total vs $300+/month for cloud AI. At 100,000 users, it's $110/month vs $3,000+. For a product targeting people who earn $150/month, the cost model is existential — not optional.

Architecture decision 3: Supabase for everything backend. Phone OTP authentication (no email required — many target users don't have email), PostgreSQL with Row Level Security, real-time subscriptions for savings goal updates, and storage for audio files. The entire backend is serverless — zero infrastructure to manage.

Architecture decision 4: 15 languages from day one. Every user-facing string is an i18n key. next-intl handles locale routing. The language picker is the first screen users see. This isn't localization bolted on afterward — it's the core product decision.

Technical Stack

Layer Technology
Framework Next.js 14 (App Router, TypeScript strict)
Styling Tailwind CSS
State Zustand + TanStack Query
Database Supabase (PostgreSQL + Auth + RLS)
AI Mock AI layer → Ollama (llama3.2:3b) → Claude
i18n next-intl (15 languages)
Testing Vitest (45 unit tests) + Playwright (30 E2E)
CI/CD GitHub Actions (82 workflow runs, all green)
Hosting Vercel (Edge Network, iad1 region)
PWA Custom Service Worker + IndexedDB

Challenges We Faced

No AI API key. The mock layer took longer to build correctly than expected. The key insight was that the mock needs to use the user's actual input — extracting numbers, calculating APRs, referencing the user's country — or it feels obviously fake. The current mock does this; early versions didn't.

Branch protection + solo development. We set up proper branch protection (requiring PR reviews) before we had co-contributors, which blocked direct pushes. Solved with gh pr merge --admin flag and eventually adjusting the protection rules for solo development mode.

15 languages before any are perfect. The temptation was to add more languages before getting existing ones right. We stayed disciplined: 5 languages complete at launch (English, Hindi, Swahili, Yoruba, Bengali) with 10 scaffolded. Better to have 5 working perfectly than 15 half-broken.

PWA offline + Supabase RLS. Getting IndexedDB sync to work correctly when offline mutations need to replay after reconnection — while respecting the server-side RLS policies that protect user data — required three rewrites of the sync queue implementation.

What We Learned

Financial literacy is not a product category — it's an access problem. The technology to help Amara exists. What's been missing is a product that meets her where she is: on her phone, in her language, for free.

The most important product decision we made was demo mode — removing signup as a barrier to the first experience. Every hackathon submission, every investor conversation, every user referral starts with "just click Continue without account."

The second most important decision was building the scam detector first. It's the feature with the highest immediate utility and the most visceral demo moment. A judge who watches "5% per week" get correctly identified as predatory lending at 260% APR understands the product instantly.

What's Next

The 2-year roadmap is documented in the repo. Key milestones:

  • Month 2: Replace mock AI with Ollama on a $20/month VPS
  • Month 5: Lightpanda web crawler for live institution rates (nightly automated scraping of 200+ MFI websites)
  • Month 10: B2B API for MFI integration — microfinance institutions pay to require FinWise training before loan disbursement
  • Month 16: Savings circles — digitizing the chama/susu/tanda rotating savings groups that 600 million people already use
  • Month 21: On-device WASM inference — Maya runs fully offline on the phone itself

The vision: by 2028, FinWise is the financial operating system for first-generation smartphone owners in emerging markets. Not a nice-to-have. Infrastructure.


---

### Built With (paste these as individual tags)

Next.js · TypeScript · Tailwind CSS · Supabase · PostgreSQL · Vercel · Zustand · TanStack Query · next-intl · Vitest · Playwright · GitHub Actions · Progressive Web App · Service Worker · IndexedDB · Web Speech API · ElevenLabs · Ollama · Node.js · Zod · React Hook Form · Framer Motion · Recharts

Built With

Share this project:

Updates