Issue 10 of 11 · The craft issue
कारीगरArtisanAI
An AI co-pilot that tells an artisan's story.
Helps Indian artisans sell online: upload a product photo and details, and Gemini writes a brand-consistent description, origin story and hashtags in English and a regional language — plus a social plan, tone rewrites and a public showcase page.
One photo, two languages
a sample of what it writesThe river-clay vase
Thrown on a kick-wheel from river clay and fired in a wood kiln, every curve of this vase carries the rhythm of the hands that made it — no two are ever quite the same.
#handmade #terracotta #indiancraft #slowliving
नदी की मिट्टी का फूलदान
नदी की मिट्टी से चाक पर गढ़ा और लकड़ी की भट्ठी में पकाया गया यह फूलदान, बनाने वाले हाथों की लय अपने हर घुमाव में संजोए है — कोई भी दो बिल्कुल एक जैसे नहीं होते।
#हस्तनिर्मित #टेराकोटा #भारतीयशिल्प
From the workbench
Artisans struggle with product storytelling, marketing and online selling — time taken away from the craft itself.
Brand profile
The artisan's voice is stored once and personalises every generation.
Upload
Product photo to Cloudinary, plus materials, dimensions, care and target language.
Generate
One multimodal Gemini call returns bilingual description, story and hashtags as JSON.
Publish
Products get a certificate id and a public showcase page.
Maker’s notes
One call, two languages
A single multimodal request returns structured JSON keyed by language.
server/controllers/productController.js ↗On-chain provenance (local)
A minimal Motoko actor issues certificate ids; disabled in the hosted demo.
server/canister/src/canister_backend/main.mo ↗Materials: React 19, Vite, React Router, Node · Express 5, multer, Cloudinary, PostgreSQL, Gemini 1.5 Flash, ICP canister (Motoko).
Care: Hackathon prototype — deployed. Handle with curiosity.
This piece was made by hand.
Each product gets a certificate id; locally, a small Motoko canister on the Internet Computer issues it.