<?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: Karan</title>
    <description>The latest articles on DEV Community by Karan (@techgeniuskaran).</description>
    <link>https://dev.to/techgeniuskaran</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%2F1867263%2F3e1a21dd-ef29-44cb-95f4-a227e7e0b47d.jpeg</url>
      <title>DEV Community: Karan</title>
      <link>https://dev.to/techgeniuskaran</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techgeniuskaran"/>
    <language>en</language>
    <item>
      <title>Claude Code Broke My App Twice Before Finally Fixing It 😭</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Wed, 17 Jun 2026 06:40:16 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/claude-code-broke-my-app-twice-before-finally-fixing-it-84j</link>
      <guid>https://dev.to/techgeniuskaran/claude-code-broke-my-app-twice-before-finally-fixing-it-84j</guid>
      <description>&lt;p&gt;Hey everyone,&lt;/p&gt;

&lt;p&gt;To pick up where I left off in my &lt;a href="https://dev.to/techgeniuskaran/i-let-claude-code-build-my-gym-scheduler-app-heres-what-happened-2eeg"&gt;previous post&lt;/a&gt;, everything was working smoothly in my Gym Scheduler app.&lt;/p&gt;

&lt;p&gt;The login worked. The schedule worked. The deployment worked.&lt;/p&gt;

&lt;p&gt;Life was good 😎&lt;/p&gt;

&lt;p&gt;Until... I decided to add a new feature.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Feature That Started It All 💪
&lt;/h2&gt;

&lt;p&gt;I wanted users to be able to create and manage &lt;strong&gt;multiple workout programs&lt;/strong&gt; depending on their goals.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Push Pull Legs (PPL)&lt;/li&gt;
&lt;li&gt;Upper / Lower&lt;/li&gt;
&lt;li&gt;Full Body&lt;/li&gt;
&lt;li&gt;Strength-Focused Program&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;One simple schedule&lt;/td&gt;
&lt;td&gt;Multiple programs users could easily switch between&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fzru19ytb2wf5lozvjzqc.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%2Fzru19ytb2wf5lozvjzqc.png" alt="Programs dropdown list" width="402" height="353"&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.amazonaws.com%2Fuploads%2Farticles%2Fgn2au7ta0tqwqmd9rq82.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%2Fgn2au7ta0tqwqmd9rq82.png" alt="New program popup" width="605" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simple enough, right?&lt;/p&gt;

&lt;p&gt;Yeah... not exactly 😅&lt;/p&gt;




&lt;h2&gt;
  
  
  Claude Had a Plan 📋
&lt;/h2&gt;

&lt;p&gt;Of course, I turned to Claude.&lt;/p&gt;

&lt;p&gt;I started by creating a detailed implementation plan and adding it to my &lt;code&gt;planning.md&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;After reviewing everything, Claude confidently told me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Looks good, let's implement it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Perfect. Everything seemed to be going great.&lt;/p&gt;

&lt;p&gt;Claude started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating the necessary files&lt;/li&gt;
&lt;li&gt;Installing required packages&lt;/li&gt;
&lt;li&gt;Updating the database logic&lt;/li&gt;
&lt;li&gt;Writing the code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was feeling pretty confident.&lt;/p&gt;

&lt;p&gt;And then I made my biggest mistake.&lt;/p&gt;




&lt;h2&gt;
  
  
  I Let Claude Run Unsupervised 😭
&lt;/h2&gt;

&lt;p&gt;The code looked fine. The plan looked fine. Everything &lt;strong&gt;seemed&lt;/strong&gt; fine.&lt;/p&gt;

&lt;p&gt;But when I ran the project locally...&lt;/p&gt;

&lt;p&gt;everything fell apart.&lt;/p&gt;




&lt;h2&gt;
  
  
  Everything Broke 💀
&lt;/h2&gt;

&lt;p&gt;Instead of getting a shiny new program-switching feature, I got:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ My old schedule disappeared&lt;/li&gt;
&lt;li&gt;❌ The styling changed&lt;/li&gt;
&lt;li&gt;❌ The dropdown was missing&lt;/li&gt;
&lt;li&gt;❌ The feature didn't even exist
I just sat there staring at the screen thinking:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;"What on earth happened?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Attempt #2 😭
&lt;/h2&gt;

&lt;p&gt;Naturally, I asked Claude to review the code.&lt;/p&gt;

&lt;p&gt;A few moments later:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Everything looks good 🙂"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;it broke the app again&lt;/strong&gt; 😭&lt;/p&gt;

&lt;p&gt;At this point, I wasn't sure whether to laugh or cry.&lt;/p&gt;




&lt;h2&gt;
  
  
  Time To Take Control 🚨
&lt;/h2&gt;

&lt;p&gt;I finally decided to &lt;strong&gt;stop trusting Claude blindly&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;First, I reverted all the changes.&lt;/p&gt;

&lt;p&gt;Then I started approaching the problem differently:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cleared the conversation context&lt;/li&gt;
&lt;li&gt;Explained the expected behavior more clearly&lt;/li&gt;
&lt;li&gt;Shared screenshots&lt;/li&gt;
&lt;li&gt;Updated the implementation plan&lt;/li&gt;
&lt;li&gt;Narrowed down what was actually broken&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And suddenly, things started making sense.&lt;/p&gt;

&lt;p&gt;This time Claude rewrote the affected files differently. The implementation looked cleaner. The logic looked better.&lt;/p&gt;

&lt;p&gt;And for the first time...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;it actually worked&lt;/strong&gt; 🎉&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned 🤔
&lt;/h2&gt;

&lt;p&gt;This experience taught me something important.&lt;/p&gt;

&lt;p&gt;AI is incredibly powerful.&lt;/p&gt;

&lt;p&gt;But when it gets stuck, &lt;strong&gt;throwing more prompts at it usually isn't the solution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What helped was stepping back, understanding the problem myself, and giving better context.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The better I explained the issue, the better Claude's solutions became.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Turns out AI isn't a mind reader after all 😅&lt;/p&gt;




&lt;h2&gt;
  
  
  Feature Showcase 🚀
&lt;/h2&gt;

&lt;p&gt;After all that debugging, the app ended up much better than before.&lt;/p&gt;

&lt;p&gt;Some of the new additions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚖️ BMI Calculator&lt;/li&gt;
&lt;li&gt;🔥 Calorie Calculator&lt;/li&gt;
&lt;li&gt;📅 Current-Day Highlighting&lt;/li&gt;
&lt;li&gt;🔀 Exercise Reordering&lt;/li&gt;
&lt;li&gt;🗂️ Multiple Workout Programs&lt;/li&gt;
&lt;li&gt;✨ Better UI &amp;amp; UX&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.amazonaws.com%2Fuploads%2Farticles%2F65mbmeso43hocz125h2i.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%2F65mbmeso43hocz125h2i.png" alt="New tools on tools page" width="799" height="468"&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.amazonaws.com%2Fuploads%2Farticles%2Fcfcpfkjc8a0s8oo7h5kh.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%2Fcfcpfkjc8a0s8oo7h5kh.png" alt="Old navbar" width="800" height="81"&gt;&lt;/a&gt; to &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%2F9m5pqihwuytswiqob8sw.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%2F9m5pqihwuytswiqob8sw.png" alt="New navbar" width="794" height="33"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;At the end of the day, the feature &lt;strong&gt;did&lt;/strong&gt; work — despite all the stress it caused 😭&lt;/p&gt;

&lt;p&gt;And honestly, the app became much better because of it.&lt;/p&gt;

&lt;p&gt;The biggest lesson I took away from this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI can write code faster than most developers ever could.&lt;br&gt;
But developers still need to communicate clearly, think critically, and understand what they're building.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The code might be generated by AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The direction still comes from you.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Enjoyed this one? Drop a ❤️ and follow along — more parts coming soon! 🚀&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ai</category>
      <category>react</category>
      <category>claude</category>
    </item>
    <item>
      <title>I Let Claude Code Build My Gym Scheduler App. Here's What Happened. 🚀</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Thu, 11 Jun 2026 11:17:04 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/i-let-claude-code-build-my-gym-scheduler-app-heres-what-happened-2eeg</link>
      <guid>https://dev.to/techgeniuskaran/i-let-claude-code-build-my-gym-scheduler-app-heres-what-happened-2eeg</guid>
      <description>&lt;h2&gt;
  
  
  Every Project Starts With a Problem
&lt;/h2&gt;

&lt;p&gt;As most inventions or ideas begin, mine also started with a problem.&lt;/p&gt;

&lt;p&gt;For me, it was in the gym.&lt;/p&gt;

&lt;p&gt;I often found myself missing workouts here and there for various reasons — some completely beyond my control. That part is normal. Life happens.&lt;/p&gt;

