Pure ingredients • Traditional foods • Delivered to your home
Traditional food • Modern experience

From our soil to your soul.

Discover thoughtfully sourced rice, millets, spices and natural foods made for the way Indian families eat today.

From our land to your kitchen

Food that feels like home.

At Mannvasam, we bring together traditional Indian foods and modern everyday convenience. Every product is chosen with care, keeping authenticity, quality and honest nourishment at the heart of what we do.

🌾

Traditional foods

Rooted in familiar Indian food traditions.

🌱

Thoughtfully sourced

Ingredients selected with care and purpose.

🤎

Made for families

Simple foods for everyday Indian kitchens.

📦

Delivered with care

From Mannvasam to your doorstep.

Explore Mannvasam

Shop by category

VIEW ALL PRODUCTS →
Our favourites

Goodness for every day.

Traditional foods selected for modern everyday kitchens.

SHOP ALL →
MANNVASAM NATURAL FARMING

Good food begins with respect for the soil.

Behind every thoughtfully sourced product is a journey of soil, farming, people and traditional knowledge. We believe good food carries a story — and that story should begin with care.

WHY THIS MATTERS

From the hands that grow it to the homes that enjoy it.

Every grain, millet, spice and traditional food begins somewhere: in a field, with a farmer, shaped by seasons, knowledge and care. MANNVASAM aims to keep that connection alive by giving importance to origin, cultivation and responsible sourcing.

TWO PATHWAYS TO TRUST

How products qualify for MANNVASAM.

🌱

Certified Organic

Selected products may come through recognised organic certification pathways supported by applicable documentation, standards and traceability processes.

  • Recognised organic standards
  • Documented production information
  • Traceability through the relevant system
  • Clear product certification status
🌾

MANNVASAM Natural Farming Produce

Some traditional farmers follow responsible natural cultivation practices but may not have access to formal certification. For selected products, we build confidence through sourcing review and direct relationships.

  • Farmer and source understanding
  • Farm visits where applicable
  • Review of cultivation practices
  • Available testing or documentation where required
FARM TO HOME

A journey built on care and transparency.

01
👨‍🌾

Farm & Source

We understand where the produce begins and the people behind it.

02
🌱

Review

Cultivation practices and available sourcing information are reviewed.

03
🌾

Procurement

Products are selected with attention to quality, origin and care.

04
🏡

Careful Handling

Food is handled, cleaned or packed according to its requirements.

05
🍚

Your Kitchen

Honest food travels from its source to become part of your home.

MANNVASAM RESPONSIBLE SOURCING

From our soil to your soul.

Good food begins long before it reaches your kitchen. It begins with the soil, the farmer, traditional knowledge and the care taken at every stage of the journey.

Know Your Food
The Mannvasam way

Respect the food. Respect where it comes from.

We believe good food does not need to be complicated. It starts with honest ingredients, traditional wisdom and people who care about what reaches your plate.

01
Rooted in tradition
Inspired by foods that have nourished generations.
02
Chosen with intention
We focus on ingredients that belong in real kitchens.
03
Made for today
Traditional goodness presented simply for modern life.
Our story
Stay connected

Good food. Good stories. Your inbox.

Get product updates, recipes and stories from Mannvasam.

