<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sangam Mudbhari</title>
    <description>The latest articles on DEV Community by Sangam Mudbhari (@sangam_).</description>
    <link>https://dev.to/sangam_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4156603%2F7b6dbbbe-1e03-4d66-84dc-2b1a27e0c711.png</url>
      <title>DEV Community: Sangam Mudbhari</title>
      <link>https://dev.to/sangam_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sangam_"/>
    <language>en</language>
    <item>
      <title>GroupChatDigest</title>
      <dc:creator>Sangam Mudbhari</dc:creator>
      <pubDate>Sun, 25 Oct 2026 16:04:28 +0000</pubDate>
      <link>https://dev.to/sangam_/groupchatdigest-2iim</link>
      <guid>https://dev.to/sangam_/groupchatdigest-2iim</guid>
      <description>&lt;p&gt;*This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady*&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GroupChatDigest&lt;/strong&gt; — a cloud-hosted, open-weight AI web application that distills overwhelming daily group chat exports and message dumps into a concise, actionable summary.&lt;/p&gt;

&lt;p&gt;Instead of spending 20 minutes catching up on hundreds of unread messages across active Discord servers, WhatsApp groups, or Telegram chats, &lt;strong&gt;GroupChatDigest&lt;/strong&gt; extracts the signal from the noise and delivers a 3-part digest:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Key Decisions &amp;amp; News:&lt;/strong&gt; Core updates so you do not have to read through endless debates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action Items &amp;amp; Tasks:&lt;/strong&gt; Direct mentions, follow-ups, and assignments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Funniest Highlight:&lt;/strong&gt; The best joke, meme, or banter of the day so you do not miss out on the group culture.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It allows users to skip the FOMO and doom-scrolling, saving energy and time every single day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live App:&lt;/strong&gt; `&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Sangam067/DEVWEEK3.git" rel="noopener noreferrer"&gt;https://github.com/Sangam067/DEVWEEK3.git&lt;/a&gt;&lt;br&gt;
&lt;code&gt;&lt;/code&gt;`python&lt;/p&gt;

&lt;h1&gt;
  
  
  app.py snippet
&lt;/h1&gt;

&lt;p&gt;import streamlit as st&lt;br&gt;
from groq import Groq&lt;/p&gt;

&lt;p&gt;st.title("💬 GroupChatDigest")&lt;br&gt;
st.caption("Turn hours of unread group chat clutter into a 3-bullet morning digest.")&lt;/p&gt;

&lt;p&gt;api_key = st.sidebar.text_input("Groq API Key", type="password")&lt;br&gt;
model_choice = st.sidebar.selectbox("Select Model", ["llama-3.3-70b-versatile", "llama-3.1-8b-instant"])&lt;/p&gt;

&lt;p&gt;chat_log = st.text_area("Paste daily chat log or export here:", height=300)&lt;/p&gt;