&lt;p&gt;What I struggled with was figuring out how to &lt;strong&gt;recover&lt;/strong&gt; from it.&lt;/p&gt;

&lt;p&gt;Most people would simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If you missed Back Day, just do it tomorrow."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And yes, that works.&lt;/p&gt;

&lt;p&gt;But I've always liked having specific workouts on specific days. 'Monday will &lt;strong&gt;always&lt;/strong&gt; be my Chest Day' 😤&lt;/p&gt;

&lt;p&gt;That's when an idea hit me.&lt;/p&gt;

&lt;p&gt;What if I built a &lt;strong&gt;Gym Scheduler&lt;/strong&gt; that could intelligently reorganize the rest of the week whenever I missed a workout?&lt;/p&gt;

&lt;p&gt;The long-term vision is to eventually integrate AI so it can generate personalized workout adjustments based on a user's goals, schedule, and missed sessions.&lt;/p&gt;

&lt;p&gt;And since this problem affects me personally, it felt like the perfect project to build.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before Writing Code, We Planned
&lt;/h2&gt;

&lt;p&gt;One of the most valuable lessons my coding mentor taught me was this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Always plan before you build."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A surprising number of development problems can be avoided simply by thinking things through before touching the keyboard.&lt;/p&gt;

&lt;p&gt;This became even more important when working with powerful tools like Claude Code.&lt;/p&gt;

&lt;p&gt;My initial prompt was something along the lines of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to build a Gym Scheduler app. Let's brainstorm some ideas first. Ask me lots of questions and create a planning file where we can organize everything."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that's exactly what happened.&lt;/p&gt;

&lt;p&gt;What started as a simple idea quickly became a &lt;strong&gt;massive planning document&lt;/strong&gt; covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Database structure&lt;/li&gt;
&lt;li&gt;API routes&lt;/li&gt;
&lt;li&gt;Features&lt;/li&gt;
&lt;li&gt;Deployment strategy&lt;/li&gt;
&lt;li&gt;Build phases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before a single line of code was written, the entire project had a roadmap.&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%2Fx3kdnh3ylsa43x0mlvm6.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%2Fx3kdnh3ylsa43x0mlvm6.png" alt="Planning.md screenshot" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Honestly, I did not expect the planning file to become this huge 😅&lt;/p&gt;




&lt;h2&gt;
  
  
  Claude Became My Project Manager 😅
&lt;/h2&gt;

&lt;p&gt;Since I'm still a student developer with a lot left to learn, I didn't want Claude to simply &lt;strong&gt;write code for me&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I wanted it to &lt;strong&gt;teach me&lt;/strong&gt; as well.&lt;/p&gt;

&lt;p&gt;At several points, I even asked Claude to explain what it was doing and why it was doing it.&lt;/p&gt;

&lt;p&gt;One of my goals for this project was to better understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Object-Oriented Programming (OOP)&lt;/li&gt;
&lt;li&gt;SOLID Principles&lt;/li&gt;
&lt;li&gt;Application architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Claude suggested the following stack:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;React&lt;/td&gt;
&lt;td&gt;Frontend framework&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tailwind CSS&lt;/td&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MongoDB Atlas&lt;/td&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;But instead of blindly accepting the suggestion, I &lt;strong&gt;asked it to justify every choice&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Why React? Why MongoDB? Why not something else?&lt;/p&gt;

&lt;p&gt;This ended up being one of the most educational parts of the project — it helped me understand not just &lt;strong&gt;what&lt;/strong&gt; to use, but &lt;strong&gt;when&lt;/strong&gt; to use it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building It Phase by Phase
&lt;/h2&gt;

&lt;p&gt;Once the planning was complete, we finally started building.&lt;/p&gt;

&lt;p&gt;One thing I specifically asked Claude to do was &lt;strong&gt;avoid generating the entire application in one go&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead, I wanted it built &lt;strong&gt;phase by phase&lt;/strong&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%2F4km365uny17usx0ndf34.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%2F4km365uny17usx0ndf34.png" alt="Claude code terminal" width="799" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This turned out to be one of the best decisions of the entire project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits for me:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easier to learn&lt;/li&gt;
&lt;li&gt;Easier to understand&lt;/li&gt;
&lt;li&gt;Easier to debug&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Benefits for Claude:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smaller tasks&lt;/li&gt;
&lt;li&gt;Fewer mistakes&lt;/li&gt;
&lt;li&gt;Better code reviews&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At one point I even stopped everything just to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What exactly is a model?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And instead of throwing code at me, Claude &lt;strong&gt;explained the concept&lt;/strong&gt; and how it fit into the project.&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%2Fum4g4uty752cvqgn44po.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%2Fum4g4uty752cvqgn44po.png" alt="model explanation screenshot" width="748" height="99"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The learning part is always important, no matter how powerful AI becomes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Watching the App Come Alive ✨
&lt;/h2&gt;

&lt;p&gt;At first, all I could see was a blank page with the floating React-Vite logo.&lt;/p&gt;

&lt;p&gt;Not exactly exciting 😭&lt;/p&gt;

&lt;p&gt;Then slowly, feature by feature, the app started taking shape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A login system appeared&lt;/li&gt;
&lt;li&gt;Workout schedules started displaying correctly&lt;/li&gt;
&lt;li&gt;Exercises could be added and deleted&lt;/li&gt;
&lt;li&gt;Pages started connecting together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And suddenly something that had only existed inside a planning document was becoming a &lt;strong&gt;real application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I genuinely couldn't believe how much faster the development process felt compared to some of my earlier projects.&lt;/p&gt;

&lt;p&gt;For example, in a previous project, building a simple login system involved:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Watching a 1-hour YouTube tutorial&lt;/li&gt;
&lt;li&gt;Reading Firebase documentation&lt;/li&gt;
&lt;li&gt;Asking ChatGPT for help&lt;/li&gt;
&lt;li&gt;Getting even more errors 😭&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This time felt completely different.&lt;/p&gt;

&lt;p&gt;Of course... not everything went perfectly.&lt;/p&gt;




&lt;h2&gt;
  
  
  The "It Works On My Machine" Moment 😭
&lt;/h2&gt;

&lt;p&gt;After finally getting everything working locally, I deployed the application.&lt;/p&gt;

&lt;p&gt;And then immediately got hit with this:&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%2Ffl1kypg69bo6tadnjnhr.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%2Ffl1kypg69bo6tadnjnhr.png" alt="Google Auth error screenshot" width="798" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything worked perfectly on my computer. Production had other plans.&lt;/p&gt;

&lt;p&gt;After spending hours investigating the issue, I discovered the problem was hiding inside &lt;strong&gt;Google Cloud Console&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;My callback URI was only configured for &lt;code&gt;localhost&lt;/code&gt; and was missing the deployed Render URL.&lt;/p&gt;

&lt;p&gt;A tiny configuration mistake. Several hours of debugging. Classic developer experience 😭&lt;/p&gt;

&lt;p&gt;But eventually, after updating the configuration and redeploying, everything finally started working.&lt;/p&gt;




&lt;h2&gt;
  
  
  The First Version Wasn't Pretty... But It Worked 💪
&lt;/h2&gt;

&lt;p&gt;The first working version looked nothing like the version I use today.&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%2Ft94je9j2b04397cun3uc.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%2Ft94je9j2b04397cun3uc.png" alt="UI of Gym Scheduler" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There were no fancy tools, no advanced features, no polished UX, no AI scheduling.&lt;/p&gt;

&lt;p&gt;Just the basics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Add exercises&lt;/li&gt;
&lt;li&gt;✅ Delete exercises&lt;/li&gt;
&lt;li&gt;✅ Rename workout splits&lt;/li&gt;
&lt;li&gt;✅ Store schedules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And honestly? &lt;strong&gt;That was enough.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because it worked.&lt;/p&gt;

&lt;p&gt;For the first time, I had a functional application solving a real problem that I personally faced.&lt;/p&gt;

&lt;p&gt;And that felt amazing.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;The first version was functional — but it was also very rough.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Part 2&lt;/strong&gt;, I'll talk about how I transformed it from a simple scheduler into something much more polished by adding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple programs&lt;/li&gt;
&lt;li&gt;Exercise reordering&lt;/li&gt;
&lt;li&gt;Current-day highlighting&lt;/li&gt;
&lt;li&gt;BMI Calculator&lt;/li&gt;
&lt;li&gt;Calorie Calculator&lt;/li&gt;
&lt;li&gt;Better UI/UX&lt;/li&gt;
&lt;li&gt;And some fun gym-specific touches 😎&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unfortunately... waiting for me was the &lt;strong&gt;most frustrating bug&lt;/strong&gt; of the entire project so far 😭🙏&lt;/p&gt;

