<?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: Travis</title>
    <description>The latest articles on DEV Community by Travis (@thanhitsw).</description>
    <link>https://dev.to/thanhitsw</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%2F4020515%2F0dfec87a-763b-4314-b494-acaabd8096a5.png</url>
      <title>DEV Community: Travis</title>
      <link>https://dev.to/thanhitsw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thanhitsw"/>
    <language>en</language>
    <item>
      <title>EchoPass — Capture your passion today. Meet your future self tomorrow.</title>
      <dc:creator>Travis</dc:creator>
      <pubDate>Mon, 13 Jul 2026 09:38:58 +0000</pubDate>
      <link>https://dev.to/thanhitsw/echopass-capture-your-passion-today-meet-your-future-self-tomorrow-99p</link>
      <guid>https://dev.to/thanhitsw/echopass-capture-your-passion-today-meet-your-future-self-tomorrow-99p</guid>
      <description>&lt;p&gt;Passion fades. Goals get buried. The excitement you feel at 2am starting a side project, chasing a promotion, or learning something new — it quietly disappears under daily life.&lt;/p&gt;

&lt;p&gt;EchoPass is a passion time capsule. You capture a moment of drive through text, voice, or images. AI turns it into a personalized capsule: a summary, emotional fingerprint, a letter from your future self, and a spoken message. Months later, when you reopen it, AI compares who you were with who you've become.&lt;/p&gt;

&lt;p&gt;It's not a todo app. It's a letter across time — from the you who still believed, to the you who needs to remember why you started.&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
EchoPass lets you:&lt;/p&gt;

&lt;p&gt;Seal a passion moment — write your goal, pick a category, optionally attach an image or record up to 60 seconds of voice&lt;br&gt;
Set an open date — choose when your future self gets to read it&lt;br&gt;
Let AI process it — Google Gemini analyzes your goal and writes a future letter; ElevenLabs converts it into natural speech&lt;br&gt;
Preview while locked — before the open date, see AI summary, emotion, and keywords — but the future letter and voice stay sealed&lt;br&gt;
Reopen &amp;amp; reflect — read the letter, play the voice message, submit reflections; Gemini compares original ambition with where you are now&lt;br&gt;
Code&lt;br&gt;
&lt;/p&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/thanhITSW" rel="noopener noreferrer"&gt;
        thanhITSW
      &lt;/a&gt; / &lt;a href="https://github.com/thanhITSW/EchoPass" rel="noopener noreferrer"&gt;
        EchoPass
      &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;EchoPass&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Capture your passion today. Meet your future self tomorrow.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Submission for &lt;strong&gt;Build Something Inspired by Passion&lt;/strong&gt; — a weekend challenge about the fire that drives us.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The Idea&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Passion fades. Goals get buried. The excitement you feel today — starting a side project, chasing a promotion, learning a new craft — quietly disappears under daily life.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EchoPass&lt;/strong&gt; is a passion time capsule. You capture a moment of drive through text, voice, or images. AI transforms it into a personalized capsule: a summary, emotional fingerprint, future letter, and spoken message from your future self. When you reopen it months later, AI compares who you were with who you've become.&lt;/p&gt;
&lt;p&gt;It's not a todo app. It's a letter across time — from the you who still believed, to the you who needs to remember why you started.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Challenge Fit: Passion&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Theme&lt;/th&gt;
&lt;th&gt;How EchoPass addresses it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Passion as fuel&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Users seal their&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/thanhITSW/EchoPass" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Stack: Next.js 15 · TypeScript · Tailwind + shadcn/ui · Supabase · Prisma · Google Gemini · ElevenLabs&lt;/p&gt;

&lt;p&gt;Architecture diagrams and setup guide are in the README.&lt;/p&gt;

&lt;p&gt;How I Built It&lt;br&gt;
Full-stack Next.js 15 app built over one weekend. Passion is emotional, so the product had to feel emotional too — not just store text in a database.&lt;/p&gt;

&lt;p&gt;Locked preview, not full lockdown. Before the open date, users see AI summary, emotion, and keywords — enough to stay connected without spoiling the future letter. Letter and voice unlock only on the scheduled date.&lt;/p&gt;

&lt;p&gt;Voice on both sides. Users record their own voice when creating a capsule. ElevenLabs generates a separate voice for the future letter — reopening feels like hearing from another version of yourself.&lt;/p&gt;

&lt;p&gt;Reflection as a loop. After opening, users submit multiple reflections. Gemini compares original goals vs. new reflections and returns growth, achievements, missed goals, and encouragement.&lt;/p&gt;

&lt;p&gt;Google AI (Gemini)&lt;br&gt;
Two distinct flows with structured JSON output + Zod validation:&lt;/p&gt;

&lt;p&gt;Goal analysis: goal → { summary, emotion, keywords, futureLetter, obstacles, advice }&lt;br&gt;
Future reflection: goal + reflections → { growth, achievements, missedGoals, suggestions, encouragement }&lt;br&gt;
Model fallback (gemini-2.5-flash-lite → gemini-3.1-flash-lite → gemini-2.5-flash) and retry on rate limits for the free tier.&lt;/p&gt;

&lt;p&gt;ElevenLabs&lt;br&gt;
After Gemini writes the future letter, ElevenLabs TTS (eleven_multilingual_v2) generates MP3, uploads to Supabase Storage, and plays back when the capsule unlocks. Reading "keep going" is fine. Hearing it hits differently.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Best Use of Google AI — Gemini powers goal analysis, future letter generation, and reflection comparison&lt;br&gt;
Best Use of ElevenLabs — future letter converted to natural speech, played back on unlock&lt;br&gt;
Thanks for reading! EchoPass — because the fire that drives you today deserves to reach you tomorrow.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>Hello, Dev.to! 👋</title>
      <dc:creator>Travis</dc:creator>
      <pubDate>Wed, 08 Jul 2026 04:37:34 +0000</pubDate>
      <link>https://dev.to/thanhitsw/hello-devto-39hd</link>
      <guid>https://dev.to/thanhitsw/hello-devto-39hd</guid>
      <description>&lt;p&gt;Hi everyone!&lt;/p&gt;

&lt;p&gt;I'm Travis, a backend developer from Vietnam.&lt;/p&gt;

&lt;p&gt;I've been working with backend technologies for about two years, and over the past year I've also started learning React and React Native. Recently, I've become really interested in AI and how it can help developers build better software.&lt;/p&gt;

&lt;p&gt;I'm still a junior developer, which means I'm learning something new almost every day. Sometimes I solve problems, sometimes I get stuck for hours—but every challenge teaches me something valuable.&lt;/p&gt;

&lt;p&gt;I joined Dev.to because I want to learn from experienced developers, share what I discover, and document my journey as I grow.&lt;/p&gt;

&lt;p&gt;Here are some topics I'll be writing about:&lt;/p&gt;

&lt;p&gt;Backend development and system design fundamentals&lt;br&gt;
React &amp;amp; React Native&lt;br&gt;
AI tools and developer workflows&lt;br&gt;
Debugging stories and lessons learned&lt;br&gt;
Things I wish I had known earlier&lt;/p&gt;

&lt;p&gt;I hope my posts can help other developers who are on a similar journey.&lt;/p&gt;

&lt;p&gt;If you have advice, feedback, or just want to connect, feel free to leave a comment.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>backend</category>
      <category>beginners</category>
      <category>community</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
