<?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>Forem: iva2xn</title>
    <description>The latest articles on Forem by iva2xn (@iva2xn).</description>
    <link>https://forem.com/iva2xn</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3228783%2Feb045167-814b-4618-a7ed-36aba7b722b1.png</url>
      <title>Forem: iva2xn</title>
      <link>https://forem.com/iva2xn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/iva2xn"/>
    <language>en</language>
    <item>
      <title>I Built an AI Fitness Coach with the Gemini API and React</title>
      <dc:creator>iva2xn</dc:creator>
      <pubDate>Mon, 10 Nov 2025 14:18:24 +0000</pubDate>
      <link>https://forem.com/iva2xn/i-built-an-ai-fitness-coach-with-the-gemini-api-and-react-3jac</link>
      <guid>https://forem.com/iva2xn/i-built-an-ai-fitness-coach-with-the-gemini-api-and-react-3jac</guid>
      <description>&lt;p&gt;&lt;em&gt;From a personal pain point to a fully-featured web app. A deep dive into building an AI-powered fitness coach using Gemini's multimodal capabilities, structured JSON, and a privacy-first frontend.&lt;/em&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.amazonaws.com%2Fuploads%2Farticles%2Facz09wd2qko3k06rgere.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.amazonaws.com%2Fuploads%2Farticles%2Facz09wd2qko3k06rgere.png" alt=" " width="800" height="812"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hardest Part is Starting
&lt;/h2&gt;

&lt;p&gt;Getting into fitness is intimidating. The gym feels like a stage, and every exercise comes with a nagging question: "Am I even doing this right?"&lt;/p&gt;

&lt;p&gt;I was lucky—my cousins were experienced lifters who guided me through those first uncertain steps. They showed me what to do, how to do it, and made the beginning feel far less overwhelming. That experience sparked an idea: what if I could build an app that offered that same guidance? An AI partner that could help anyone start their fitness journey with confidence instead of confusion.&lt;/p&gt;

&lt;p&gt;That idea became &lt;strong&gt;CloudFitness&lt;/strong&gt;, an AI-powered fitness coach built to run entirely in the browser. Here's how I built it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it Does: Meet Your AI Fitness Partner
&lt;/h2&gt;

&lt;p&gt;CloudFitness is designed to guide you through every stage of your journey with four core tools.&lt;/p&gt;

&lt;h4&gt;
  
  
  AI Form Coach
&lt;/h4&gt;

&lt;p&gt;Upload a video of an exercise, and Gemini analyzes it frame-by-frame. It doesn't just list mistakes; it identifies the single most important fix you need and gives you a simple, actionable correction plan, complete with encouragement.&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.amazonaws.com%2Fuploads%2Farticles%2Fb5mds7qfefgnzyd2v0j7.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.amazonaws.com%2Fuploads%2Farticles%2Fb5mds7qfefgnzyd2v0j7.png" alt=" " width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Personalized Starter Plan
&lt;/h4&gt;

&lt;p&gt;New to the gym? Answer a few questions about your goals, body, and lifestyle, and the AI generates a customized 4-week starter plan. It includes a full workout split and a basic nutrition guide to get you moving in the right direction.&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.amazonaws.com%2Fuploads%2Farticles%2F936zzeqlxnuuvvx11b0c.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.amazonaws.com%2Fuploads%2Farticles%2F936zzeqlxnuuvvx11b0c.png" alt=" " width="800" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Interactive Progress Book
&lt;/h4&gt;

&lt;p&gt;Log your daily photos, weight, and notes. The app transforms your entries into a dynamic, satisfying flip-book that visually captures your transformation over time.&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.amazonaws.com%2Fuploads%2Farticles%2Fmhjjo7n8sstcx1g81zwo.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.amazonaws.com%2Fuploads%2Farticles%2Fmhjjo7n8sstcx1g81zwo.png" alt=" " width="800" height="812"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Activity Dashboard
&lt;/h4&gt;

&lt;p&gt;The homepage keeps you motivated with a GitHub-style consistency graph and gives you quick access to every tool, making your progress easy to track and understand at a glance.&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.amazonaws.com%2Fuploads%2Farticles%2F3e8lmyzq2wdsa60pqb7c.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.amazonaws.com%2Fuploads%2Farticles%2F3e8lmyzq2wdsa60pqb7c.png" alt=" " width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It: The Tech Stack
&lt;/h2&gt;