&lt;p&gt;See y'all in the next one 🚀&lt;/p&gt;

</description>
      <category>react</category>
      <category>ai</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>We Built a Real Volleyball Tournament Website Almost Entirely With AI 🏐🤖</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Thu, 21 May 2026 09:35:02 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/we-built-a-real-volleyball-tournament-website-almost-entirely-with-ai-1d6i</link>
      <guid>https://dev.to/techgeniuskaran/we-built-a-real-volleyball-tournament-website-almost-entirely-with-ai-1d6i</guid>
      <description>&lt;p&gt;Hey guys,&lt;/p&gt;

&lt;p&gt;Recently in my society, I attended an AI seminar session.&lt;br&gt;
At first, it honestly did not seem that useful 😅&lt;/p&gt;

&lt;p&gt;It was mostly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;general knowledge about AI chatbots&lt;/li&gt;
&lt;li&gt;the history of AI&lt;/li&gt;
&lt;li&gt;a few cool examples&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…but nothing that really stood out to me and my friend.&lt;/p&gt;

&lt;p&gt;Until the host casually mentioned something interesting:&lt;br&gt;
“Even students can now build and deploy apps using AI… and maybe even earn money from them.”&lt;/p&gt;

&lt;p&gt;Now THAT got us thinking 👀&lt;/p&gt;

&lt;p&gt;And somehow, within the next few minutes, we came up with the idea of building a volleyball tournament scoring and tracking website for our society tournament.&lt;/p&gt;

&lt;p&gt;The more we discussed it, the bigger the idea became:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live standings&lt;/li&gt;
&lt;li&gt;Match schedules&lt;/li&gt;
&lt;li&gt;Team tracking&lt;/li&gt;
&lt;li&gt;Admin dashboard&lt;/li&gt;
&lt;li&gt;Live score updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And somehow it slowly became a competition between me and my friend to see who could build the better app 😭&lt;/p&gt;

&lt;p&gt;A healthy competition, of course.&lt;/p&gt;

&lt;h2&gt;
  
  
  “This Should Take 2 Hours Max” 😅
&lt;/h2&gt;

&lt;p&gt;We genuinely thought this would be super easy.&lt;/p&gt;

&lt;p&gt;Our original plan was basically:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ask ChatGPT to generate a prompt&lt;/li&gt;
&lt;li&gt;Paste it into some AI app builder&lt;/li&gt;
&lt;li&gt;Add a few finishing touches&lt;/li&gt;
&lt;li&gt;Become millionaire startup founders overnight ✨&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Simple, right?&lt;/p&gt;

&lt;p&gt;Yeah… not exactly.&lt;br&gt;
I started by asking &lt;a href="https://chatgpt.com/" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt; to create a detailed master prompt for the app.&lt;br&gt;
It asked me everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;app purpose&lt;/li&gt;
&lt;li&gt;functionality&lt;/li&gt;
&lt;li&gt;design preferences&lt;/li&gt;
&lt;li&gt;tech stack&lt;/li&gt;
&lt;li&gt;features&lt;/li&gt;
&lt;li&gt;backend requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then it suggested using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://v0.app/" rel="noopener noreferrer"&gt;v0 by Vercel&lt;/a&gt; for generating the app&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://supabase.com/" rel="noopener noreferrer"&gt;Supabase&lt;/a&gt; for the backend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I copied the generated prompt into v0…&lt;br&gt;
…and within 5 minutes…&lt;br&gt;
BOOM 💥&lt;/p&gt;

&lt;p&gt;The app preview was ready.&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%2Fyj6hdkx8ha7jtf6edstk.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%2Fyj6hdkx8ha7jtf6edstk.png" alt="Preview of website" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The UI Looked Incredible 🚀
&lt;/h2&gt;

&lt;p&gt;Honestly, the UI looked WAY better than I expected.&lt;/p&gt;

&lt;p&gt;It had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;smooth transitions&lt;/li&gt;
&lt;li&gt;clean dashboards&lt;/li&gt;
&lt;li&gt;a modern tech-style design&lt;/li&gt;
&lt;li&gt;beautifully designed standings cards&lt;/li&gt;
&lt;li&gt;proper page linking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything looked polished.&lt;/p&gt;

&lt;p&gt;So polished, in fact, that I genuinely wanted to deploy it before the backend even existed 😭&lt;/p&gt;

&lt;p&gt;I sat there admiring the preview for a while…&lt;br&gt;
…and then reality hit.&lt;br&gt;
Almost nothing actually worked.💀&lt;/p&gt;

&lt;p&gt;I thought:&lt;br&gt;
“No problem. Once I connect the backend, everything should work.”&lt;/p&gt;

&lt;p&gt;Yeah… no&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spreadsheet Nightmare 📊😭
&lt;/h2&gt;

&lt;p&gt;The backend part of the project was honestly chaos.&lt;/p&gt;

&lt;p&gt;The existing tournament spreadsheets were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;poorly labeled&lt;/li&gt;
&lt;li&gt;inconsistent&lt;/li&gt;
&lt;li&gt;randomly formatted&lt;/li&gt;
&lt;li&gt;confusing to read&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Human-made spreadsheets are terrifying sometimes 😭&lt;br&gt;
But when in doubt…&lt;br&gt;
&lt;strong&gt;Get the Claude out.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used &lt;u&gt;Claude Desktop&lt;/u&gt; and uploaded all the existing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;score sheets&lt;/li&gt;
&lt;li&gt;team lists&lt;/li&gt;
&lt;li&gt;schedules&lt;/li&gt;
&lt;li&gt;tournament data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I asked it to reorganize everything properly into structured Excel files that could directly fit into my Supabase tables.&lt;/p&gt;

&lt;p&gt;And somehow…&lt;br&gt;
…it actually worked REALLY well.&lt;/p&gt;

&lt;p&gt;After a little back and forth, the data was finally clean enough to import into the database.&lt;/p&gt;

&lt;p&gt;Honestly, AI saved me HOURS here.&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%2Ftmik3i1nsts19jk8ndzd.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%2Ftmik3i1nsts19jk8ndzd.png" alt="empty supabase table showing import button option" width="342" height="206"&gt;&lt;/a&gt;&lt;br&gt;
                              to&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%2Fjniul9pdesduxg4rnti5.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%2Fjniul9pdesduxg4rnti5.png" alt="supabase table filled with data" width="799" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  “Fixed the Issue” …Except It Didn’t 😭
&lt;/h2&gt;

&lt;p&gt;At this point, I thought:&lt;br&gt;
“Okay, database is ready. Surely the app works now.”&lt;br&gt;
Nope.&lt;/p&gt;

&lt;p&gt;The admin dashboard was completely broken 😅 Buttons existed.&lt;br&gt;
They looked functional. They even had hover effects.&lt;br&gt;
But clicking them did absolutely nothing 💀&lt;/p&gt;

&lt;p&gt;Classic AI-generated functionality.&lt;/p&gt;

&lt;p&gt;So I connected the project to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I cloned the repo locally and brought in my most trusted debugging partner:&lt;br&gt;
&lt;strong&gt;Claude Code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And honestly, even Claude struggled a bit here 😭&lt;/p&gt;

&lt;p&gt;It kept:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“fixing” the issue&lt;/li&gt;
&lt;li&gt;correcting itself&lt;/li&gt;
&lt;li&gt;generating new fixes&lt;/li&gt;
&lt;li&gt;making me push code changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…only for absolutely nothing to happen.&lt;/p&gt;

&lt;p&gt;At one point it genuinely became:&lt;/p&gt;

&lt;p&gt;“Trust me bro, this fix will work.” 😭&lt;/p&gt;

&lt;p&gt;Eventually, I realized I needed to provide WAY more context and explain the issue more clearly instead of expecting AI to magically understand everything.&lt;/p&gt;

&lt;p&gt;After narrowing things down properly…&lt;br&gt;
…it turned out to be a package issue all along.🥲🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  The Moment Everything Finally Worked ✨
&lt;/h2&gt;

&lt;p&gt;After fixing the package issue, I pushed the changes to GitHub.&lt;/p&gt;

&lt;p&gt;And within a minute…&lt;/p&gt;

&lt;p&gt;everything started working.&lt;/p&gt;

&lt;p&gt;It genuinely felt like a miracle 😭&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The standings updated correctly.&lt;/li&gt;
&lt;li&gt;The right teams had the right points.&lt;/li&gt;
&lt;li&gt;The fixtures displayed properly.&lt;/li&gt;
&lt;li&gt;The schedules synced correctly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything was &lt;strong&gt;LIVE&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And the best part?&lt;/p&gt;

