<?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: Gaurav Mehra</title>
    <description>The latest articles on DEV Community by Gaurav Mehra (@i_am_gaurav).</description>
    <link>https://dev.to/i_am_gaurav</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%2F3392824%2Fa8d4235a-9e25-45ed-bb82-ed230dca7450.jpg</url>
      <title>DEV Community: Gaurav Mehra</title>
      <link>https://dev.to/i_am_gaurav</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/i_am_gaurav"/>
    <language>en</language>
    <item>
      <title>Make Your Website Responsive | Media Queries, Overflow, Box Shadows</title>
      <dc:creator>Gaurav Mehra</dc:creator>
      <pubDate>Tue, 16 Sep 2025 17:21:58 +0000</pubDate>
      <link>https://dev.to/i_am_gaurav/make-your-website-responsive-media-queries-overflow-box-shadows-3n9m</link>
      <guid>https://dev.to/i_am_gaurav/make-your-website-responsive-media-queries-overflow-box-shadows-3n9m</guid>
      <description>&lt;p&gt;__&lt;/p&gt;

&lt;p&gt;When you build a website, it should look good on &lt;strong&gt;mobile, tablet, and desktop&lt;/strong&gt;. This is called &lt;strong&gt;responsive design&lt;/strong&gt;. In this post, we’ll learn three important CSS tools that help with responsiveness:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Media Queries&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overflow&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Box Shadows (with spread-radius)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  1. Difference between &lt;code&gt;max-width&lt;/code&gt; and &lt;code&gt;min-width&lt;/code&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;max-width&lt;/code&gt;&lt;/strong&gt; → Styles apply when the screen is &lt;strong&gt;up to that size or smaller&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Example: &lt;code&gt;@media (max-width: 600px)&lt;/code&gt; applies CSS for screens ≤ 600px.&lt;br&gt;&lt;br&gt;
👉 Good for shrinking layouts (desktop → mobile).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;code&gt;min-width&lt;/code&gt;&lt;/strong&gt; → Styles apply when the screen is &lt;strong&gt;that size or bigger&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Example: &lt;code&gt;@media (min-width: 601px)&lt;/code&gt; applies CSS for screens ≥ 601px.&lt;br&gt;&lt;br&gt;
👉 Good for growing layouts (mobile → desktop).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Tip: Use &lt;strong&gt;min-width (mobile-first approach)&lt;/strong&gt; because it is easier to scale designs as the screen grows.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Overflow
&lt;/h2&gt;

&lt;p&gt;Sometimes content is bigger than its container. The &lt;code&gt;overflow&lt;/code&gt; property controls how extra content behaves.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* adds scrollbar if needed */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;**&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Types of Overflow**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;visible → Default, content goes outside.&lt;/li&gt;
&lt;li&gt;hidden → Cuts extra content.&lt;/li&gt;
&lt;li&gt;scroll → Always shows scrollbars.&lt;/li&gt;
&lt;li&gt;auto → Shows scrollbars only when needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Box Shadows (with Spread Radius)&lt;/strong&gt;&lt;br&gt;
Box shadows add depth and make elements look like cards or floating blocks.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.card {
  width: 250px;
  height: 150px;
  background: white;
  box-shadow: 0 4px 8px 5px rgba(0,0,0,0.2);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;📌 Syntax:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;box-shadow: offset-x offset-y blur-radius spread-radius color;**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;offset-x →&lt;/strong&gt; horizontal shadow (left/right)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;offset-y →&lt;/strong&gt; vertical shadow (top/bottom)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;blur-radius →&lt;/strong&gt; softness of the shadow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;spread-radius →&lt;/strong&gt;  grows/shrinks the shadow in all directions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;color →&lt;/strong&gt;  shadow color (with transparency)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 If spread-radius = 10px, shadow grows outward.&lt;br&gt;
👉 If spread-radius = -5px, shadow shrinks inward.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;🎯 Demo Project: Responsive Card&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Here’s a small demo project using all three concepts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
  &amp;lt;title&amp;gt;Responsive Card&amp;lt;/title&amp;gt;
  &amp;lt;link rel="stylesheet" href="style.css"&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;div class="card"&amp;gt;
    &amp;lt;h2&amp;gt;Responsive Card&amp;lt;/h2&amp;gt;
    &amp;lt;p&amp;gt;This card resizes on different screens. Try shrinking or growing the window!&amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;CSS (style.css)&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;body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #f4f4f4;
  margin: 0;
  font-family: Arial, sans-serif;
}

