Real-time minibus taxi visibility for South Africa - Next.js on Vercel + Amazon DynamoDB
# 🚐 TaxiManje
> Real-time taxi visibility for South Africa's streets
**Vercel + Amazon DynamoDB**.
**TaxiManje** gives the informal minibus taxi industry the same real-time visibility that made ride-hailing apps successful without disrupting the existing ecosystem. Passengers drop a pin and nearby taxis can see them. Drivers go live and see where demand is clustering.
*Because every South African deserves a safe ride home.*
---
## 🏆 At A Glance
| | |
|---|---|
| **AWS Database** | **Amazon DynamoDB** |
| **Frontend / hosting** | Next.js 14 (App Router) on **Vercel** |
| **Why DynamoDB** | Single-digit-ms writes for high-frequency location pings, seamless scale to millions of concurrent users, and **native TTL** that auto-expires passenger pins after 10 minutes and stale taxis after 60s — zero cleanup code |
`ARCHITECTURE.md` for the architecture diagram.
---
## ✨ Features
**For passengers**
- 📍 Tap the map (or say *"Taxi"*) to drop a pin visible to nearby drivers for 10 minutes
- 🚐 See live taxis with seats available and ETA buckets
- 🧭 Filter by direction: *To CBD* / *From CBD*
- ✅ Hail a specific taxi and get a match notification
**For drivers**
- 📡 Go live to share your location and seats available
- 👥 See passenger demand clustered by area, ranked by priority
- 🤖 AI nudges that tell you where to go next
- ⚠️ Conflict resolution: a DynamoDB conditional write decides who claims a passenger when two taxis are close
**General**
- 🧪 **Demo mode:** full client-side simulation, runs with zero AWS setup
- 📱 Installable PWA, designed for low-bandwidth environments
---
## 🛠️ Tech stack
| Layer | Technology |
|-------|-----------|
| Framework | Next.js 14 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS |
| Database | **Amazon DynamoDB** (`@aws-sdk/lib-dynamodb`) |
| Hosting | **Vercel** |
| Realtime | Short-interval polling against Next.js API routes |
| Maps | Lightweight dependency-free map projection (no Maps API key needed) |
| AI nudge …