&lt;p&gt;People actually started using it during the tournament 🏐&lt;/p&gt;

&lt;p&gt;I shared the website in our volleyball group and received a lot of positive feedback, which honestly felt amazing.&lt;/p&gt;

&lt;p&gt;At that moment, it felt like:&lt;br&gt;
“Wait… I actually built something REAL.”&lt;/p&gt;

&lt;p&gt;Meanwhile my friend, who was building his version on Lovable, could only get basic scoring functionality working 😎💪&lt;/p&gt;

&lt;p&gt;So technically…&lt;br&gt;
…I win.&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%2Fmzoabcwnk93werp5t0g3.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%2Fmzoabcwnk93werp5t0g3.png" alt="standings page of website" width="800" height="440"&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.amazonaws.com%2Fuploads%2Farticles%2Fb1nfqcnydt1vgmetdc6a.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%2Fb1nfqcnydt1vgmetdc6a.png" alt="admin live scoring dashboard" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This should probably be your climax image section.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Project Taught Me About AI Coding 🤖
&lt;/h2&gt;

&lt;p&gt;This project completely changed how I look at AI-assisted development.&lt;br&gt;
AI is genuinely an insanely powerful time-saving tool.&lt;br&gt;
But…&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI only saves time if the developer knows how to guide it properly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;debugging knowledge&lt;/li&gt;
&lt;li&gt;context sharing&lt;/li&gt;
&lt;li&gt;proper prompting&lt;/li&gt;
&lt;li&gt;understanding systems&lt;/li&gt;
&lt;li&gt;identifying errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…still matter A LOT.&lt;/p&gt;

&lt;p&gt;Because the truth is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI can generate code quickly. But building a usable real-world app still requires developer thinking.&lt;br&gt;
And honestly, I think that’s the most exciting part.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;AI is not replacing developers.&lt;br&gt;
It’s making developers faster 🚀&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This project started as:&lt;/p&gt;

&lt;p&gt;“Let’s see if AI can build us a cool website.”&lt;/p&gt;

&lt;p&gt;But it ended up teaching me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;backend integration&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;li&gt;deployment&lt;/li&gt;
&lt;li&gt;database management&lt;/li&gt;
&lt;li&gt;AI prompting&lt;/li&gt;
&lt;li&gt;and how important developer guidance still is&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And somehow…&lt;br&gt;
what started as a random society seminar idea became a fully deployed tournament website people actually used 😅&lt;/p&gt;

&lt;p&gt;Definitely one of the coolest projects I’ve worked on so far.&lt;/p&gt;

&lt;p&gt;See you guys in the next one 🚀&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>development</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I Searched for Internships… and Ended Up Contributing to Open Source Instead 🚀</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Thu, 14 May 2026 08:47:53 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/i-searched-for-internships-and-ended-up-contributing-to-open-source-instead-2ilk</link>
      <guid>https://dev.to/techgeniuskaran/i-searched-for-internships-and-ended-up-contributing-to-open-source-instead-2ilk</guid>
      <description>&lt;p&gt;Hey everyone,&lt;/p&gt;

&lt;p&gt;These last few weeks of my summer break made me realize that I should probably try finding and completing an internship — even if it was just for 2 weeks.&lt;/p&gt;

&lt;p&gt;But while searching around and talking with Claude about internships, it suggested something even better:&lt;/p&gt;

&lt;p&gt;🙌&lt;em&gt;&lt;strong&gt;Contributing to open-source projects.&lt;/strong&gt;&lt;/em&gt;🙌&lt;/p&gt;

&lt;p&gt;Now, I know many developers reading this probably discovered open source years ago 😅&lt;br&gt;
But for me, this was something completely new and honestly really exciting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding My First Project
&lt;/h2&gt;

&lt;p&gt;I started digging deeper into this whole open-source world and quickly realized there are actually some really beginner-friendly websites to get started.&lt;/p&gt;

&lt;p&gt;These were the two websites Claude suggested to me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://firstcontributions.github.io/#project-list" rel="noopener noreferrer"&gt;First Contributions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://goodfirstissue.dev/" rel="noopener noreferrer"&gt;Good First Issue&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that’s when I found:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/physicshub/physicshub.github.io" rel="noopener noreferrer"&gt;PhysicsHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s a really neat web app that helps students study physics using interactive simulations and visualizations.&lt;/p&gt;

&lt;p&gt;As a physics student myself, this honestly felt like the perfect project to contribute to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I could improve my coding skills&lt;/li&gt;
&lt;li&gt;understand some physics concepts visually&lt;/li&gt;
&lt;li&gt;and contribute something useful at the same time
&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%2F4r34zrzjav3sqf7xxe7u.png" alt="Homepage of PhysicsHub" width="800" height="336"&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%2Fgilauhijgk5z1ldz4uyo.png" alt="A simulation in PhysicsHub" width="800" height="417"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Actually Making My First Contribution
&lt;/h2&gt;

&lt;p&gt;I knew this project wasn’t some massive large-scale application or anything like that.&lt;/p&gt;

&lt;p&gt;But honestly, that’s the whole point.&lt;/p&gt;

&lt;p&gt;You can’t start huge immediately.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Every small contribution matters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I got started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Forked the repository&lt;/li&gt;
&lt;li&gt;Cloned it locally&lt;/li&gt;
&lt;li&gt;Opened it in VS Code&lt;/li&gt;
&lt;li&gt;Installed Claude Code&lt;/li&gt;
&lt;li&gt;Started identifying issues&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And this part genuinely surprised me.&lt;/p&gt;

&lt;p&gt;I simply asked Claude to help me make my first contribution.&lt;/p&gt;

&lt;p&gt;Within seconds, it generated a CLAUDE_REPORT file that contained:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bugs ranked by priority&lt;/li&gt;
&lt;li&gt;difficulty levels&lt;/li&gt;
&lt;li&gt;possible causes&lt;/li&gt;
&lt;li&gt;and even suggested fixes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Claude continues to amaze me yet again 😍😅&lt;/p&gt;

&lt;p&gt;I started tackling some low-priority issues one by one and managed to fix 4 issues within my first hour before sending my first pull request.&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%2Fir91nb4d795oceynvnys.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%2Fir91nb4d795oceynvnys.png" alt="Claude_report file" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The issues themselves were small, but they were actual real-world fixes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incorrect labels&lt;/li&gt;
&lt;li&gt;Flexible package versions&lt;/li&gt;
&lt;li&gt;Unit fixes&lt;/li&gt;
&lt;li&gt;Mathematical calculation corrections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing revolutionary 😅&lt;br&gt;
But that’s exactly what made this experience feel approachable for me.&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%2Fgxxe2nf67fkumi37elo9.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%2Fgxxe2nf67fkumi37elo9.png" alt="Pull request merged on github" width="800" height="259"&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.amazonaws.com%2Fuploads%2Farticles%2Fqobgkciulz6222ciftzj.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%2Fqobgkciulz6222ciftzj.png" alt="Pull request merged" width="800" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Best Part
&lt;/h2&gt;

&lt;p&gt;The satisfaction you get from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;adding changed files&lt;/li&gt;
&lt;li&gt;committing them&lt;/li&gt;
&lt;li&gt;pushing your changes&lt;/li&gt;
&lt;li&gt;opening a pull request&lt;/li&gt;
&lt;li&gt;and then seeing it get merged&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…it’s honestly hard to describe.&lt;/p&gt;

&lt;p&gt;And of course, who can forget the beautiful green contribution boxes on GitHub 😅&lt;/p&gt;

&lt;p&gt;Seeing those slowly appear somehow makes everything feel more real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;I’ll definitely continue contributing to more open-source projects now — especially after realizing how enjoyable and beginner-friendly it can actually be.&lt;/p&gt;

&lt;p&gt;I mainly wanted to document my first step into the open-source world and hopefully help other beginners realize that contributions do not have to be huge to matter.&lt;/p&gt;

&lt;p&gt;Sometimes even small fixes are enough to get started.&lt;/p&gt;

&lt;p&gt;And honestly… starting is probably the hardest part.&lt;/p&gt;

&lt;p&gt;You’ll definitely be hearing more from me about open-source contributions — especially when I find another fun project to work on 🚀&lt;/p&gt;

&lt;p&gt;See you guys!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>github</category>
      <category>claude</category>
    </item>
    <item>
      <title>🏗️ Still Planning — But This Time It Actually Matters</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Tue, 14 Apr 2026 10:23:49 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/still-planning-but-this-time-it-actually-matters-1k5c</link>
      <guid>https://dev.to/techgeniuskaran/still-planning-but-this-time-it-actually-matters-1k5c</guid>
      <description>&lt;p&gt;Hey guys,&lt;/p&gt;