async function loadHomepageBuilder(){ try{ const r = await fetch("/api/home-sections"); if(!r.ok) return; const result = await r.json(); const sections = Array.isArray(result.sections) ? result.sections .filter(x => x.visible && x.published) .sort((a,b) => Number(a.position) - Number(b.position)) : []; console.log("ADMIN SECTION ORDER:", sections.map(x => ({ position: x.position, type: x.type, title: x.title })) ); const hero = sections.find(x => x.type === "hero"); if(hero && hero.data){ const data = hero.data || {}; const setBuilderText = (id,value)=>{ const el = document.getElementById(id); if(el && value !== undefined && value !== null && value !== "") el.textContent = value; }; setBuilderText("heroTitle", hero.title || data.title); setBuilderText("heroDesc", data.description); setBuilderText("heroButton1", data.button); if(data.image){ const heroImage = document.querySelector(".heroimage"); if(heroImage){ heroImage.style.backgroundImage = `linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.05)),url("${data.image}")`; heroImage.style.backgroundSize = "cover"; heroImage.style.backgroundPosition = "center center"; heroImage.style.backgroundRepeat = "no-repeat"; heroImage.style.backgroundColor = "transparent"; heroImage.style.minHeight = "640px"; } } const button = document.getElementById("heroButton1"); if(button && data.link) button.href = data.link; } const builderBox = document.getElementById("builderSections"); console.log("BUILDER DEBUG:", { builderBox: !!builderBox, sectionCount: sections.length, sectionTypes: sections.map(x => x.type) }); if(builderBox){ const imageTextSections = sections.filter(x => x.type === "image_text"); builderBox.innerHTML = imageTextSections.map(section => { const data = section.data || {}; const image = data.image ? `
` : ""; const button = data.button ? `${data.button}` : ""; return `
${image}
MANNVASAM

${section.title || data.title || ""}

${data.description || ""}

${button}
`; }).join(""); } /* * Dynamic Homepage Builder: * Categories * Product Collection * Collection */ const categorySections = sections.filter( x => x.type === "categories" ); if(builderBox && categorySections.length){ const categoriesHtml = categorySections.map(section => { const data = section.data || {}; const items = Array.isArray(data.items) ? data.items : []; const fallbackCategories = [ "Native Rice", "Millets", "Cold Pressed Oils", "Pulses" ]; const categories = items.length ? items : fallbackCategories; return `
SHOP BY CATEGORY

${escapeHtml( section.title || "Explore our traditional foods" )}

${escapeHtml(data.description || "")}

${categories.map((item,index) => { const name = typeof item === "string" ? item : (item.name || "Category"); const image = typeof item === "object" ? item.image : ""; return ` ${image ? `${escapeHtml(name)}` : `
${escapeHtml(name)}
` }
${escapeHtml(name)}
`; }).join("")}
`; }).join(""); builderBox.insertAdjacentHTML( "beforeend", categoriesHtml ); } const productSections = sections.filter( x => x.type === "products" ); if(builderBox && productSections.length){ const productsHtml = productSections.map(section => { const data = section.data || {}; let selectedProducts = PRODUCTS.slice(); /* Product Collection selection */ if(Array.isArray(data.productIds) && data.productIds.length){ selectedProducts = PRODUCTS.filter(product => data.productIds.map(Number) .includes(Number(product.id)) ); }else if(Array.isArray(data.items) && data.items.length){ const wanted = data.items .map(x => String( typeof x === "object" ? (x.name || x.category || "") : x ).trim().toLowerCase()) .filter(Boolean); selectedProducts = PRODUCTS.filter(product => { const name = String(product.name || "") .toLowerCase(); const category = String(product.cat || "") .toLowerCase(); const categoryAliases = { "native rice": "rice", "traditional rice": "rice", "rice": "rice", "millets": "millet", "millet": "millet", "pulses": "pulse", "pulse": "pulse", "spices": "spice", "spice": "spice", "honey": "honey", "natural honey": "honey" }; return wanted.some(item => { const mapped = categoryAliases[item] || item; return ( name.includes(item) || category === mapped || category.includes(mapped) ); }); }); } const limit = Number(data.limit) || 4; selectedProducts = selectedProducts.slice(0,limit); return `
${escapeHtml(data.eyebrow || "MANNVASAM COLLECTION")}

${escapeHtml( section.title || "Our favourites" )}

${escapeHtml(data.description || "")}

${escapeHtml(data.button || "SHOP ALL")} →
${selectedProducts.map(productCard).join("")}
`; }).join(""); builderBox.insertAdjacentHTML( "beforeend", productsHtml ); } const collectionSections = sections.filter( x => x.type === "collection" ); if(builderBox && collectionSections.length){ const collectionsHtml = collectionSections.map(section => { const data = section.data || {}; const collectionName = data.collection || data.category || ""; let collectionProducts = PRODUCTS.slice(); if(collectionName){ collectionProducts = PRODUCTS.filter(product => String(product.cat || "") .toLowerCase() .includes( String(collectionName).toLowerCase() ) ); } const limit = Number(data.limit) || 4; collectionProducts = collectionProducts.slice(0,limit); return `
${escapeHtml( collectionName || "MANNVASAM COLLECTION" )}

${escapeHtml( section.title || "Traditional goodness" )}

${escapeHtml(data.description || "")}

${collectionProducts.map(productCard).join("")}
`; }).join(""); builderBox.insertAdjacentHTML( "beforeend", collectionsHtml ); } const bannerSections = sections.filter(x => x.type === "banner"); if(builderBox && bannerSections.length){ const banners = bannerSections.map(section => { const data = section.data || {}; return `
MANNVASAM

${section.title || ""}

${data.description || ""}

${ data.button ? `${data.button}` : "" }
`; }).join(""); builderBox.insertAdjacentHTML("beforeend",banners); } const offerSections = sections.filter(x => x.type === "offers"); if(builderBox && offerSections.length){ const offers = offerSections.map(section => { const data = section.data || {}; return `
${data.image ? `
` : ""}
MANNVASAM OFFER

${section.title || ""}

${data.description || ""}

${ data.button ? `${data.button}` : "" }
`; }).join(""); builderBox.insertAdjacentHTML("beforeend",offers); } const reviewSections = sections.filter(x => x.type === "reviews"); if(builderBox && reviewSections.length){ const reviews = reviewSections.map(section => { const data = section.data || {}; return `
CUSTOMER LOVE

${section.title || "What our customers say"}

★★★★★

${data.description || ""}

${data.button || "MANNVASAM Customer"}
`; }).join(""); builderBox.insertAdjacentHTML("beforeend",reviews); } const faqSections = sections.filter(x => x.type === "faq"); if(builderBox && faqSections.length){ const faqs = faqSections.map(section => { const data = section.data || {}; return `
HELP & INFORMATION

${section.title || "Frequently Asked Questions"}

${data.button || "Question"}

${data.description || ""}

`; }).join(""); builderBox.insertAdjacentHTML("beforeend",faqs); } const newsletterSections = sections.filter(x => x.type === "newsletter"); if(builderBox && newsletterSections.length){ const newsletters = newsletterSections.map(section => { const data = section.data || {}; return `
STAY CONNECTED

${section.title || "Join the Mannvasam family"}

${data.description || "Get traditional food stories, new products and special offers delivered to your inbox."}

`; }).join(""); builderBox.insertAdjacentHTML("beforeend",newsletters); } const testimonialSections = sections.filter(x => x.type === "testimonials"); if(builderBox && testimonialSections.length){ const testimonials = testimonialSections.map(section => { const data = section.data || {}; return `
FROM OUR CUSTOMERS

${section.title || "Loved by families"}

${data.description || ""}

★★★★★
${data.button || "MANNVASAM Customer"}
`; }).join(""); builderBox.insertAdjacentHTML("beforeend",testimonials); } document.querySelectorAll(".builderTestimonialTrack").forEach(track=>{ if(track.dataset.sliderReady) return; track.dataset.sliderReady="1"; let timer=setInterval(()=>{ const card=track.querySelector(".builderTestimonialCard"); if(!card) return; const max=track.scrollWidth-track.clientWidth; if(track.scrollLeft >= max-10){ track.scrollTo({left:0,behavior:"smooth"}); }else{ track.scrollBy({ left:card.offsetWidth+24, behavior:"smooth" }); } },5000); track.addEventListener("mouseenter",()=>clearInterval(timer)); track.addEventListener("mouseleave",()=>{ timer=setInterval(()=>{ const card=track.querySelector(".builderTestimonialCard"); if(!card) return; const max=track.scrollWidth-track.clientWidth; if(track.scrollLeft >= max-10){ track.scrollTo({left:0,behavior:"smooth"}); }else{ track.scrollBy({ left:card.offsetWidth+24, behavior:"smooth" }); } },5000); }); }); const recipeSections = sections.filter(x => x.type === "recipe"); if(builderBox && recipeSections.length){ const recipes=recipeSections.map(section=>{ const data=section.data || {}; return `
${ data.image ? `
` : `
` }

${section.title || "Traditional Recipe"}

${data.description || ""}

${ data.button ? ` ${data.button} ` : "" }
`; }).join(""); builderBox.insertAdjacentHTML("beforeend",`
FROM THE MANNVASAM KITCHEN

Traditional Recipes

${recipes}
`); } const blogSections = sections.filter(x => x.type === "blog"); if(builderBox && blogSections.length){ const blogs=blogSections.map(section=>{ const data=section.data || {}; return `
${ data.image ? `
` : `
` }
MANNVASAM JOURNAL

${section.title || "MANNVASAM Journal"}

${data.description || ""}

${ data.button ? ` ${data.button} ` : "" }
`; }).join(""); builderBox.insertAdjacentHTML("beforeend",`
STORIES • FOOD • TRADITION

From the Mannvasam Journal

${blogs}
`); } const countdownSections = sections.filter(x => x.type === "countdown"); if(builderBox && countdownSections.length){ const countdowns=countdownSections.map(section=>{ const data=section.data || {}; const expiry= data.expiry || data.endDate || data.date || ""; return `
LIMITED TIME OFFER

${section.title || "Special Offer"}

${data.description || ""}

00 Days
00 Hours
00 Minutes
00 Seconds
This offer has ended.
${ data.button ? ` ${data.button} ` : "" }
`; }).join(""); builderBox.insertAdjacentHTML( "beforeend", countdowns ); document .querySelectorAll(".builderCountdown") .forEach(section=>{ const expiry= section.dataset.countdown; if(!expiry) return; const end=new Date(expiry).getTime(); const days= section.querySelector("[data-days]"); const hours= section.querySelector("[data-hours]"); const minutes= section.querySelector("[data-minutes]"); const seconds= section.querySelector("[data-seconds]"); const expired= section.querySelector( ".builderCountdownExpired" ); const timer= section.querySelector( ".builderCountdownTimer" ); const update=()=>{ const diff=end-Date.now(); if(diff<=0){ if(timer) timer.style.display="none"; if(expired) expired.style.display="block"; return; } const totalSeconds= Math.floor(diff/1000); const d= Math.floor( totalSeconds/86400 ); const h= Math.floor( (totalSeconds%86400)/3600 ); const m= Math.floor( (totalSeconds%3600)/60 ); const sec= totalSeconds%60; if(days) days.textContent= String(d).padStart(2,"0"); if(hours) hours.textContent= String(h).padStart(2,"0"); if(minutes) minutes.textContent= String(m).padStart(2,"0"); if(seconds) seconds.textContent= String(sec).padStart(2,"0"); }; update(); setInterval(update,1000); }); } const customSections = sections.filter(x => x.type === "custom"); if(builderBox && customSections.length){ const customSectionsHtml = customSections.map(section=>{ const data=section.data || {}; return `
${ data.image ? `
` : "" }
MANNVASAM

${section.title || ""}

${data.description || ""}

${ data.button ? ` ` : "" }
`; }).join(""); builderBox.insertAdjacentHTML( "beforeend", customSectionsHtml ); } const videoSections = sections.filter(x => x.type === "video"); if(builderBox && videoSections.length){ const videosHtml = videoSections.map(section=>{ const data=section.data || {}; let url= data.video || data.videoUrl || data.url || ""; const title= section.title || "Stories From Our Soil"; const description= data.description || ""; const poster= data.image || ""; function youtubeEmbed(value){ if(!value) return ""; try{ const u=new URL(value); if(u.hostname.includes("youtube.com")){ const id=u.searchParams.get("v"); if(id){ return "https://www.youtube.com/embed/"+id; } if(u.pathname.includes("/embed/")){ return value; } } if(u.hostname==="youtu.be"){ return "https://www.youtube.com/embed"+ u.pathname; } }catch(e){} return value; } const embed=youtubeEmbed(url); return `
MANNVASAM STORIES

${title}

${description}

${ embed ? ` ` : poster ? `
` : `
Add a video URL from the Admin Builder.
` }
`; }).join(""); builderBox.insertAdjacentHTML( "beforeend", videosHtml ); } if(builderBox){ const orderedNodes = []; sections.forEach(section => { const node = builderBox.querySelector( `[data-section-id="${section.id}"]` ); if(node){ orderedNodes.push(node); } }); orderedNodes.forEach(node => { builderBox.appendChild(node); }); console.log( "Homepage Builder final order:", orderedNodes.map(node => node.dataset.sectionId) ); } console.log("Homepage Builder loaded:", sections); }catch(e){ console.warn("Homepage Builder unavailable:", e); } } document.addEventListener("DOMContentLoaded",async()=>{ await init(); await loadHomepageBuilder(); });