&lt;p&gt;if st.button("⚡ Summarize Chat"):&lt;br&gt;
    if not api_key:&lt;br&gt;
        st.error("Please enter a valid Groq API key in the sidebar.")&lt;br&gt;
    elif not chat_log.strip():&lt;br&gt;
        st.warning("Please paste some text first!")&lt;br&gt;
    else:&lt;br&gt;
        try:&lt;br&gt;
            client = Groq(api_key=api_key)&lt;br&gt;
            response = client.chat.completions.create(&lt;br&gt;
                model=model_choice,&lt;br&gt;
                messages=[&lt;br&gt;
                    {"role": "system", "content": "You are a concise assistant. Output exactly 3 section headers: 1. Key Decisions / News, 2. Action Items, 3. Funniest Highlight / Meme."},&lt;br&gt;
                    {"role": "user", "content": chat_log}&lt;br&gt;
                ]&lt;br&gt;
            )&lt;br&gt;
            st.markdown(response.choices[0].message.content)&lt;br&gt;
        except Exception as e:&lt;br&gt;
            st.error(f"Error: {str(e)}")&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Streamlit (&lt;code&gt;streamlit&lt;/code&gt;) for a fast, responsive user interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Model:&lt;/strong&gt; &lt;code&gt;llama-3.3-70b-versatile&lt;/code&gt; open-weight model accessed via the &lt;strong&gt;Groq API&lt;/strong&gt; for sub-second cloud inference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture:&lt;/strong&gt; Built in single-file Python (&lt;code&gt;app.py&lt;/code&gt;), accepting large text contexts and processing structured responses instantly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Unbeatable Cloud Economics:&lt;/strong&gt; Processing thousands of tokens of chat chatter daily across multiple groups using proprietary closed APIs can accumulate high token costs over time. Hosted open-weight models via high-throughput inference engines like Groq cost fractions of a cent per request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freedom From Lock-in:&lt;/strong&gt; Because the app is structured around open standards, the underlying LLM can be swapped anytime—from cloud-hosted Llama models on Groq to local models running via Ollama—without changing frontend code or business logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Large-Context Capacity on Modest Hardware:&lt;/strong&gt; Running a 70B parameter open-weight model locally on a standard 8GB RAM laptop is impossible. Leveraging cloud-hosted open models grants access to massive context windows and high accuracy without hardware strain.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Catching up on 500+ messages across three different group chats normally takes 15 to 20 minutes of daily manual scrolling. &lt;strong&gt;GroupChatDigest&lt;/strong&gt; condenses 20 minutes of reading into a 5-second scan, letting you get straight to the important points.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>📦 Introducing ListingCraft AI: Turn Product Photos into High-Converting Listings with Open-Weight Vision AI</title>
      <dc:creator>Sangam Mudbhari</dc:creator>
      <pubDate>Sun, 18 Oct 2026 16:22:19 +0000</pubDate>
      <link>https://dev.to/sangam_/introducing-listingcraft-ai-turn-product-photos-into-high-converting-listings-with-open-weight-39nl</link>
      <guid>https://dev.to/sangam_/introducing-listingcraft-ai-turn-product-photos-into-high-converting-listings-with-open-weight-39nl</guid>
      <description>&lt;p&gt;Every independent maker, vintage curator, and thrift reseller knows the unglamorous side of e-commerce: &lt;strong&gt;the listing grind&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Taking great photos is fun. But sitting down at the end of a long sourcing run to manually write catchy titles, format feature bullet points, and brainstorm 13 distinct SEO tags for every single unique item on Etsy, eBay, or Shopify? It drains hours of creative energy every week.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;ListingCraft AI&lt;/strong&gt; to solve this bottleneck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ListingCraft AI&lt;/strong&gt; is a lightweight, high-performance web application that turns raw product photos into complete, marketplace-ready listing packages in seconds. &lt;/p&gt;

&lt;h3&gt;
  
  
  What it does:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Visual Auto-Appraisal&lt;/strong&gt;: Sellers upload 1 to 3 photos of an item (front, texture, flaw/tag).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Copywriting&lt;/strong&gt;: An open-weight Vision Language Model inspects visual details (material, color, condition, vintage era, aesthetic) and generates:

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;search-optimized product title&lt;/strong&gt; tailored to marketplace character limits (e.g., under 140 chars for Etsy).&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;compelling, structured sales description&lt;/strong&gt; with scannable feature bullets and suggested uses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;13 high-traffic SEO search tags&lt;/strong&gt; ready for 1-click copy-pasting.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-Click Export&lt;/strong&gt;: Sellers can edit copy on the fly and download their complete listing package as &lt;code&gt;.md&lt;/code&gt; or &lt;code&gt;.txt&lt;/code&gt; with a single click.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Check out the clean, responsive interface:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;strong&gt;Workflow&lt;/strong&gt;: Upload photos ➡️ Select marketplace &amp;amp; tone (Etsy, eBay, Shopify, Instagram) ➡️ Hit &lt;strong&gt;Generate Product Listing&lt;/strong&gt; ➡️ Get structured copy &amp;amp; tags in under 3 seconds!&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The full codebase is completely open-source and available on GitHub:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/Sangam067/ListingCraftAI" rel="noopener noreferrer"&gt;https://github.com/Sangam067/ListingCraftAI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository Embed&lt;/strong&gt;:
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Sangam067" rel="noopener noreferrer"&gt;
        Sangam067
      &lt;/a&gt; / &lt;a href="https://github.com/Sangam067/ListingCraftAI" rel="noopener noreferrer"&gt;
        ListingCraftAI
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;📦 ListingCraft AI&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI-Powered Product Listing &amp;amp; Marketplace SEO Generator&lt;/strong&gt;&lt;br&gt;
Turn product photos into high-converting descriptions, optimized titles, and 13 targeted search tags using hosted open-weight Vision Language Models (VLMs) on Groq.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1e84b5e6b27224195cfafe6258acef2a29506fb27c574ab58d217cb74de10851/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31302532422d626c75652e737667" alt="Python"&gt;&lt;/a&gt;
&lt;a href="https://streamlit.io/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e3cb07c17c1679ffa0c04bc24eed3d3d6e89cb18dc109f236aff765a57698abf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53747265616d6c69742d312e33352532422d4646344234422e737667" alt="Streamlit"&gt;&lt;/a&gt;
&lt;a href="https://groq.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7bbea1dd9180d46b59d2eb07d116a1f122ac1ea1bb1f7cdc77f8efee5eedac7d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f47726f712d436c6f7564253230564c4d2d4635353033362e737667" alt="Groq"&gt;&lt;/a&gt;
&lt;a href="https://github.com/Sangam067/ListingCraftAI/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 Highlights &amp;amp; Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;👁️ Multimodal Visual Appraisal&lt;/strong&gt;: Analyzes uploaded product photos to identify materials, textures, colors, flaws, craft style, and unique selling points using state-of-the-art vision models (&lt;code&gt;qwen/qwen3.8-27b&lt;/code&gt;) hosted on Groq.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎯 Multi-Marketplace Optimization&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Etsy&lt;/strong&gt;: Keyword-dense 140-character titles, storytelling descriptions, and 13 exact search tags for maximum discovery placement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;eBay&lt;/strong&gt;: Spec-focused titles, condition notes, dimensions, and structured item specifics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shopify&lt;/strong&gt;: Brand-centric copy, value proposition bullets, and customer benefit framing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instagram / Social Shop&lt;/strong&gt;: Catchy hooks, aesthetic styling, emoji accents, and viral discovery tags.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;🏷️ 13 High-Traffic SEO Tags&lt;/strong&gt;: Generates 13 algorithm-targeted search tags displayed as interactive badges, with a 1-click comma-separated string ready for instant copy-pasting.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;📝 Live&lt;/strong&gt;…&lt;/li&gt;

