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

  1. DynamoDB schema mismatch — our initial table used serviceId as partition key but the code expected id. Solved by creating a new single-table design with id as the partition key.

  2. 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.

  3. VPN required — Vercel and v0.app are blocked in Uzbekistan, requiring VPN for all development work.

  4. 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
Share this project:

Updates