&lt;p&gt;Still stuck in planning mode 😅. But these decisions may be more worthwhile than they seem.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔀 The Monolith Decision
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Monolithic architecture&lt;/strong&gt; is simply a software development model where the entire app lives in a single codebase. Pretty much the traditional setup most beginner developers follow naturally without even realising it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microservices&lt;/strong&gt; on the other hand is a distributed architecture where several individual services connect and communicate with each other to function as one application. Scalability is the main reason why microservices is so widely adopted — companies like &lt;strong&gt;Netflix, Amazon, Uber and Spotify&lt;/strong&gt; all run on it. Imagine Netflix operating on a single server and a single codebase. Debugging would be a nightmare, maintenance would be chaos, and one bad bug could potentially take down the entire platform for millions of users. Not ideal. 😬&lt;/p&gt;

&lt;p&gt;For me though, the choice was obvious — &lt;strong&gt;monolith.&lt;/strong&gt; No plans to massively scale this app, a single codebase keeps things simple, and it's cost-effective.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sometimes the boring choice is the right one.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📐 SOLID Principles
&lt;/h2&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%2Fko63re9t1s2p57z5ld3n.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%2Fko63re9t1s2p57z5ld3n.png" alt="A list of the SOLID principles" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A great man named &lt;strong&gt;Robert C. Martin&lt;/strong&gt; created the SOLID principles — giving us developers yet another thing to study😒. Just kidding, it's genuinely useful. &lt;/p&gt;

&lt;p&gt;In short, following SOLID makes your code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Maintainable&lt;/strong&gt; — easier to update and refactor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable&lt;/strong&gt; — grows with fewer issues&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reusable&lt;/strong&gt; — modular and decoupled&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable&lt;/strong&gt; — cleaner and easier to understand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are 5 principles in total — S, O, L, I, D. I studied all five. I applied two.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;And that was intentional.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Since my app is small with minimal business logic, forcing all 5 would just be over-engineering for the sake of it. Good principles applied in the wrong context are still bad decisions.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 How Claude Helped Apply It
&lt;/h2&gt;

&lt;p&gt;Once I studied the principles, I asked Claude Code to analyse my project and apply &lt;br&gt;
SOLID to the planning. What it did was clean and practical.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;Single Responsibility (S)&lt;/strong&gt;, it wasn't just about separating files — it also &lt;br&gt;
meant breaking down logic into focused modular functions rather than having one &lt;br&gt;
function trying to do three things at once. Models only hold Mongoose schemas. &lt;br&gt;
Routes only handle HTTP. Middleware only handles authentication. &lt;em&gt;Nothing overlaps.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;Interface Segregation (I)&lt;/strong&gt;, it split the API folder by domain — &lt;br&gt;
&lt;code&gt;scheduleApi.js&lt;/code&gt; and &lt;code&gt;authApi.js&lt;/code&gt; became separate concerns — so different parts &lt;br&gt;
of the app only import what they actually need, rather than pulling from one &lt;br&gt;
bloated module that knows too much.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;O, L and D&lt;/strong&gt; — Claude explicitly flagged these as unnecessary for this project. The business logic is too minimal to justify them. The philosophy was &lt;br&gt;
simple — &lt;em&gt;use SOLID where it helps, skip it where it doesn't.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🙏 The Mentor Behind All This
&lt;/h2&gt;

&lt;p&gt;None of this planning rigour came from nowhere. I have been fortunate enough to &lt;br&gt;
have a mentor — a senior professional at &lt;strong&gt;GoDaddy&lt;/strong&gt; — who has been guiding me &lt;br&gt;
through these concepts completely voluntarily. Having someone with real industry &lt;br&gt;
experience push you to think about architecture and principles &lt;em&gt;before&lt;/em&gt; touching &lt;br&gt;
code is something most student developers don't get. Genuinely grateful for it. ✨&lt;/p&gt;

&lt;h2&gt;
  
  
  👀 What's Next
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;OOP is on the study list&lt;/strong&gt; — the 4 pillars, how they connect to this project, &lt;br&gt;
and then finally, &lt;em&gt;actually building something.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The planning era is almost over. See you on the other side. 🚀&lt;/p&gt;

</description>
      <category>programming</category>
      <category>solidprinciples</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Before Writing a Single Line of Code — Planning My Gym App🏋️</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Sat, 28 Mar 2026 06:27:01 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/before-writing-a-single-line-of-code-planning-my-gym-app-27m9</link>
      <guid>https://dev.to/techgeniuskaran/before-writing-a-single-line-of-code-planning-my-gym-app-27m9</guid>
      <description>&lt;p&gt;Hey fellow devs, 👋&lt;/p&gt;

&lt;p&gt;Moving on from AI chaos, this time it's all about &lt;strong&gt;learning something new.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What I'm Building
&lt;/h2&gt;

&lt;p&gt;I'm building a simple &lt;strong&gt;gym schedule app&lt;/strong&gt; — entirely with the help of Claude.&lt;/p&gt;

&lt;p&gt;The app lets users set a weekly schedule from Monday to Sunday, with their gym &lt;br&gt;
timings, workout split, exercises, reps and sets. Nothing fancy — this is purely &lt;br&gt;
a practice project. But the plan is to build it &lt;em&gt;right&lt;/em&gt;, not just fast.&lt;/p&gt;

&lt;p&gt;Since vibe coding is clearly the future, getting comfortable with it early felt &lt;br&gt;
like a smart move. 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  📊 Sequence Diagrams — What Even Are They?
&lt;/h2&gt;

&lt;p&gt;A sequence diagram maps out how different parts of a system interact with each &lt;br&gt;
other in a specific order over time.&lt;/p&gt;

&lt;p&gt;Think of it like a WhatsApp conversation — you can see exactly who said what, to whom, and in what order.&lt;/p&gt;

&lt;p&gt;Here's the sequence diagram I made for my app:&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%2Fyuqtlufvua5q1h5oe7g6.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%2Fyuqtlufvua5q1h5oe7g6.png" alt="Gym schedule sequence diagram" width="800" height="1097"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The first step is identifying your &lt;strong&gt;actors&lt;/strong&gt; — the objects that interact with &lt;br&gt;
the system. For my app this was straightforward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;User&lt;/strong&gt; — inputs the schedule&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;UI&lt;/strong&gt; — handles what the user sees and does
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Database&lt;/strong&gt; — saves and retrieves the data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Simple enough. But here's where it gets interesting.&lt;/p&gt;

&lt;p&gt;Good developers don't just map out the &lt;em&gt;ideal&lt;/em&gt; scenario. They think about &lt;br&gt;
&lt;strong&gt;everything that could go wrong.&lt;/strong&gt; Because it's an imperfect world.&lt;/p&gt;

&lt;p&gt;For example — what happens if the user tries to save a workout day without &lt;br&gt;
filling in all the fields? No exercises, no reps, just an empty entry hitting &lt;br&gt;
the database. The diagram needs to account for that validation step, otherwise &lt;br&gt;
that's a bug waiting to happen from day one.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thinking about failure early is what separates planned apps from messy ones.&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  🗺️ Why Planning Actually Matters
&lt;/h2&gt;

&lt;p&gt;Jumping straight into code is tempting. I get it.&lt;/p&gt;

&lt;p&gt;But mapping the flow first forces you to ask questions you'd otherwise miss — &lt;br&gt;
&lt;em&gt;Is this feature actually necessary? What happens if this step fails? Does this &lt;br&gt;
even make sense?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In a small project like this it keeps things clean. In larger projects, it can &lt;br&gt;
save weeks of rework. The planning stage is unglamorous but it's genuinely &lt;br&gt;
important.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 Claude's Role — Plan Mode
&lt;/h2&gt;

&lt;p&gt;Claude is brilliant at building apps, but even Claude isn't perfect — and &lt;br&gt;
usually when something goes wrong, it's because &lt;em&gt;the prompt wasn't clear enough.&lt;/em&gt;&lt;br&gt;
That's on the user, not Claude.&lt;/p&gt;

&lt;p&gt;So before touching any code, I sent Claude my sequence diagram and we &lt;br&gt;
brainstormed the entire app structure together in &lt;strong&gt;plan mode&lt;/strong&gt; — no building, &lt;br&gt;
just thinking. Getting Claude to deeply understand what I want before it starts &lt;br&gt;
writing anything makes the whole process cleaner and faster.&lt;/p&gt;