&lt;/ul&gt;&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Sangam067/ListingCraftAI" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;ListingCraft AI was built from the ground up prioritizing speed, simplicity, and complete developer flexibility:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Core (Open-Weight Vision Models)&lt;/strong&gt;: Powered by open-weight vision models (such as &lt;code&gt;qwen/qwen3.8-27b&lt;/code&gt;) hosted on &lt;strong&gt;Groq Cloud&lt;/strong&gt;. By pairing open weights with Groq's high-throughput LPU inference engine, multi-image visual analysis and structured JSON generation execute in roughly &lt;strong&gt;1.8 to 2.5 seconds&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend &amp;amp; UX&lt;/strong&gt;: Built with &lt;strong&gt;Streamlit&lt;/strong&gt; using custom CSS micro-styles, responsive thumbnail layouts, and interactive tag badge pills.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image Pipeline&lt;/strong&gt;: Utilizes &lt;strong&gt;Pillow (&lt;code&gt;PIL&lt;/code&gt;)&lt;/strong&gt; for dynamic aspect-ratio resizing (keeping payloads under token caps without sacrificing fidelity) and in-memory Base64 data URI encoding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise-Grade Key Isolation&lt;/strong&gt;: The frontend acts like a real consumer app—visitors never see or enter API keys. Keys are handled strictly on the backend through server secrets and environment variables.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For an indie maker trying to build a sustainable side hustle, &lt;strong&gt;open innovation is the difference between a viable business and an immediate money pit&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Sustainable Unit Economics (The $0.0005 per Listing Breakthrough)
&lt;/h3&gt;

&lt;p&gt;Proprietary, closed-source multimodal vision APIs charge hefty fees per image. When processing multiple photos per item, proprietary APIs can easily cost $0.03 – $0.08 per generation. If you offer a generous free trial or a $5/month side-hustle tier, proprietary API bills will rapidly eat up your margins.&lt;/p&gt;

&lt;p&gt;By using &lt;strong&gt;open-weight vision models&lt;/strong&gt; hosted on high-efficiency open inference platforms like Groq, a full visual appraisal listing costs &lt;strong&gt;fractions of a cent (~$0.0005 per listing)&lt;/strong&gt;. This enables accessible pricing for micro-sellers while keeping the app profitable from day one.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Zero Vendor Lock-in &amp;amp; True Adaptability
&lt;/h3&gt;

&lt;p&gt;When your core intelligence is tied to a closed, black-box API, pricing hikes, unexpected deprecations, or sudden policy changes can kill your product overnight. With open weights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I can switch inference providers without changing my application architecture.&lt;/li&gt;
&lt;li&gt;I can self-host the weights locally or on rented GPUs as volume scales.&lt;/li&gt;
&lt;li&gt;I can fine-tune open weights on specific e-commerce listing datasets (like vintage fashion tags or handcrafted jewelry specs) to continuously improve appraisal accuracy.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  My First User 🚀
&lt;/h2&gt;

