<?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: Riya Gorak</title>
    <description>The latest articles on DEV Community by Riya Gorak (@riya_gorak_1908).</description>
    <link>https://dev.to/riya_gorak_1908</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%2F4006124%2F2545c32e-6f0b-4d29-9c3a-3751f7a68a46.jpg</url>
      <title>DEV Community: Riya Gorak</title>
      <link>https://dev.to/riya_gorak_1908</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/riya_gorak_1908"/>
    <language>en</language>
    <item>
      <title>Building a Production-Ready AI Chat UI in One Night With Flask</title>
      <dc:creator>Riya Gorak</dc:creator>
      <pubDate>Sun, 28 Jun 2026 06:28:17 +0000</pubDate>
      <link>https://dev.to/riya_gorak_1908/building-a-production-ready-ai-chat-ui-in-one-night-with-flask-2nf8</link>
      <guid>https://dev.to/riya_gorak_1908/building-a-production-ready-ai-chat-ui-in-one-night-with-flask-2nf8</guid>
      <description>&lt;p&gt;Most AI demos live in a terminal. Ours didn't.&lt;/p&gt;

&lt;p&gt;We built SupportMind AI with a full web chat interface — customer switching, real-time responses, auto ticket creation — all in one night using Flask and vanilla JavaScript.&lt;/p&gt;

&lt;p&gt;Here's how we did it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why UI Matters for AI Demos&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A terminal output can show that your agent works. A UI shows that your agent is a product.&lt;/p&gt;

&lt;p&gt;Judges at hackathons see dozens of terminal demos. A working web interface with a chat bubble UI immediately signals that you've thought beyond the proof of concept.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Stack&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flask for the backend and API routes&lt;/li&gt;
&lt;li&gt;Vanilla HTML/CSS/JS for the frontend (no React, no build step)&lt;/li&gt;
&lt;li&gt;Served as a single-file template using Flask's render_template_string&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The Key Features&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Customer switching — judges can switch between customer IDs and see how the agent responds differently based on each customer's history.&lt;/p&gt;

&lt;p&gt;Real-time chat — messages send on Enter or button click, responses stream back from the Flask API.&lt;/p&gt;

&lt;p&gt;Auto ticket creation — when the agent detects a complex issue, a "Create Support Ticket" button appears automatically. One click creates the ticket and shows a confirmation.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Ticket Detection Logic&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;python&lt;br&gt;
def needs_ticket(reply):&lt;br&gt;
    keywords = ["broken", "refund", "urgent", "damaged", "investigate",&lt;br&gt;
                "sorry", "issue", "problem", "fix", "replace", "assist"]&lt;br&gt;
    return any(k in reply.lower() for k in keywords)&lt;/p&gt;

&lt;p&gt;When the agent's reply contains these keywords, the frontend renders a ticket button. Clean separation between backend logic and UI behavior.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What I Learned&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Keep the UI simple and the demo flow obvious. Every button should do exactly one thing. Every interaction should have a visible result. Judges aren't reading code — they're watching a demo. Make the demo tell the story.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Links&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live Demo: &lt;a href="https://web-production-ad285.up.railway.app" rel="noopener noreferrer"&gt;https://web-production-ad285.up.railway.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/bodigetejasree/supportmind-ai" rel="noopener noreferrer"&gt;https://github.com/bodigetejasree/supportmind-ai&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>showdev</category>
      <category>ui</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