&lt;p&gt;Context first, code later. ✨&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Next up — enough planning, time to actually build something. See you there. 👀&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>learning</category>
      <category>tutorial</category>
      <category>architecture</category>
    </item>
    <item>
      <title>🤖 Adding AI to My Project Wasn't Easy. Until It Was.😅</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Fri, 20 Mar 2026 08:44:14 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/adding-ai-to-my-project-wasnt-easy-until-it-was-3lmk</link>
      <guid>https://dev.to/techgeniuskaran/adding-ai-to-my-project-wasnt-easy-until-it-was-3lmk</guid>
      <description>&lt;p&gt;Hey fellow developers, 👋&lt;/p&gt;

&lt;p&gt;My hyped up hopes and dreams of adding AI magic to my project did not go as planned.🥲 &lt;strong&gt;Reality often hurts.&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 First Attempt — HuggingFace
&lt;/h2&gt;

&lt;p&gt;I asked ChatGPT for free AI model options and landed on &lt;strong&gt;HuggingFace&lt;/strong&gt; — free, easy to set up, seemed perfect. Got the API key, set the environment variables, wrote the post route, and sat back to enjoy the fruits of my labour.&lt;/p&gt;

&lt;p&gt;The model loaded… and then just returned &lt;strong&gt;garbage.&lt;/strong&gt; Incomplete sentences, broken outputs, nothing close to an actual quote. Turns out the model I picked wasn't built for clean text generation from short prompts.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Wrong tool, wrong job.&lt;/em&gt; Classic. 🙃&lt;/p&gt;

&lt;h2&gt;
  
  
  😤 Second Attempt — OpenAI
&lt;/h2&gt;

&lt;p&gt;So I switched to &lt;strong&gt;OpenAI&lt;/strong&gt; with my head held high, because that's what optimistic developers do.&lt;/p&gt;

&lt;p&gt;Same process — new keys, new route, new hope. This time I got hit with &lt;strong&gt;billing issues and quota errors&lt;/strong&gt; before I even got started. 404s everywhere. I didn't fully understand what was happening and honestly? I didn't want to. I just moved on.&lt;/p&gt;

&lt;p&gt;Then came my board exams and the project sat untouched for a while.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Enter Claude — &lt;em&gt;The SAVIOUR&lt;/em&gt;🙌
&lt;/h2&gt;

&lt;p&gt;When I came back, &lt;strong&gt;Claude was everywhere.&lt;/strong&gt; My dad got the subscription, I took Anthropic's Claude 101 course, and I finally tried &lt;strong&gt;Claude Code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Best decision I've made in this entire project.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I explained my project in plain English — what it does, what I want, what's broken. It analysed everything, suggested &lt;strong&gt;Gemini Flash 2.5&lt;/strong&gt; as the model, and within minutes had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built the API route&lt;/li&gt;
&lt;li&gt;Added proper error handling&lt;/li&gt;
&lt;li&gt;Updated the frontend elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All I had to do was paste the API key and watch. 👀&lt;/p&gt;

&lt;h2&gt;
  
  
  🐛 Minor Setbacks (Because Nothing Ever Works First Try)
&lt;/h2&gt;

&lt;p&gt;Did everything work perfectly on the first run? No. Obviously not. 😂&lt;/p&gt;

&lt;p&gt;Because no code ever works on the first try — and every developer has used the infamous &lt;em&gt;"it should work now"&lt;/em&gt; line at least a hundred times. I am no different.&lt;/p&gt;

&lt;p&gt;But whenever something broke, I'd screenshot the console error, show it to Claude, and it would fix it &lt;strong&gt;almost immediately.&lt;/strong&gt; Within about an hour — &lt;em&gt;a working AI quote generator.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ What I Actually Learned
&lt;/h2&gt;

&lt;p&gt;Being a developer today isn't just about writing code. It's about &lt;strong&gt;knowing which tools exist&lt;/strong&gt;, being willing to switch when something isn't working, and not being too proud to ask for help.&lt;/p&gt;

&lt;p&gt;Two months ago I'd never heard of Claude Code. Now it's a core part of how I build.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Change is inevitable. Ride along with it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My live project here👇&lt;br&gt;
&lt;a href="https://techgenius-karan.github.io/Random-quote-generator-upgraded/" rel="noopener noreferrer"&gt;https://techgenius-karan.github.io/Random-quote-generator-upgraded/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Next up — I'm not done hyping Claude just yet. More on how it levelled up this entire project in my next post. 👀&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>openai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🚀 Deploying My Full-Stack App: From Localhost to Live</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Wed, 31 Dec 2025 04:53:25 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/deploying-my-full-stack-app-from-localhost-to-live-hh0</link>
      <guid>https://dev.to/techgeniuskaran/deploying-my-full-stack-app-from-localhost-to-live-hh0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hey everyone!&lt;/strong&gt; 👋&lt;br&gt;
Picking up right from where we left off — both the frontend and backend of my project were working beautifully on my local system.&lt;br&gt;
All that was left was to deploy everything to the real world… where the &lt;em&gt;real magic&lt;/em&gt; (and bugs 😅) happen.&lt;/p&gt;
&lt;h2&gt;
  
  
  🌐 Deployment Setup
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Frontend (GitHub Pages)&lt;/strong&gt;&lt;br&gt;
I took the straightforward route and deployed my frontend using GitHub Pages. The process was smooth, and the site was up and running almost instantly. No major issues here since it was a static frontend.&lt;/p&gt;

&lt;p&gt;The real challenge? &lt;em&gt;The backend&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  ☁️ Backend Deployment (Render)
&lt;/h2&gt;

&lt;p&gt;I used Render to deploy my backend because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It’s beginner-friendly&lt;/li&gt;
&lt;li&gt;Free to use&lt;/li&gt;
&lt;li&gt;I had prior experience with it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Initially, my backend was connected to local MongoDB (Compass).&lt;br&gt;
Once deployed, everything stopped working.&lt;/p&gt;
&lt;h2&gt;
  
  
  🐛 The Problem (Symptoms)
&lt;/h2&gt;

&lt;p&gt;Clicking Generate did absolutely nothing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No new quote&lt;/li&gt;
&lt;li&gt;No background change&lt;/li&gt;
&lt;li&gt;No errors on the UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That meant one thing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;quotes&lt;/strong&gt; was empty, so &lt;code&gt;newQuote()&lt;/code&gt; exited immediately.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (quotes.length === 0) return;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the real question became:&lt;/p&gt;

&lt;p&gt;Why was &lt;code&gt;fetchQuotes()&lt;/code&gt; no longer populating data?&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 Debugging the Issue
&lt;/h2&gt;

&lt;p&gt;Here’s the logic trail I followed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Frontend now points to Render backend&lt;/li&gt;
&lt;li&gt;Render backend CANNOT access local MongoDB (the part I had missed)&lt;/li&gt;
&lt;li&gt;API returns an empty response&lt;/li&gt;
&lt;li&gt;Frontend correctly refuses to render empty data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So technically… nothing was “broken”.&lt;br&gt;
The system was doing exactly what it was told to do.&lt;/p&gt;
&lt;h2&gt;
  
  
  ✅ The Real Fix: MongoDB Atlas
&lt;/h2&gt;

&lt;p&gt;The solution was to move from local MongoDB to a cloud-based database. I:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up MongoDB Atlas&lt;/li&gt;
&lt;li&gt;Created a new cluster&lt;/li&gt;
&lt;li&gt;Seeded the database with sample quotes&lt;/li&gt;
&lt;li&gt;Connected Atlas to Render using environment variables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;MONGO_URI = mongodb+srv://quoteAdmin:YOUR_PASSWORD@.../quoteGeneratorDB&lt;br&gt;
PORT = 5000&lt;/code&gt;&lt;br&gt;
Then I updated the frontend &lt;code&gt;API_URL&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let API_URL = "http://localhost:5000";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⬇️⬇️⬇️&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let API_URL = "https://YOUR-RENDER-URL.onrender.com";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🐛 Debugging (The Second Heartbreak💔)
&lt;/h2&gt;

&lt;p&gt;After connecting MongoDB Atlas, Render, and updating all the environment variables, I was confident everything should work.&lt;/p&gt;

&lt;p&gt;But… clicking &lt;strong&gt;Generate&lt;/strong&gt; still did nothing.&lt;br&gt;
Same symptom. Same silence. Honestly, it was heartbreaking.&lt;/p&gt;

&lt;p&gt;At this point, I had no idea what was wrong because everything was technically correct.&lt;/p&gt;

&lt;p&gt;To dig deeper, I directly visited my API endpoint in the browser:&lt;br&gt;
&lt;code&gt;https://quote-generator-5qei.onrender.com/quotes&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I saw the words &lt;code&gt;Cannot GET&lt;/code&gt; and assumed it was an error and something was wrong with my code, but after repeatedly checking my console and recieving no errors -&lt;br&gt;
&lt;strong&gt;That’s when it finally clicked.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There was nothing wrong with my code, deployment, or API.&lt;br&gt;
I had simply forgotten to seed data into MongoDB Atlas. All my quotes were still sitting in my local database.&lt;/p&gt;

