<?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: hnn</title>
    <description>The latest articles on DEV Community by hnn (@retsnom).</description>
    <link>https://dev.to/retsnom</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%2F4026076%2F531fab75-5908-4a8d-9781-6031734085ca.jpeg</url>
      <title>DEV Community: hnn</title>
      <link>https://dev.to/retsnom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/retsnom"/>
    <language>en</language>
    <item>
      <title>CaravanAI: Bringing Conversational Etiquette to Passion-Driven Travel</title>
      <dc:creator>hnn</dc:creator>
      <pubDate>Sun, 12 Jul 2026 21:06:32 +0000</pubDate>
      <link>https://dev.to/retsnom/caravanai-bringing-conversational-etiquette-to-passion-driven-travel-58e0</link>
      <guid>https://dev.to/retsnom/caravanai-bringing-conversational-etiquette-to-passion-driven-travel-58e0</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;Weekend Challenge: Passion Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Every great journey starts with a spark—a passion for tasting an authentic local dish in a hidden alley, the adrenaline rush of an extreme peak, or the quiet reverence of standing inside a thousand-year-old ruin. Yet, modern travel planning feels like filling out a sterile spreadsheet. Standard AI travel assistants often feel mechanical, prompting users with rigid forms, interrupting mid-sentence, or spitting out generic, recycled itineraries.&lt;/p&gt;

&lt;p&gt;For this challenge, I built &lt;strong&gt;CaravanAI&lt;/strong&gt;, a next-generation travel companion that treats travel planning not as a logistical chore, but as an enthusiastic, deeply respectful conversation about what you love. It listens to your inner explorer and crafts tailored itineraries driven entirely by your specific passion.&lt;/p&gt;

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

&lt;p&gt;You can watch the full video demonstration of CaravanAI here:&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/M4s8pUhlAn4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

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

&lt;p&gt;You can explore the full codebase, review the frontend modular logic, and check out the implementation details here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Source Code: &lt;a href="https://github.com/retsnom12/travelagent" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;CaravanAI is a lightweight, blazing-fast web app engineered with a modern architecture utilizing zero heavy frameworks to keep the interaction completely frictionless. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Philosophy: "Conversational Etiquette"
&lt;/h3&gt;

&lt;p&gt;In our rush to make AI faster and smarter, we forgot to make it respectful. In human culture, conversation has an "adab" (etiquette)—a natural, rhythmic ebb and flow. A core architectural pillar of CaravanAI is its unique &lt;strong&gt;Turn-Based Voice Interface&lt;/strong&gt;, designed around two strict principles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Listening with Intent:&lt;/strong&gt; When the mic is open and it is your turn to speak, CaravanAI listens patiently without cutting you off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deaf Processing:&lt;/strong&gt; The moment the AI begins processing or speaking, its microphone is completely decoupled and disabled. It will never hear its own voice feedback, it will never awkwardly speak over you, and you cannot barge in to brutally mute it mid-sentence.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By engineering this hands-free, turn-based barrier, we strip away the chaotic noise of standard voice bots, ensuring a calm and focused environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Tech Stack &amp;amp; Architecture
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Core:&lt;/strong&gt; Vanilla JavaScript (ESM), HTML5, and CSS3. The UI leverages modern CSS variables and a custom glassmorphic layout to construct a futuristic dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native Voice Transcription:&lt;/strong&gt; Handled seamlessly via the browser's native &lt;strong&gt;Web Speech API&lt;/strong&gt; to ensure immediate, zero-latency local speech-to-text conversion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooling:&lt;/strong&gt; Bundled with &lt;strong&gt;Vite&lt;/strong&gt; for rapid local module loading and deployment optimization.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Local Setup Instructions
&lt;/h3&gt;

&lt;p&gt;Clone the repository and enter the directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone &lt;span class="o"&gt;[&lt;/span&gt;https://github.com/retsnom12/travelagent.git]&lt;span class="o"&gt;(&lt;/span&gt;https://github.com/retsnom12/travelagent.git&lt;span class="o"&gt;)&lt;/span&gt;
   &lt;span class="nb"&gt;cd &lt;/span&gt;travelagent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configure Environment Variables (Create a .env file in the root directory):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="py"&gt;VITE_GEMINI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_gemini_api_key_here&lt;/span&gt;
&lt;span class="py"&gt;VITE_ELEVENLABS_API_KEY&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_elevenlabs_api_key_here&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boot up the local server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;a href="http://localhost:5174" rel="noopener noreferrer"&gt;http://localhost:5174&lt;/a&gt; in your Chrome browser to start talking to CaravanAI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prize Categories
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Google AI&lt;/strong&gt;&lt;br&gt;
CaravanAI heavily relies on the Google Gemini API (gemini-1.5-flash) as its core brain. It processes the custom combination of budget, destination, and the user's core passion to structure structural, tailored itineraries. To prevent hallucinations, the engine is paired with dynamic contextual grounding, injecting live verified destination data directly into the LLM context window.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt;&lt;br&gt;
To bring the travel agent's enthusiastic personality to life, I integrated the ElevenLabs API for premium voice synthesis. This provides ultra-natural, emotionally responsive human-like speech generation. The centerpiece of CaravanAI(a dynamic, glassmorphic UI Voice Orb)reflects the AI's current cognitive state in real-time, pulsing vibrant orange while Gemini is synthesizing your route and rippling into bright turquoise while ElevenLabs is speaking to you.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>ai</category>
      <category>googleaichallenge</category>
    </item>
  </channel>
</rss>
