Inspiration
In Uzbekistan and Central Asia, there is no equivalent of TaskRabbit, Fiverr, or any hyperlocal services marketplace. If you need home-cooked plov from a neighbor, someone to do your laundry, or help moving furniture — you rely on word of mouth and manual searching through friends and family.
The concept of mahalla (махалля) — a traditional Uzbek neighborhood community where neighbors help each other — inspired us to build a digital version of this ancient tradition.
What it does
Mahalla is a hyperlocal neighborhood services marketplace where neighbors can offer and request everyday services:
- 🍽️ Food — home-cooked meals, plov, samsa, bread
- 👕 Laundry — washing and ironing clothes
- 🛵 Delivery — neighborhood courier runs
- 💪 Moving — heavy lifting and relocation help
- 🧹 Cleaning — house cleaning services
AI Features:
- Smart Match — users describe what they need in Russian or Uzbek, and Gemma AI instantly finds the best matching services nearby
- AI Price Suggester — providers get fair market price recommendations in UZS based on the local Uzbekistan economy
How we built it
- Frontend: Next.js 15 App Router, TypeScript, Tailwind CSS, shadcn/ui
- Database: AWS DynamoDB (single-table design) — stores all services, orders, users, and reviews
- Deployment: Vercel
- AI: Gemma 4 31B via Google AI Studio API
- UI Generation: v0 by Vercel
Challenges we faced
DynamoDB schema mismatch — our initial table used
serviceIdas partition key but the code expectedid. Solved by creating a new single-table design withidas the partition key.Gemma reasoning model parsing — Gemma 4 returns responses with a thinking block before the actual JSON. We had to extract the JSON from after the thinking block.
VPN required — Vercel and v0.app are blocked in Uzbekistan, requiring VPN for all development work.
AWS IAM permissions — initial deployment failed due to missing DynamoDB permissions for the IAM user.
What we learned
- AWS DynamoDB single-table design patterns
- Next.js 15 App Router with server components
- Integrating Gemma AI for multilingual (Russian/Uzbek) natural language processing
- Building for emerging markets with unique constraints
What's next
- Real authentication with phone number (OTP via SMS)
- Payment integration with Payme and Click (Uzbekistan payment systems)
- Mobile app for iOS and Android
- Expand to all cities in Uzbekistan and Central Asia
- Real-time chat between customers and providers
Built With
- amazon-dynamodb
- amazon-web-services
- gamma
- next.js
- node.js
- typescript
- vercel


Log in or sign up for Devpost to join the conversation.