&lt;p&gt;A painful but valuable lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sometimes, the bug isn’t in the code — it’s in the data.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🎉 Final Result
&lt;/h2&gt;

&lt;p&gt;And… voilà! 🎉&lt;br&gt;
Once the database was seeded with sample quotes and connected properly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quotes started loading&lt;/li&gt;
&lt;li&gt;Generate button worked&lt;/li&gt;
&lt;li&gt;Categories functioned perfectly&lt;/li&gt;
&lt;li&gt;Full-stack data flow was live&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This felt like the moment the project officially became real.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔮 What’s Coming Next
&lt;/h2&gt;

&lt;p&gt;Next up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧠 AI integration ideas (brief planning)&lt;/li&gt;
&lt;li&gt;✨ Generating original quotes&lt;/li&gt;
&lt;li&gt;🎯 Personalization &amp;amp; scalability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See you in the next post — stay tuned! 🚀&lt;/p&gt;

</description>
      <category>fullstack</category>
      <category>mongodb</category>
      <category>node</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🧠 Going Full Stack: Building the Backend &amp; REST API</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Fri, 26 Dec 2025 08:26:42 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/going-full-stack-building-the-backend-rest-api-2c51</link>
      <guid>https://dev.to/techgeniuskaran/going-full-stack-building-the-backend-rest-api-2c51</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hey fellow developers!&lt;/strong&gt; 👋&lt;/p&gt;

&lt;p&gt;In my last post, I mainly focused on upgrading the frontend UI and UX. While it looked much better, it still lacked the full-stack feel of a &lt;em&gt;real application&lt;/em&gt;.&lt;br&gt;
So this post is all about the &lt;strong&gt;&lt;em&gt;backend&lt;/em&gt;&lt;/strong&gt; — where things actually started getting serious.&lt;/p&gt;
&lt;h2&gt;
  
  
  ❓ Why Adding a Backend Was Necessary
&lt;/h2&gt;

&lt;p&gt;Initially, I wanted to add a backend to practice and improve my backend skills. But from the app’s perspective, a backend was &lt;em&gt;essential&lt;/em&gt; for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📚 Large amounts of quote data&lt;/li&gt;
&lt;li&gt;🤖 Future AI scalability&lt;/li&gt;
&lt;li&gt;🗂️ Category-based filtering&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Handling all of this purely on the frontend would’ve been messy and unrealistic.&lt;br&gt;
With a backend? Clean and manageable.&lt;/p&gt;
&lt;h2&gt;
  
  
  ⚙️ Backend Setup &amp;amp; Structure
&lt;/h2&gt;

&lt;p&gt;I used a simple and efficient stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js + Express → REST API&lt;/li&gt;
&lt;li&gt;MongoDB (Compass locally) → Database&lt;/li&gt;
&lt;li&gt;Render → Backend deployment (more on this next post 👀)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📁 Project Structure&lt;/strong&gt;&lt;br&gt;
/&lt;br&gt;
├── index.html&lt;br&gt;
├── style.css&lt;br&gt;
├── script.js&lt;br&gt;
├── backend/&lt;br&gt;
│   ├── server.js&lt;br&gt;
│   └── models/&lt;br&gt;
│       └── Quote.js&lt;br&gt;
└── README.md&lt;/p&gt;
&lt;h2&gt;
  
  
  🧩 Schema Creation
&lt;/h2&gt;