&lt;p&gt;Before sharing this with the community, I wanted real-world validation from someone who lives this pain every day. &lt;/p&gt;

&lt;p&gt;I reached out to a friend who runs an independent online vintage clothing shop. She constantly battles listing backlogs after flea market sourcing trips.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Test&lt;/strong&gt;: I had her upload photos of 5 vintage pieces (including an 80s leather bomber and a 70s floral dress).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Result&lt;/strong&gt;: In under 10 seconds, she had complete titles, fabric descriptions, and 13 targeted search tags for each piece.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Would she pay?&lt;/strong&gt;: &lt;strong&gt;"I'd happily pay $5 a month for this—it literally saved me two hours of tedious typing today."&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Her Next Feature Request&lt;/strong&gt;: A direct integration to publish generated listings directly into her Etsy drafts with one click (which is now item #1 on our roadmap!).&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx25ucqz478uttf9yeenn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx25ucqz478uttf9yeenn.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7vs1o1sih3xvst80ytmr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7vs1o1sih3xvst80ytmr.png" alt=" " width="799" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>My father works in a wholesale shop and he has a lot of trouble managing customers. So I built an website for him</title>
      <dc:creator>Sangam Mudbhari</dc:creator>
      <pubDate>Sun, 04 Oct 2026 18:10:20 +0000</pubDate>
      <link>https://dev.to/sangam_/my-father-works-in-a-wholesale-shop-and-he-has-a-lot-of-trouble-managing-customers-so-i-built-an-2mi8</link>
      <guid>https://dev.to/sangam_/my-father-works-in-a-wholesale-shop-and-he-has-a-lot-of-trouble-managing-customers-so-i-built-an-2mi8</guid>
      <description>&lt;h1&gt;
  
  
  What I Built
&lt;/h1&gt;

&lt;p&gt;A lot of my friends build their own tools. They hit a problem and just make the thing they want. I wanted to build something for someone else this time, and the answer was sitting right next to me.&lt;/p&gt;

&lt;p&gt;My father has wanted to modernize his physical home textile shop for a long time. He's tried a bunch of times, and it always ends the same way: he gives up. When I asked him why, it came down to two things. There are too many product configurations, sizes, and pricing tiers to memorize, and everything feels slow and awkward compared to what he's used to when trying to manually match patterns for customers.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Harmony AI&lt;/strong&gt;, a browser app that acts as an automated design concierge for our showroom.&lt;/p&gt;

&lt;p&gt;The application captures user layout requirements dynamically and structures interior themes in real-time. A few things I designed around his actual store problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Only a few inputs at a time.&lt;/strong&gt;&lt;br&gt;
The lesson from clunky software was simplicity. The tool asks for basic text inputs—Budget, Item Type, and Visual Style—with a simplified visual flow always on screen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Every selection matches our real catalog.&lt;/strong&gt;&lt;br&gt;
The interface maps choices directly to verified stock definitions: Bedcovers, Bedsheets, Blankets, Quilts, Carpets, Cushion covers, and Towels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Elegant visual transparency.&lt;/strong&gt;&lt;br&gt;
The panels leverage a modern glassmorphism design (&lt;code&gt;backdrop-blur-md&lt;/code&gt;, &lt;code&gt;bg-white/70&lt;/code&gt;, &lt;code&gt;border-white/30&lt;/code&gt;) so a high-quality, cozy bedroom background layers softly underneath, keeping the emphasis on interior aesthetic aesthetics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Zero local processing stress.&lt;/strong&gt;&lt;br&gt;
Since running heavy localized installations would completely slow down a basic storefront laptop, the application offloads all complex machine learning tasks securely to the cloud.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Right now, the system handles dynamic, context-aware layout generation across our entire textile portfolio, starting with quick budget filtering and working up through detailed fabric pairings, layer styling, and color coordinate systems.&lt;/p&gt;

&lt;p&gt;Then there's the AI part, which runs entirely serverless via API channels.&lt;/p&gt;

&lt;p&gt;When I handed it over to him, he actually sat there and worked through it for a while, which felt like a pretty good sign considering every previous attempt at using inventory platforms had ended with him giving up.&lt;/p&gt;

&lt;p&gt;He liked the instant styling responses and being able to see high-end design suggestions matching his actual showroom numbers. More importantly, he kept exploring without me having to convince him to.&lt;/p&gt;




&lt;h1&gt;
  
  
  Demo
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Visual Proof:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx99icm07f3il8pxxtz68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx99icm07f3il8pxxtz68.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7uq86gtiv0g2bhzu0ldj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7uq86gtiv0g2bhzu0ldj.png" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8hj3vyrdul2heg7j390p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8hj3vyrdul2heg7j390p.png" alt=" " width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpqcwrlwhhqthj834vpx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpqcwrlwhhqthj834vpx4.png" alt=" " width="799" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll want a desktop or mobile browser with a steady internet connection to process the real-time cloud data pipelines.&lt;/p&gt;




&lt;h1&gt;
  
  
  Code
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;a href="https://github.com/Sangam067/Harmony" rel="noopener noreferrer"&gt;https://github.com/Sangam067/Harmony&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The complete source architecture is fully public, tracking all component configurations and open framework parameters transparently.&lt;/p&gt;




&lt;h1&gt;
  
  
  How I Built It
&lt;/h1&gt;

&lt;p&gt;The app itself is built using &lt;strong&gt;Vite, React, and Tailwind CSS&lt;/strong&gt; to ensure immediate rendering, zero framework bulk, and fast layout transitions inspired by cinematic, immersive structures like the premium Resn agency style.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every Calculation Is Optimized for Light Devices
&lt;/h2&gt;

&lt;p&gt;To ensure absolute safety for our developer accounts and zero risk of token revocation on public Git platforms, all authentication metrics are handled using a localized environment variable pipeline (&lt;code&gt;.env.local&lt;/code&gt;) linked securely via Vite's &lt;code&gt;import.meta.env&lt;/code&gt; utilities. This ensures the private access keys stay local to the production engine.&lt;/p&gt;

&lt;p&gt;It also caught some fun integration bugs. During early testing, rapid user double-clicking would send overlapping fetch calls, causing the UI text boxes to stutter.&lt;/p&gt;

&lt;p&gt;By binding the React loading states (&lt;code&gt;isLoading&lt;/code&gt;) directly to the form actions, the submit engine now cleanly disables itself and displays an animated &lt;strong&gt;"Weaving your layout..."&lt;/strong&gt; sequence until data resolves.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Coach: Mistral-7B Running via Cloud API
&lt;/h2&gt;

&lt;p&gt;The automated design engine utilizes the open-weight &lt;strong&gt;Mistral-7B-Instruct-v0.3&lt;/strong&gt; model [Hugging Face].&lt;/p&gt;

&lt;p&gt;The frontend builds an asynchronous pipeline communicating directly with the serverless Hugging Face Inference API endpoint [Hugging Face]. Your parameters pass safely to the cloud infrastructure and return clean layout styling profiles instantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Few Engineering Details
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It loads the model through an explicit serverless cloud inference pathway, requiring zero local compilation, specialized graphics hardware, or disk storage overhead.&lt;/li&gt;
&lt;li&gt;It applies a strict &lt;strong&gt;System Prompt Template&lt;/strong&gt; defining the specific physical store bounds inside the request vector, ensuring the model stays grounded as a Kathmandu design expert.&lt;/li&gt;
&lt;li&gt;It utilizes explicit pipeline tuning configurations, specifically passing &lt;code&gt;return_full_text: false&lt;/code&gt; and tracking &lt;code&gt;max_new_tokens: 200&lt;/code&gt; to prevent truncation errors while completely filtering prompt repetition out of the final display box.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Context Configuration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[SYSTEM CONTEXT]
You are acting as the premium automated interior layout coordinator for "Harmony Home Textiles" based in China Town shopping Complex, Sundhara, Kathmandu, Nepal. Our active showroom specializes in premium Bedcovers, Bedsheets, Blankets, Quilts, Carpets, Cushion covers, and Towels.

[USER PREFERENCES]
- Desired Interior Item: ${productType}
- Target Budget Threshold: ${budget}
- Visual Design Aesthetic &amp;amp; Room Color Notes: ${designStyle}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h1&gt;

&lt;p&gt;For this project, it's pretty concrete.&lt;/p&gt;

&lt;p&gt;An open-weight model is the reason a customized tool like this can be built for a family business at all.&lt;/p&gt;

&lt;p&gt;With a closed, restrictive API, every single layout consultation or product pairing attempt would turn into a paid request, adding server upkeep bills and complex business keys to manage. For a gift meant to help a small storefront digitize permanently, that's a bad fit.&lt;/p&gt;

&lt;p&gt;Running open-weight models over public infrastructure nodes means it costs nothing per use, requires no consumer account configurations, and lets a small business leverage enterprise-grade capabilities for free.&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>hf26challenge</category>
      <category>weekendchallenge</category>
      <category>devchallenge</category>
    </item>
  </channel>
</rss>
