AI-powered market access for India's artisans.
ALMS bridges the gap between India's marginalized artisans and digital markets — using AI to handle cataloging, image enhancement, and multilingual content so artisans can sell without needing digital skills.
The Story
The Problem
Millions of Indian artisans produce exceptional handcrafted goods but can't access digital markets. Barriers include poor product photography, no product descriptions, language gaps, and zero digital marketing knowledge.
Why It Matters
India's handicraft sector employs 7+ million people. Bridging the digital divide for even a fraction of them creates direct economic uplift without intermediaries taking margins.
The Solution
ALMS lets artisans upload phone photos and voice notes. AI enhances images, generates multilingual product descriptions, suggests pricing, and lists products on a searchable marketplace — entirely automated.
Product Features
Removes backgrounds, adjusts lighting, and sharpens product photos — transforming phone camera shots into marketplace-quality images.
Gemini AI generates product titles and descriptions in English, Hindi, Kannada, and Tamil from a voice note or a few typed keywords.
Analyses similar listings on major marketplaces to suggest competitive pricing based on product category, material, and craftsmanship.
Progressive Web App with offline support — artisans in low-connectivity areas can draft listings offline and sync when connected.
Buyers can search, filter by craft type and region, and contact artisans directly — no commission platform in between.
System Architecture
Artisan uploads → AI pipeline → enhanced listing → marketplace → buyer discovery
Technical Deep Dive
Artisan uploads a phone photo. The image is sent to the Gemini Vision API with a structured prompt requesting background removal guidance and quality assessment. A server-side Sharp pipeline then applies background removal (rembg), auto-levels, and sharpening based on the AI's quality score. The enhanced image is uploaded to Cloudflare R2 alongside the original.
The artisan speaks or types a short description in any supported language. Gemini translates and expands this into a structured product listing: title, short description, material callouts, and care instructions — in all 4 target languages simultaneously. The prompt is engineered to preserve cultural context and craft terminology.
Draft listings are stored in IndexedDB via a service worker. When connectivity is restored, the sync worker uploads images to R2 and pushes listing data to the API. Conflict resolution uses a last-write-wins strategy with a device timestamp.
// Service worker: queue failed uploads
self.addEventListener('fetch', (event) => {
if (event.request.method === 'POST' && isListingAPI(event.request.url)) {
event.respondWith(
fetch(event.request.clone()).catch(() => {
return queueForSync(event.request);
})
);
}
});Engineering Decisions
Performance & Scale
Deployment & Infrastructure
Deployment
Next.js on Vercel Edge CDN with ISR for marketplace pages. MongoDB Atlas for data. Cloudflare R2 for image storage with public CDN URLs.
CI/CD
GitHub Actions — lint + build on PR, Lighthouse CI for PWA score check, auto-deploy on merge to main.
Monitoring
Vercel Analytics. Lighthouse PWA score tracked on every deploy. MongoDB Atlas alerts for slow queries.
Challenges & Failures
What I Learned
AI tools are only useful if the UX is simple enough for non-technical users — invest heavily in the onboarding flow.
PWA offline support requires careful conflict resolution strategy — don't assume last-write-wins is always correct.
Cultural nuance in language generation requires domain-specific prompt engineering, not just translation.
Future Roadmap
v2.0 — Q1 2027
Screenshots
Artisan marketplace with AI-enhanced listings
Artisan listing dashboard — offline-capable PWA
Technology Stack
Frontend
AI/ML
Database
Storage
Offline
Image Processing
Deployment
Ready to dive in?