&lt;p&gt;At the core of the backend was the &lt;strong&gt;quote schema&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const quoteSchema = new mongoose.Schema({
  text: { type: String, required: true },
  author: { type: String, required: true },
  category: { type: String, required: true }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This schema made everything possible.&lt;/p&gt;

&lt;p&gt;Here’s how it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A category button is clicked on the frontend&lt;/li&gt;
&lt;li&gt;A request is sent to the backend&lt;/li&gt;
&lt;li&gt;The backend filters quotes by category&lt;/li&gt;
&lt;li&gt;The text + author are sent back&lt;/li&gt;
&lt;li&gt;The quote is displayed to the user&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is where the magic of schemas really clicked for me ✨&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Connecting Backend to Frontend
&lt;/h2&gt;

&lt;p&gt;Once the backend was ready, it was time to connect everything.&lt;/p&gt;

&lt;p&gt;Inside index.js, I created a fetchQuotes() function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async function fetchQuotes(category = null) {
  try {
    let url = category
      ? `${API_URL}/quotes/category/${category}`
      : `${API_URL}/quotes`;

    const res = await fetch(url);
    quotes = await res.json();

    usedQuotes = [];
    usedColours = [];
    newQuote();
  } catch (err) {
    console.error("Backend not available:", err);
  }
}

fetchQuotes();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For now, API_URL points to localhost.&lt;br&gt;
Later, this will switch to a deployed backend URL — which leads perfectly into the next post 👇&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Final Result (Locally)
&lt;/h2&gt;

&lt;p&gt;And… &lt;em&gt;voila&lt;/em&gt;! 🎉&lt;br&gt;
Everything was working perfectly on my local system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quotes fetched from the backend&lt;/li&gt;
&lt;li&gt;Categories filtered correctly&lt;/li&gt;
&lt;li&gt;No more hardcoded data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All that was left was &lt;em&gt;deployment&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What’s Coming Next
&lt;/h2&gt;

&lt;p&gt;In the next post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 Frontend deployment → GitHub Pages&lt;/li&gt;
&lt;li&gt;☁️ Backend deployment → Render&lt;/li&gt;
&lt;li&gt;🧪 Live-data debugging&lt;/li&gt;
&lt;li&gt;🔄 MongoDB Compass → MongoDB Atlas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Be stoked for the next update — see you soon! 😄🔥&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>express</category>
      <category>backend</category>
      <category>restapi</category>
    </item>
    <item>
      <title>Improving the UI &amp; UX of My Quote Generator✨🎨</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Sat, 20 Dec 2025 12:03:14 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/improving-the-ui-ux-of-my-quote-generator-2d7k</link>
      <guid>https://dev.to/techgeniuskaran/improving-the-ui-ux-of-my-quote-generator-2d7k</guid>
      <description>&lt;h2&gt;
  
  
  Improving the Frontend: UI &amp;amp; UX
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hey everyone!&lt;/strong&gt;,&lt;br&gt;
This is the &lt;em&gt;second&lt;/em&gt; post in my quote generator project series. In this one, I’ll talk about why and how I updated the &lt;u&gt;UI&lt;/u&gt; and &lt;u&gt;UX&lt;/u&gt; on the frontend to make the project feel more appealing and realistic.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I Had to Change the UI
&lt;/h2&gt;

&lt;p&gt;Personally, an unnatural and featureless UI completely repels me.&lt;br&gt;
And honestly, you DO judge a book by its cover — I definitely do. I didn’t want my project’s &lt;em&gt;“cover”&lt;/em&gt; to be something that makes people close the tab instantly.&lt;/p&gt;

&lt;p&gt;That said, functionality matters too. So instead of focusing only on looks or only on logic, I decided to &lt;strong&gt;pair both together&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Make the app enjoyable to use and realistic enough to feel like a real product.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Decided to Improve
&lt;/h2&gt;

&lt;p&gt;I started adding simple CSS styles and logical frontend features — nothing too crazy, but enough to make the project feel alive.&lt;/p&gt;

&lt;p&gt;Here’s what I added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dark / Light Mode &lt;/li&gt;
&lt;li&gt;Dynamic Backgrounds&lt;/li&gt;
&lt;li&gt;Smooth Animations&lt;/li&gt;
&lt;li&gt;Better layout&lt;/li&gt;
&lt;li&gt;Copy Quote Button&lt;/li&gt;
&lt;li&gt;Category-Based Quotes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  🔁 Dark / Light Mode: The Toggle Logic
&lt;/h2&gt;

&lt;p&gt;One of the most important pieces of logic I worked on was the dark/light mode toggle.&lt;br&gt;
It’s a small feature, but it completely changes how the app feels.&lt;/p&gt;

&lt;p&gt;Here’s the JavaScript behind it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function toggleMode() {
  darkMode = !darkMode;
  document.body.classList.toggle("dark-mode");

  let btn = document.getElementById("modeToggle");
  btn.classList.toggle("active");
  let ball = document.querySelector(".toggle-ball");

  ball.textContent = darkMode ? "🌞" : "🌙";

  document.body.style.backgroundColor = darkMode ? "#121212" : "#49B587";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The logic is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Toggle a dark-mode class on the body&lt;/li&gt;
&lt;li&gt;Update the button state&lt;/li&gt;
&lt;li&gt;Switch icons (🌞 / 🌙)&lt;/li&gt;
&lt;li&gt;Dynamically change background colors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing too complex — but very effective.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌗 Before vs After: Toggle in Action&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Visually, this made a huge difference.&lt;/p&gt;

&lt;p&gt;Light Mode (&lt;em&gt;Before&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%2Fcpa2d6c74a215qniynyx.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%2Fcpa2d6c74a215qniynyx.png" alt="A lighter color scheme webpage" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dark Mode (&lt;em&gt;After&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%2F66t3xmkgeijhvchhxpxp.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%2F66t3xmkgeijhvchhxpxp.png" alt="A darker color scheme webpage" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This single feature alone made the app feel far more modern and usable.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 What I Took Away From This
&lt;/h2&gt;

&lt;p&gt;Working on this frontend taught me a lot about the &lt;strong&gt;ins and outs&lt;/strong&gt; of CSS — layouts, animations, theming, and how small UI details can completely change user experience.&lt;/p&gt;

&lt;p&gt;These are skills that I know will come in handy in pretty much any future project I work on.&lt;/p&gt;

&lt;p&gt;In the next post, I’ll move away from UI and dive into the &lt;em&gt;&lt;strong&gt;backend&lt;/strong&gt;&lt;/em&gt; side of this project — APIs, databases, and making this app truly full stack.&lt;/p&gt;

&lt;p&gt;Stay tuned!🚀&lt;/p&gt;

</description>
      <category>uidesign</category>
      <category>frontend</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>A Simple Project That Turned Into Something Much More!</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Thu, 18 Dec 2025 07:59:12 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/a-simple-project-that-turned-into-something-much-more-59mp</link>
      <guid>https://dev.to/techgeniuskaran/a-simple-project-that-turned-into-something-much-more-59mp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hey everyone!&lt;/strong&gt; &lt;br&gt;
I’m back after a while — mainly because of preboard examinations. During this short break, I wanted to build a small mini project just to refresh my programming skills a bit. But somehow, that &lt;strong&gt;“small project”&lt;/strong&gt; turned into something much bigger than I had planned.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Original Project (30 Minutes, Max)
&lt;/h2&gt;

&lt;p&gt;The original project was a simple combination of HTML, CSS, and JavaScript. Nothing fancy at all.&lt;br&gt;
It was a basic quote generator — a text area and a button. On clicking the button, it would randomly display quotes that I had (very honestly) copied from Google and stored inside a JavaScript array.&lt;/p&gt;

&lt;p&gt;I added some CSS for structure and background styling. I also tried a few button tricks that didn’t really work out, but at that point, I didn’t care much. It was just a quick, silly project — and let’s be real, a quote generator is not exactly a billion-dollar idea.&lt;/p&gt;

&lt;p&gt;Still, it worked. And for a 30-minute project, that felt good enough.&lt;/p&gt;

&lt;p&gt;(I’ll link the original live version here 👇)&lt;br&gt;
👉 &lt;a href="https://techgenius-karan.github.io/Random-Quote-Generator/" rel="noopener noreferrer"&gt;Original 30-minute Quote Generator&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why It Felt… Incomplete
&lt;/h2&gt;

&lt;p&gt;After a while, I started feeling that this project was pretty dumb in its current state. It did the job, but that was it. So instead of looking for a brand-new project to improve my full-stack skills, I asked myself:&lt;br&gt;
&lt;em&gt;Why not just improve what’s already in front of me?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This version was missing a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No backend&lt;/li&gt;
&lt;li&gt;No data storage&lt;/li&gt;
&lt;li&gt;No uniqueness&lt;/li&gt;
&lt;li&gt;Very limited scope&lt;/li&gt;
&lt;li&gt;Zero “real-world” feel&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Idea to Rebuild It Properly
&lt;/h2&gt;

&lt;p&gt;Like most of us, I went to &lt;strong&gt;ChatGPT&lt;/strong&gt; hoping for some magical ideas. It didn’t really give me anything groundbreaking — but it &lt;em&gt;did&lt;/em&gt; get me thinking.&lt;/p&gt;

&lt;p&gt;That’s when I came up with my own ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding a backend with a REST API&lt;/li&gt;
&lt;li&gt;Storing quotes properly using a database&lt;/li&gt;
&lt;li&gt;Improving the UI and UX (because if it looks boring, I stop working on it)&lt;/li&gt;
&lt;li&gt;Eventually integrating AI to generate original quotes based on user mood or preferences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At that point, this was no longer a 30-minute project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Series Is About
&lt;/h2&gt;

&lt;p&gt;This post is essentially about showing the impact of time:&lt;/p&gt;

&lt;p&gt;a &lt;u&gt;&lt;em&gt;quick 30-minute&lt;/em&gt;&lt;/u&gt; frontend-only project &lt;br&gt;
&lt;strong&gt;VS&lt;/strong&gt; &lt;br&gt;
  a &lt;u&gt;&lt;em&gt;3 week&lt;/em&gt;&lt;/u&gt; full-stack, feature-rich, AI-ready application**&lt;/p&gt;

&lt;p&gt;This will be a multi-part series where I document how I upgraded this project step by step — from UI improvements to backend development and beyond.&lt;/p&gt;

&lt;p&gt;So yeah, buckle up! Some interesting updates are coming soon!! 🚀&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>sideprojects</category>
      <category>beginners</category>
    </item>
    <item>
      <title>OAuth, Firebase &amp; Some ChatGPT Magic🎉</title>
      <dc:creator>Karan</dc:creator>
      <pubDate>Thu, 22 May 2025 08:04:40 +0000</pubDate>
      <link>https://dev.to/techgeniuskaran/oauth-firebase-some-chatgpt-magic-32jb</link>
      <guid>https://dev.to/techgeniuskaran/oauth-firebase-some-chatgpt-magic-32jb</guid>
      <description>&lt;p&gt;&lt;em&gt;Hey guys!&lt;/em&gt; I'm back with another update on my progress with the app I've been building.&lt;/p&gt;

&lt;p&gt;After spending a good amount of time learning and absorbing all kinds of new concepts (OAuth, RBAC, Auth Context, etc.), this week was all about putting that knowledge into action.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔨 Time to Build
&lt;/h2&gt;

&lt;p&gt;My goal? Set up a working login and signup system with OAuth providers like Google and Apple — you know, those buttons that say &lt;strong&gt;“Sign in with Google”&lt;/strong&gt; or &lt;strong&gt;“Continue with Apple”&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I followed this great &lt;a href="https://www.youtube.com/watch?v=PKwu15ldZ7k&amp;amp;t=2725s&amp;amp;pp=ygUdZmlyZWJhc2UgYXV0aGVudGljYXRpb24gcmVhY3TSBwkJjQkBhyohjO8%3D" rel="noopener noreferrer"&gt;Firebase Authentication Crash Course on YouTube&lt;/a&gt;, and it really helped me understand how to use Firebase to manage users.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤯 The Smart Shortcut
&lt;/h2&gt;

&lt;p&gt;At first, I was going to do a complete code-along, but halfway through, I had a better idea…&lt;/p&gt;

&lt;p&gt;Instead of copying code line-by-line and pausing constantly, I asked &lt;em&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt;&lt;/em&gt; to analyze the video, extract the code, and explain the steps I needed to follow. And honestly? It saved me hours.&lt;/p&gt;

&lt;p&gt;I got the full code setup — Auth Context files, Firebase integration, and even styling — in under 10 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠 Debugging &amp;amp; Finishing Touches
&lt;/h2&gt;

&lt;p&gt;Of course, the code didn’t work right away (does it ever?). I ran into a bunch of errors, but I used &lt;em&gt;ChatGPT&lt;/em&gt; again to help me understand what they meant and how to fix them.&lt;/p&gt;

&lt;p&gt;One by one, I squashed the bugs, and finally, my &lt;strong&gt;beautiful login screen&lt;/strong&gt; came back to life. 🎉&lt;/p&gt;

&lt;p&gt;Now, users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sign up with email and password&lt;/li&gt;
&lt;li&gt;Log in&lt;/li&gt;
&lt;li&gt;Use “Forgot Password”&lt;/li&gt;
&lt;li&gt;Sign in with Google (OAuth)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of it works perfectly and updates the Firebase console. Super satisfying.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 What's Next?
&lt;/h2&gt;

&lt;p&gt;I’m currently prepping for the SATs, so updates might slow down a bit — but I’m still building, and I’ll be back with more progress soon!&lt;/p&gt;

&lt;p&gt;See you guys!(hopefully soon)&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>firebase</category>
      <category>oauth</category>
      <category>chatgpt</category>
    </item>
  </channel>
</rss>