&lt;p&gt;CloudFitness is built on a modern, privacy-focused tech stack designed for speed and reliability.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Frontend:&lt;/strong&gt; &lt;strong&gt;React&lt;/strong&gt; and &lt;strong&gt;TypeScript&lt;/strong&gt; form the foundation, providing a clean, maintainable, and type-safe interface. &lt;strong&gt;Tailwind CSS&lt;/strong&gt; makes styling a breeze, keeping the design responsive and dark-mode-ready right out of the box.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The AI Brain:&lt;/strong&gt; The &lt;strong&gt;Google Gemini API&lt;/strong&gt; is the star of the show. We use its multimodal capabilities to send a sequence of video frames for analysis. But the real game-changer is its support for &lt;strong&gt;structured JSON output&lt;/strong&gt;. We can force the AI's response to fit a specific schema, which makes the data predictable and incredibly easy to work with on the frontend.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Privacy-First Data:&lt;/strong&gt; All user data—reports, progress photos, and notes—stays on the device. We use &lt;strong&gt;IndexedDB&lt;/strong&gt; (via the simple &lt;code&gt;idb&lt;/code&gt; library) to ensure complete privacy and full offline access. Nothing is ever sent to a server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The User Experience:&lt;/strong&gt; To make the app feel polished, I built a few custom UI features, including a smooth video trimmer with draggable handles, animated report visuals using SVG, and the &lt;code&gt;react-pageflip&lt;/code&gt; library for that tactile progress book experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Toughest Rep: Refining the AI Coach's Eye&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The biggest challenge was teaching the AI to be a &lt;em&gt;nuanced&lt;/em&gt; coach. Early on, the feedback was too generic. It took dozens of prompt iterations to get Gemini to behave like a real kinesiologist—one who understands that "perfect" form varies by person and that feedback should be encouraging, not demoralizing.&lt;/p&gt;

&lt;p&gt;The breakthrough came from instructing the AI to focus on the &lt;strong&gt;single most important correction&lt;/strong&gt;. Instead of overwhelming the user with a list of ten minor issues, it hones in on the one thing that will make the biggest difference in their safety and performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Personal Best: What I'm Proud Of&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m incredibly proud of the depth and quality of the AI's analysis. It goes beyond just spotting errors. It delivers constructive, safe, and genuinely encouraging feedback that feels like it’s coming from a real coach who wants you to succeed. It praises what you're doing well before offering a clear, step-by-step plan to improve. That positive reinforcement loop is something I think is missing from a lot of automated tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Biggest Takeaway: Gemini's Secret Weapon&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If there's one thing I learned, it's that Gemini’s structured JSON output is a superpower for building reliable AI apps.&lt;/p&gt;

&lt;p&gt;Before, you'd have to pray the model's text response was parseable. Now, you can define a schema and guarantee the output will be a clean, usable JSON object every single time. This feature alone saved me countless hours of development and debugging.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Next Set: What's Next for CloudFitness&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is just the beginning. The next major feature is to introduce &lt;strong&gt;real-time feedback&lt;/strong&gt; using the &lt;strong&gt;Gemini Live API&lt;/strong&gt;. Imagine getting instant, audio-based form corrections through your device’s camera &lt;em&gt;while you're exercising&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Alongside that, I'm expanding the exercise library to cover more movements—from yoga and HIIT to advanced weightlifting—so the AI can coach an even broader range of workouts with precision.&lt;/p&gt;

&lt;p&gt;Thanks for reading! I hope this inspires you to build something amazing with AI.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
      <category>gcp</category>
    </item>
    <item>
      <title>Thrilled to launch Cloudfitness AI for my Google Cloud Run Hackathon!</title>
      <dc:creator>iva2xn</dc:creator>
      <pubDate>Mon, 10 Nov 2025 14:07:47 +0000</pubDate>
      <link>https://forem.com/iva2xn/thrilled-to-launch-cloudfitness-ai-for-my-google-cloud-run-hackathon-210i</link>
      <guid>https://forem.com/iva2xn/thrilled-to-launch-cloudfitness-ai-for-my-google-cloud-run-hackathon-210i</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2Fd9sx0256a1c3irjm7nko.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.amazonaws.com%2Fuploads%2Farticles%2Fd9sx0256a1c3irjm7nko.png" alt=" " width="800" height="812"&gt;&lt;/a&gt;&lt;br&gt;
This app uses the Gemini API to analyze your exercise form from a video and help you train smarter and safer.&lt;/p&gt;

&lt;p&gt;Developing in AI Studio has been an absolute joy. It’s amazing how quickly you can build a performant, responsive app and deploy it instantly to Google Cloud Run. From concept to a live URL in no time!&lt;/p&gt;

&lt;h1&gt;
  
  
  AI #Fitness #WebDev #GoogleCloud #Gemini #JavaScript #React
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Bolt hackathon participants? Anyone?</title>
      <dc:creator>iva2xn</dc:creator>
      <pubDate>Sat, 31 May 2025 10:52:16 +0000</pubDate>
      <link>https://forem.com/iva2xn/bolt-hackathon-participants-anyone-3dao</link>
      <guid>https://forem.com/iva2xn/bolt-hackathon-participants-anyone-3dao</guid>
      <description>&lt;p&gt;New here but I love the free stuff&lt;/p&gt;

</description>
      <category>hackathon</category>
    </item>
  </channel>
</rss>