.card {
  width: 90%;
  max-width: 400px;
  padding: 20px;
  background: white;
  border-radius: 10px;
  overflow: auto;
  box-shadow: 0 6px 12px 4px rgba(0,0,0,0.2);
  transition: all 0.3s ease;
}

/* Mobile first */
@media (min-width: 600px) {
  .card {
    max-width: 600px;
    box-shadow: 0 8px 16px 8px rgba(0,0,0,0.2);
  }
}

@media (min-width: 900px) {
  .card {
    max-width: 800px;
    box-shadow: 0 10px 20px 12px rgba(0,0,0,0.2);
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ On mobile, the card is small and clean.&lt;br&gt;
✅ On tablet, the card grows wider with a bigger shadow.&lt;br&gt;
✅ On desktop, the card expands more with a stronger shadow effect.&lt;/p&gt;

&lt;p&gt;Final Words&lt;/p&gt;

&lt;p&gt;Use media queries to make your site look good on all devices.&lt;/p&gt;

&lt;p&gt;Use overflow to handle content properly.&lt;/p&gt;

&lt;p&gt;Use box shadows with spread-radius to add style and depth.&lt;/p&gt;

&lt;p&gt;These simple tricks make your website look professional and responsive. 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>responsivewebdesign</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🌤️ Weather App using JavaScript – API Project</title>
      <dc:creator>Gaurav Mehra</dc:creator>
      <pubDate>Wed, 30 Jul 2025 16:28:59 +0000</pubDate>
      <link>https://dev.to/i_am_gaurav/weather-app-using-javascript-api-project-3f1k</link>
      <guid>https://dev.to/i_am_gaurav/weather-app-using-javascript-api-project-3f1k</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hey DEV Community! 👋&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I'm excited to share a project I recently completed — a Weather Application built using HTML, CSS, and JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This was my first real experience working with APIs, and I learned a lot about how to fetch and display real-time data dynamically on a webpage.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🔗 Live Demo&lt;/strong&gt;&lt;br&gt;
Check it out here 👉 &lt;a href="https://weather-app-gaurav-s-projects-d25bef28.vercel.app" rel="noopener noreferrer"&gt;https://weather-app-gaurav-s-projects-d25bef28.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 💻 GitHub Repository&lt;/strong&gt;&lt;br&gt;
Source code available here 👉 &lt;a href="https://github.com/Gaurav-creater317/Weather-App" rel="noopener noreferrer"&gt;https://github.com/Gaurav-creater317/Weather-App&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 🚀 About the Project&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The weather app allows users to:&lt;/li&gt;
&lt;li&gt;Search for any city 🌍&lt;/li&gt;
&lt;li&gt;Get real-time temperature 🌡️&lt;/li&gt;
&lt;li&gt;View weather conditions with icons ☁️&lt;/li&gt;
&lt;li&gt;See humidity and wind speed 💧🌬️&lt;/li&gt;
&lt;li&gt;Handle errors like "city not found" ❌&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;- 🛠️ Technologies Used&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML – Structure&lt;/li&gt;
&lt;li&gt;CSS – Styling&lt;/li&gt;
&lt;li&gt;JavaScript – App Logic&lt;/li&gt;
&lt;li&gt;OpenWeatherMap API – Weather Data&lt;/li&gt;
&lt;li&gt;Vercel – Deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧪 Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Fetch weather by city name&lt;/p&gt;

&lt;p&gt;✅ Display weather icon, temperature, and description&lt;/p&gt;

&lt;p&gt;✅ Shows humidity and wind speed&lt;/p&gt;

&lt;p&gt;✅ Error handling for invalid inputs&lt;/p&gt;

&lt;p&gt;✅ Responsive design&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- 🧠 What I Learned&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This project helped me understand:&lt;/li&gt;
&lt;li&gt;Working with fetch() and async/await .&lt;/li&gt;
&lt;li&gt;Parsing and using JSON data .&lt;/li&gt;
&lt;li&gt;Dynamically updating the DOM .&lt;/li&gt;
&lt;li&gt;Handling API errors gracefully.&lt;/li&gt;
&lt;li&gt;Deploying projects using Vercel .&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📸 Screenshots&lt;/strong&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%2F765bmr27q0v4svyolr4n.webp" 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%2F765bmr27q0v4svyolr4n.webp" alt=" " width="800" height="578"&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%2Fz4csnqtqgobl82ihz9va.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%2Fz4csnqtqgobl82ihz9va.png" alt=" " width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 Sample Code Snippet&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;async function getWeather(city) {
  const response = await fetch(
    `https://api.openweathermap.org/data/2.5/weather?q=${city}&amp;amp;appid=YOUR_API_KEY&amp;amp;units=metric`
  );

  if (!response.ok) {
    showError("City not found!");
    return;
  }

  const data = await response.json();
  updateUI(data);
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;- 💬 Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building this weather app really boosted my confidence with JavaScript and API integration. 🌟&lt;/li&gt;
&lt;li&gt;If you're just starting out with web development, I highly recommend trying out a project like this. It’s simple, useful, and gives you a hands-on experience working with real-world data.&lt;/li&gt;
&lt;li&gt;Feel free to check out the app, explore the code, and let me know what you think. Feedback and suggestions are always welcome! 😊&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;- Want help with your first API project? Drop a comment! Let’s connect and grow together 🚀&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>api</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Project - Pic Discover App</title>
      <dc:creator>Gaurav Mehra</dc:creator>
      <pubDate>Mon, 28 Jul 2025 11:37:33 +0000</pubDate>
      <link>https://dev.to/i_am_gaurav/project-pic-discover-app-422n</link>
      <guid>https://dev.to/i_am_gaurav/project-pic-discover-app-422n</guid>
      <description>&lt;h1&gt;
  
  
  🖼️ Pic Discover App – Search and Explore Beautiful Images with Unsplash API
&lt;/h1&gt;

&lt;p&gt;Hey DEV community! 👋&lt;/p&gt;

&lt;p&gt;I'm excited to share a fun and visually engaging project I recently built – &lt;strong&gt;Pic Discover App&lt;/strong&gt; 🎉&lt;br&gt;&lt;br&gt;
It’s a simple and responsive web app that lets users search and browse stunning images using the &lt;strong&gt;Unsplash API&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What Is Pic Discover?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pic Discover&lt;/strong&gt; is a web-based image search engine where users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔎 Type in any keyword (e.g., mountains, cats, coding)&lt;/li&gt;
&lt;li&gt;🖼️ Instantly see high-quality photos from &lt;a href="https://unsplash.com/" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;➕ Load more results with a "Show More" button&lt;/li&gt;
&lt;li&gt;📱 Enjoy a responsive design across desktop and mobile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s ideal for photographers, designers, bloggers, or anyone looking for image inspiration.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Built With
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;HTML&lt;/strong&gt; – Semantic layout&lt;/li&gt;
&lt;li&gt;🎨 &lt;strong&gt;CSS&lt;/strong&gt; – Fully responsive and stylish UI with hover animations&lt;/li&gt;
&lt;li&gt;⚙️ &lt;strong&gt;JavaScript&lt;/strong&gt; – Fetching and rendering images dynamically&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Unsplash API&lt;/strong&gt; – Free access to a huge collection of images&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📸 App Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✨ Real-time image search based on user input
&lt;/li&gt;
&lt;li&gt;🧭 Pagination with “Show More” feature
&lt;/li&gt;
&lt;li&gt;💡 Auto-clears previous results when a new search begins
&lt;/li&gt;
&lt;li&gt;🎯 Clickable image links that redirect to the full image on Unsplash
&lt;/li&gt;
&lt;li&gt;🧼 Clean and minimal UI with smooth animations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;User types a keyword in the input box&lt;/li&gt;
&lt;li&gt;The app calls the &lt;strong&gt;Unsplash Search API&lt;/strong&gt; with that query&lt;/li&gt;
&lt;li&gt;Images are displayed dynamically using JavaScript&lt;/li&gt;
&lt;li&gt;Users can click "Show More" to fetch the next page of results&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  📷
&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%2F6f4hgciy44627f7ag48e.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%2F6f4hgciy44627f7ag48e.png" alt=" " width="750" height="457"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Live Demo
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://vercel.com/gaurav-s-projects-d25bef28/pic-discover" rel="noopener noreferrer"&gt;Try it out live&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;a href="https://github.com/Gaurav-creater317/Pic-Discover" rel="noopener noreferrer"&gt;View Source Code on GitHub&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;This project helped me understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to work with &lt;strong&gt;third-party APIs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Making &lt;strong&gt;asynchronous requests&lt;/strong&gt; using &lt;code&gt;fetch()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;DOM manipulation and &lt;strong&gt;dynamic rendering&lt;/strong&gt; in vanilla JS&lt;/li&gt;
&lt;li&gt;Creating a &lt;strong&gt;responsive layout&lt;/strong&gt; with &lt;strong&gt;media queries&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Optimizing UX with &lt;strong&gt;pagination&lt;/strong&gt; and &lt;strong&gt;loading controls&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 Future Improvements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add loading spinners&lt;/li&gt;
&lt;li&gt;Add dark/light theme toggle&lt;/li&gt;
&lt;li&gt;Allow users to download or favorite images&lt;/li&gt;
&lt;li&gt;Save recent search history in local storage&lt;/li&gt;
&lt;/ul&gt;







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

&lt;p&gt;Pic Discover App was a great way to dive deeper into frontend development while building something interactive and useful.&lt;br&gt;&lt;br&gt;
If you’re looking to learn APIs or just want a fun UI project, try recreating this — it’s a rewarding experience!&lt;/p&gt;

&lt;p&gt;Thanks for reading, and let me know your thoughts or suggestions in the comments 💬&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>responsiveweb</category>
      <category>programming</category>
    </item>
    <item>
      <title>Project - Prompt Mate (Your Personal AI Conversation Campaign )</title>
      <dc:creator>Gaurav Mehra</dc:creator>
      <pubDate>Mon, 28 Jul 2025 11:16:06 +0000</pubDate>
      <link>https://dev.to/i_am_gaurav/project-prompt-mate-your-personal-ai-conversation-campaign--20f7</link>
      <guid>https://dev.to/i_am_gaurav/project-prompt-mate-your-personal-ai-conversation-campaign--20f7</guid>
      <description>&lt;h1&gt;
  
  
  🚀 Prompt Mate – Your Personal AI Conversation Companion using Next.js &amp;amp; Gemini API 💬
&lt;/h1&gt;

&lt;p&gt;Hey DEV community! 👋&lt;br&gt;&lt;br&gt;
I'm thrilled to introduce my latest project – &lt;strong&gt;Prompt Mate&lt;/strong&gt; – an AI-powered chat interface built using &lt;strong&gt;Next.js&lt;/strong&gt; and &lt;strong&gt;Google Cloud’s Gemini API&lt;/strong&gt; via &lt;strong&gt;Google AI Studio&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What is Prompt Mate?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prompt Mate&lt;/strong&gt; is a Next.js web application that enables users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧠 Chat with an AI assistant powered by Google’s Gemini model.
&lt;/li&gt;
&lt;li&gt;✍️ Send custom prompts and get intelligent, real-time responses.
&lt;/li&gt;
&lt;li&gt;📱 Experience a responsive and clean UI across devices.
&lt;/li&gt;
&lt;li&gt;🔐 Interact securely with Google Cloud-hosted functions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you're a developer, student, or AI enthusiast, Prompt Mate is designed to demonstrate the power of &lt;strong&gt;LLMs in a full-stack web application&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;⚛️ &lt;strong&gt;Next.js&lt;/strong&gt; – Full-stack React framework.
&lt;/li&gt;
&lt;li&gt;☁️ &lt;strong&gt;Google Cloud Gemini API&lt;/strong&gt; – Used via API key.
&lt;/li&gt;
&lt;li&gt;🧪 &lt;strong&gt;Google AI Studio&lt;/strong&gt; – For prompt testing and optimization . &lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Tailwind CSS&lt;/strong&gt; – For styling the UI.
&lt;/li&gt;
&lt;li&gt;🔐 &lt;strong&gt;.env.local&lt;/strong&gt; – Securing API keys in environment variables.
&lt;/li&gt;
&lt;li&gt;🔁 &lt;strong&gt;API Routes&lt;/strong&gt; – To safely call Gemini from the server side.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔧 Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Fully responsive chat interface.
&lt;/li&gt;
&lt;li&gt;🧠 Gemini AI-generated responses.
&lt;/li&gt;
&lt;li&gt;🔒 API key protected backend route in Next.js.
&lt;/li&gt;
&lt;li&gt;🌙 Dark mode ready (optional toggle).
&lt;/li&gt;
&lt;li&gt;🧼 Clean code structure and modular components.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📸
&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%2Futrs84i5urlerrcn8vqu.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%2Futrs84i5urlerrcn8vqu.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Live Demo &amp;amp; Code
&lt;/h2&gt;

&lt;p&gt;🔍 &lt;strong&gt;Live Preview&lt;/strong&gt;: &lt;a href="https://prompt-mate-gaurav-s-projects-d25bef28.vercel.app/" rel="noopener noreferrer"&gt;Visit Prompt Mate&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;strong&gt;GitHub Repo&lt;/strong&gt;: &lt;a href="https://github.com/Gaurav-creater317/Prompt-Mate" rel="noopener noreferrer"&gt;View Source on GitHub&lt;/a&gt;&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;Seamlessly integrating &lt;strong&gt;Gemini API&lt;/strong&gt; with &lt;strong&gt;Next.js serverless routes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Protecting API keys using &lt;code&gt;.env.local&lt;/code&gt; and &lt;code&gt;getServerSideProps&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Building clean and intuitive UIs using &lt;strong&gt;Tailwind CSS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Testing and refining prompts with &lt;strong&gt;Google AI Studio&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Working on Prompt Mate gave me a practical dive into &lt;strong&gt;generative AI&lt;/strong&gt; development and deploying it on a &lt;strong&gt;modern full-stack framework&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
It’s amazing how quickly you can build something powerful with the right APIs and tools.&lt;/p&gt;

&lt;p&gt;I’d love your feedback and thoughts! 🌟&lt;br&gt;&lt;br&gt;
Feel free to fork, remix, or collaborate with me on future versions.&lt;/p&gt;

</description>
      <category>gemini</category>
      <category>ai</category>
      <category>nextjs</category>
      <category>learngoogleaistudio</category>
    </item>
    <item>
      <title>The Arcade Facilitator Program (Google Cloud)</title>
      <dc:creator>Gaurav Mehra</dc:creator>
      <pubDate>Mon, 28 Jul 2025 10:50:45 +0000</pubDate>
      <link>https://dev.to/i_am_gaurav/the-arcade-facilitator-program-google-cloud-44pa</link>
      <guid>https://dev.to/i_am_gaurav/the-arcade-facilitator-program-google-cloud-44pa</guid>
      <description>&lt;h2&gt;
  
  
  🚀 About the Program ☁️
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Google Cloud Arcade Facilitator Program&lt;/strong&gt; is a cloud learning initiative that helps students and developers gain practical knowledge by completing real-world labs and quests on Google Cloud Platform (GCP) using &lt;strong&gt;Cloud Skills Boost (Qwiklabs)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Throughout the program, I explored key areas like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compute Engine and Virtual Machines&lt;/li&gt;
&lt;li&gt;Cloud Functions and Serverless&lt;/li&gt;
&lt;li&gt;Kubernetes Engine and Containers&lt;/li&gt;
&lt;li&gt;Cloud Storage and Databases&lt;/li&gt;
&lt;li&gt;BigQuery and Data Analytics&lt;/li&gt;
&lt;li&gt;IAM, Monitoring, and Logging&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Experience
&lt;/h2&gt;

&lt;p&gt;✨ Hands-on experience with GCP&lt;br&gt;&lt;br&gt;
✨ Real-world cloud infrastructure scenarios&lt;br&gt;&lt;br&gt;
✨ How to deploy, monitor, and manage cloud apps&lt;br&gt;&lt;br&gt;
✨ The importance of scalability, security, and automation in the cloud&lt;/p&gt;

&lt;p&gt;These skills have boosted my confidence in using cloud tools effectively and solving industry-relevant challenges.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏅 My Badges
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You can view my public cloud profile here - &lt;a href="https://www.cloudskillsboost.google/public_profiles/2c5d3eef-648d-40e7-a4d9-99eb59823e4e" rel="noopener noreferrer"&gt;https://www.cloudskillsboost.google/public_profiles/2c5d3eef-648d-40e7-a4d9-99eb59823e4e&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;This program has given me a deeper understanding of cloud computing and the confidence to work with Google Cloud in real projects. I'm excited to apply these skills in future internships and collaborations.&lt;/p&gt;

&lt;p&gt;If you’re a student or developer interested in cloud computing, I highly recommend enrolling in this program when it's available!&lt;/p&gt;




</description>
      <category>googlecloud</category>
      <category>cloudcomputing</category>
      <category>learning</category>
      <category>devcommunity</category>
    </item>
    <item>
      <title>How I Built a BMI Calculator</title>
      <dc:creator>Gaurav Mehra</dc:creator>
      <pubDate>Mon, 28 Jul 2025 07:57:55 +0000</pubDate>
      <link>https://dev.to/i_am_gaurav/how-i-built-a-bmi-calculator-2p8g</link>
      <guid>https://dev.to/i_am_gaurav/how-i-built-a-bmi-calculator-2p8g</guid>
      <description>&lt;h2&gt;
  
  
  💡 Introduction
&lt;/h2&gt;

&lt;p&gt;As part of my web development learning journey, I created a fun and useful project — a &lt;strong&gt;BMI (Body Mass Index) Calculator&lt;/strong&gt;. This helped me practice &lt;strong&gt;HTML form inputs&lt;/strong&gt;, &lt;strong&gt;JavaScript logic&lt;/strong&gt;, and &lt;strong&gt;CSS styling&lt;/strong&gt; in a real-world mini-project.&lt;/p&gt;

&lt;p&gt;In this blog, I'll walk you through the complete HTML, CSS, and JavaScript code I used to build it — and share what I learned along the way.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ What is BMI?
&lt;/h2&gt;

&lt;p&gt;BMI stands for &lt;strong&gt;Body Mass Index&lt;/strong&gt;. It is a simple formula used to check if a person has a healthy weight.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 &lt;strong&gt;Formula:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;BMI = weight (kg) / [height (m)]²&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Based on your BMI, you can be categorized as underweight, normal, overweight, or obese.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧱 HTML Structure
&lt;/h2&gt;

&lt;p&gt;Here’s the complete HTML I used:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
  &amp;lt;title&amp;gt;BMI Calculator&amp;lt;/title&amp;gt;
  &amp;lt;link rel = "stylesheet" href = "style.css"&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;div class="container"&amp;gt;
    &amp;lt;h1 class="heading"&amp;gt;Body Mass Index(BMI) Calculator&amp;lt;/h1&amp;gt;
    Your Height (cm):
    &amp;lt;input type="number" class="input" id="height" value="180" placeholder="Enter your height in cm..."&amp;gt;
    Your Weight (kg):
    &amp;lt;input type="number" class="input" id="weight" value="80" placeholder="Enter your weight in kg..."&amp;gt;
    &amp;lt;button class="btn" id="btn"&amp;gt;Calculate BMI&amp;lt;/button&amp;gt;
    &amp;lt;input disabled type="text" class="input" id="bmi-result"&amp;gt;
     &amp;lt;h4 class="info-text"&amp;gt;Weight Condition: &amp;lt;span id ="weight-condition"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h4&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;script src = "index.js"&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🎨 CSS Styling&lt;/strong&gt;&lt;br&gt;
Here’s how I styled the calculator using CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;body{
  margin:0;
  background:  linear-gradient(to left bottom, lightgreen , lightblue);
  display : flex;
  height: 100vh;
  justify-content: center;
  align-items: center;
  font-family: 'Courier New', Courier, monospace;
}

.container{
  background: rgba(255,255,255,.3);
  padding: 20px;
  display: flex;
  flex-direction: column;
  border-radius: 5px;
  box-shadow: 0 10px 10px rgba(0,0,0,.3);
  margin: 5px;
}

.heading {
  font-size: 30px;
}

.input {
  padding: 10px 20px;
  font-size: 18px;
  background: rgba(255,255,255,.4);
  border-color: rgba(255,255,255,.5);
  margin: 10px;
}

.btn{
  background-color: lightgreen;
  border: none;
  padding: 10px 20px;
  border-radius: 5px;
  margin: 10px;
  font-size: 20px;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  cursor: pointer;
}

.btn:hover{
  box-shadow: 0 0 8px rgba(0,0,0,.3);
  transition: all 300ms ease;
}

.info-text{
  font-size: 20px;
  font-weight: 500;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🧠 JavaScript Logic&lt;/strong&gt;&lt;br&gt;
This is the JavaScript code that powers the BMI calculation and updates the result on the screen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const btnEl = document.getElementById("btn");
const bmiInputEl = document.getElementById("bmi-result");
const weightConditionEl = document.getElementById("weight-condition")

function calculateBMI(){
    const heightValue = document.getElementById("height").value / 100;
    const weightValue = document.getElementById("weight").value;


    const bmiValue = weightValue / (heightValue * heightValue);

    bmiInputEl.value = bmiValue;

    if(bmiValue &amp;lt; 18.5){
             weightConditionEl.innerText = "Under Weight";
    } else if ( bmiValue &amp;gt;= 18.5 &amp;amp;&amp;amp; bmiValue &amp;lt;= 24.9){
      weightConditionEl.innerText = "Normal Weight";
    } else if ( bmiValue &amp;gt;= 25 &amp;amp;&amp;amp; bmiValue &amp;lt;= 29.9){
      weightConditionEl.innerText = "Over Weight";
    } else if (bmiValue &amp;gt;= 30 ){
      weightConditionEl.innerText  = "Obesity";
    }

}

btnEl.addEventListener("click", calculateBMI)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;** Sample Output 🎉**&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%2Ffohyenky7nv8st1ynysh.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%2Ffohyenky7nv8st1ynysh.png" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ What I Learned&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to build a clean and responsive UI with HTML &amp;amp; CSS.&lt;/li&gt;
&lt;li&gt;How to get values from form inputs using document.getElementById().&lt;/li&gt;
&lt;li&gt;How to calculate values and show the result dynamically using JavaScript.&lt;/li&gt;
&lt;li&gt;How to categorize results using conditional statements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 Live Demo&lt;br&gt;
Check it out here 👉 &lt;a href="https://bmi-analyzer-gaurav-s-projects-d25bef28.vercel.app/" rel="noopener noreferrer"&gt;https://bmi-analyzer-gaurav-s-projects-d25bef28.vercel.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>sideprojects</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
