<?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: Harshil shah </title>
    <description>The latest articles on DEV Community by Harshil shah  (@harshilshah99).</description>
    <link>https://dev.to/harshilshah99</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%2F953146%2F44c38ce8-d2fc-47bb-baee-f4906c271d16.png</url>
      <title>DEV Community: Harshil shah </title>
      <link>https://dev.to/harshilshah99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harshilshah99"/>
    <language>en</language>
    <item>
      <title>Stop Paying for Image Tools — ihateimg.in Does It All for Free 🖼️</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Sat, 09 May 2026 08:33:00 +0000</pubDate>
      <link>https://dev.to/harshilshah99/stop-paying-for-image-tools-ihateimgin-does-it-all-for-free-157</link>
      <guid>https://dev.to/harshilshah99/stop-paying-for-image-tools-ihateimgin-does-it-all-for-free-157</guid>
      <description>&lt;p&gt;If you work with images regularly — whether you're a developer, designer, content creator, or just someone who uploads stuff online — you know the pain. You need to resize a photo, strip EXIF data before posting it, or batch compress 20 product images. You end up hopping between five different sketchy websites, uploading your files to god-knows-whose servers, and wasting 30 minutes doing what should take 30 seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://ihateimg.in" rel="noopener noreferrer"&gt;ihateimg.in&lt;/a&gt;&lt;/strong&gt; was built to fix exactly that.&lt;/p&gt;

&lt;p&gt;Here's a deep dive into every feature — and why each one is genuinely useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎨 Color Palette Extractor
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://ihateimg.in/color-palette-extractor" rel="noopener noreferrer"&gt;Try it: ihateimg.in/color-palette-extractor&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Upload any image and instantly get the dominant colors extracted as a clean palette — with hex codes ready to copy.&lt;/p&gt;

&lt;p&gt;This is incredibly useful when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You want to match a brand's colors from a logo you only have as an image&lt;/li&gt;
&lt;li&gt;You're building a UI and want to pull colors from a reference photo&lt;/li&gt;
&lt;li&gt;You're a designer creating a mood board and need to identify exact shades&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No more eyedropping pixel by pixel in Photoshop. Upload → palette extracted → copy hex → done.&lt;/p&gt;




&lt;h2&gt;
  
  
  🪪 Passport Photo Maker
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://ihateimg.in/passport-photo-maker" rel="noopener noreferrer"&gt;Try it: ihateimg.in/passport-photo-maker&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Getting a passport photo shouldn't require a trip to a photo studio. This tool lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload your photo&lt;/li&gt;
&lt;li&gt;Crop and resize it to official passport/visa dimensions&lt;/li&gt;
&lt;li&gt;Get a print-ready output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Works for different country standards. Saves you time, money, and the awkward experience of a pharmacy photo booth.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔒 Image Metadata Remover
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://ihateimg.in/image-metadata-remover" rel="noopener noreferrer"&gt;Try it: ihateimg.in/image-metadata-remover&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every photo taken on your phone or camera contains hidden EXIF metadata — GPS coordinates, device model, timestamp, and more. When you upload that photo anywhere public, that data goes with it.&lt;/p&gt;

&lt;p&gt;This tool strips all of it out before you share. Essential for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Privacy-conscious posting on social media&lt;/li&gt;
&lt;li&gt;Removing location data from photos before sending to strangers&lt;/li&gt;
&lt;li&gt;Cleaning images before publishing on a website or blog&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One upload, metadata gone, privacy protected.&lt;/p&gt;




&lt;h2&gt;
  
  
  📱 Smart Social Media Export
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://ihateimg.in/smart-social-media-export" rel="noopener noreferrer"&gt;Try it: ihateimg.in/smart-social-media-export&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Different platforms have different image size requirements. What looks perfect on Instagram gets cropped awkwardly on Twitter/X, and LinkedIn has its own specs entirely.&lt;/p&gt;

&lt;p&gt;Smart Social Media Export handles this by letting you export your image in the exact dimensions optimized for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instagram (post, story, reel thumbnail)&lt;/li&gt;
&lt;li&gt;Twitter/X&lt;/li&gt;
&lt;li&gt;LinkedIn&lt;/li&gt;
&lt;li&gt;Facebook&lt;/li&gt;
&lt;li&gt;YouTube thumbnails&lt;/li&gt;
&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Upload once, export for every platform. No guessing pixel dimensions.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔄 Convert Between ALL Formats
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://ihateimg.in/convert" rel="noopener noreferrer"&gt;Try it: ihateimg.in/convert&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;JPG, PNG, WebP, AVIF, GIF, SVG, BMP, TIFF — image formats are a mess. This converter handles all of them.&lt;/p&gt;

&lt;p&gt;Practical use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Converting PNGs to WebP for faster website loading&lt;/li&gt;
&lt;li&gt;Converting a GIF to MP4 or WebP&lt;/li&gt;
&lt;li&gt;Converting AVIF (which not all software opens) to JPEG for compatibility&lt;/li&gt;
&lt;li&gt;Batch converting product images for an e-commerce store&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No software installs. No format left behind.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Batch Processing — The Real Game Changer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://ihateimg.in/batch" rel="noopener noreferrer"&gt;Try it: ihateimg.in/batch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where ihateimg.in really shines. Upload up to &lt;strong&gt;20 images at once&lt;/strong&gt; and apply any combination of operations to all of them:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Compress all&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reduce file sizes without visible quality loss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Resize all&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Set a target dimension applied uniformly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rename all&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Apply a naming pattern (e.g., &lt;code&gt;product-001&lt;/code&gt;, &lt;code&gt;product-002&lt;/code&gt;...)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Watermark all&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Add your logo or text watermark to every image&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Download ZIP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Get all processed images in one clean zip file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Before this, doing any of these tasks at scale meant either writing a script, paying for software like Adobe Bridge, or spending an entire afternoon clicking through images one by one.&lt;/p&gt;

&lt;p&gt;Now it's: upload 20 images → pick operations → download zip. That's it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why ihateimg.in?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free&lt;/strong&gt; — no paywalls, no "export limit reached" messages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No account required&lt;/strong&gt; — just use it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-respecting&lt;/strong&gt; — files aren't stored permanently on servers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast&lt;/strong&gt; — processing happens quickly even for batches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All in one place&lt;/strong&gt; — no more bookmarking 6 different image tool sites&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Who Is This For?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developers&lt;/strong&gt; building web apps who need to prep assets quickly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Designers&lt;/strong&gt; who want fast palette extraction or format conversion without opening heavy software&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content creators&lt;/strong&gt; who post across multiple platforms and need properly sized images&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freelancers&lt;/strong&gt; who process client images in bulk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anyone&lt;/strong&gt; who has ever Googled "free online image compressor" and gotten overwhelmed by ads&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Give It a Try
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://ihateimg.in" rel="noopener noreferrer"&gt;ihateimg.in&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's one of those tools that once you know about it, you use it constantly. Bookmark it. Your future self will thank you.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have a feature request or found a bug? Drop a comment below — the team is actively improving it.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tools</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I built a free alternative to iLoveIMG — no login, no ads, no paywalls</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Sat, 28 Mar 2026 15:18:50 +0000</pubDate>
      <link>https://dev.to/harshilshah99/i-built-a-free-alternative-to-iloveimg-no-login-no-ads-no-paywalls-268d</link>
      <guid>https://dev.to/harshilshah99/i-built-a-free-alternative-to-iloveimg-no-login-no-ads-no-paywalls-268d</guid>
      <description>&lt;p&gt;We've all been there.&lt;/p&gt;

&lt;p&gt;You need to quickly compress an image. You Google "free image tool", land on iLoveIMG, upload your file — and boom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Sign up to continue."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You just wanted to resize a photo. Not create another account you'll forget about in 3 days.&lt;/p&gt;

&lt;p&gt;So after hitting this wall one too many times during a side project, I did what any developer does.&lt;/p&gt;

&lt;p&gt;I built my own. 🛠️&lt;/p&gt;




&lt;h2&gt;
  
  
  Introducing ihateimg.in
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://ihateimg.in" rel="noopener noreferrer"&gt;ihateimg.in&lt;/a&gt;&lt;/strong&gt; — a completely free image toolkit. No account. No ads. No "upgrade to pro" popup appearing right when you need it most.&lt;/p&gt;

&lt;p&gt;Just open the site and get things done.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it's for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🖼️ Crop&lt;/td&gt;
&lt;td&gt;Trim your image exactly how you want&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📐 Resize&lt;/td&gt;
&lt;td&gt;Custom dimensions in pixels or percentage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗜️ Compress&lt;/td&gt;
&lt;td&gt;Reduce file size without killing quality&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;💧 Watermark&lt;/td&gt;
&lt;td&gt;Add text or image watermarks in seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔍 Upscale&lt;/td&gt;
&lt;td&gt;Increase resolution without heavy blur&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The part I'm most proud of — Pipelines ⚡
&lt;/h2&gt;

&lt;p&gt;Most tools make you do this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Upload → Edit → Download → Re-upload → Edit again → Download → Repeat 😤&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With &lt;strong&gt;ihateimg.in&lt;/strong&gt;, you can chain multiple edits into a single pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compress + Resize + Watermark&lt;/strong&gt; — all in one go. Upload once, get your final result. Done.&lt;/p&gt;

&lt;p&gt;This alone saves me several minutes every single time I work with images.&lt;/p&gt;




&lt;h2&gt;
  
  
  How it stacks up against iLoveIMG
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;iLoveIMG&lt;/th&gt;
&lt;th&gt;ihateimg.in&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Login required&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ Never&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ads&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ Never&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Paid plan&lt;/td&gt;
&lt;td&gt;$60/year&lt;/td&gt;
&lt;td&gt;Free forever&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pipeline / batch edits&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compress, Resize, Crop&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Watermark&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upscale&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;iLoveIMG is a solid product — but it's built around converting free users into paying ones. Nothing wrong with that as a business, but it's not what I wanted as a user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ihateimg.in is built around getting out of your way.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The honest backstory
&lt;/h2&gt;

&lt;p&gt;I needed a quick image tool for a side project. Every popular option either had ads, required signup, or locked the exact feature I needed behind a paywall.&lt;/p&gt;

&lt;p&gt;So I spent a weekend building something I actually wanted to use.&lt;/p&gt;

&lt;p&gt;It's been live for a while now. I've been quietly adding features and fixing bugs. Today felt like the right time to finally share it with the dev community and get real feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://ihateimg.in" rel="noopener noreferrer"&gt;ihateimg.in&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd genuinely love to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What's missing?&lt;/li&gt;
&lt;li&gt;What would make this a tool you actually reach for?&lt;/li&gt;
&lt;li&gt;Any bugs or rough edges you hit?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Drop a comment — I read every single one. 🙏&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>tooling</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I got tired of uploading the same image 5 times… so I built ihateimg.in</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Sun, 22 Mar 2026 06:05:07 +0000</pubDate>
      <link>https://dev.to/harshilshah99/i-got-tired-of-uploading-the-same-image-5-times-so-i-built-ihateimgin-h4c</link>
      <guid>https://dev.to/harshilshah99/i-got-tired-of-uploading-the-same-image-5-times-so-i-built-ihateimgin-h4c</guid>
      <description>&lt;p&gt;If you've ever used online image tools, you probably know this painful workflow:&lt;/p&gt;

&lt;p&gt;Upload image → Compress → Download&lt;br&gt;
Upload again → Resize → Download&lt;br&gt;
Upload again → Crop → Download&lt;/p&gt;

&lt;p&gt;Repeat until you either finish your task…&lt;br&gt;
or lose your sanity.&lt;/p&gt;

&lt;p&gt;At some point, I realized I wasn’t editing images anymore —&lt;br&gt;
I was just stuck in an &lt;em&gt;upload-download loop simulator&lt;/em&gt; 😅&lt;/p&gt;




&lt;h2&gt;
  
  
  🚧 The problem
&lt;/h2&gt;

&lt;p&gt;Most online tools are built as &lt;strong&gt;single-purpose utilities&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Which sounds fine… until you actually try to do something simple like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Crop + resize + compress an image"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Suddenly you're:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uploading the same file multiple times&lt;/li&gt;
&lt;li&gt;Waiting again and again&lt;/li&gt;
&lt;li&gt;Losing time on something that should take seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It just felt… outdated.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The idea
&lt;/h2&gt;

&lt;p&gt;I thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why can’t image editing work like a pipeline?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Upload once.&lt;br&gt;
Apply multiple operations.&lt;br&gt;
Download once.&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What I built
&lt;/h2&gt;

&lt;p&gt;So I built 👉 &lt;strong&gt;ihateimg.in&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A simple browser-based tool where you can chain operations like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crop&lt;/li&gt;
&lt;li&gt;Resize&lt;/li&gt;
&lt;li&gt;Compress&lt;/li&gt;
&lt;li&gt;Convert formats&lt;/li&gt;
&lt;li&gt;Add watermark&lt;/li&gt;
&lt;li&gt;Rotate / flip&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in one go.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ How it works
&lt;/h2&gt;

&lt;p&gt;Instead of jumping between pages, you:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload your image once&lt;/li&gt;
&lt;li&gt;Add multiple actions (like a stack)&lt;/li&gt;
&lt;li&gt;Execute everything together&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No re-uploading. No repeated downloads.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Design choices
&lt;/h2&gt;

&lt;p&gt;A few things I intentionally focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No login required&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No forced watermark&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fast and minimal UI&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Works directly in browser&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I didn’t want another bloated tool — just something that &lt;em&gt;gets the job done quickly&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  😤 Why the name?
&lt;/h2&gt;

&lt;p&gt;Honestly…&lt;/p&gt;

&lt;p&gt;After the 10th time re-uploading the same image,&lt;br&gt;
“I hate image tools” felt very accurate 😄&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 What I’m exploring next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Batch processing&lt;/li&gt;
&lt;li&gt;Better compression algorithms&lt;/li&gt;
&lt;li&gt;Saving pipelines&lt;/li&gt;
&lt;li&gt;API access for developers&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🙌 Looking for feedback
&lt;/h2&gt;

&lt;p&gt;If you’ve faced similar issues (or think I’m overreacting 😅),&lt;br&gt;
I’d love to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the pipeline idea make sense?&lt;/li&gt;
&lt;li&gt;What features would you want next?&lt;/li&gt;
&lt;li&gt;Anything that feels confusing or missing?&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If this saves you even a few minutes,&lt;br&gt;
then it already did its job 🙂&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>saas</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Fed up with clunky image editors? I built ihateimg.in — free, fast, no signup needed</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Wed, 18 Mar 2026 19:00:13 +0000</pubDate>
      <link>https://dev.to/harshilshah99/fed-up-with-clunky-image-editors-i-built-ihateimgin-free-fast-no-signup-needed-5g63</link>
      <guid>https://dev.to/harshilshah99/fed-up-with-clunky-image-editors-i-built-ihateimgin-free-fast-no-signup-needed-5g63</guid>
      <description>&lt;p&gt;I built a free image tool that lets you chain multiple edits in one go — no login, no BS&lt;/p&gt;

&lt;p&gt;If you've ever had to compress an image, then crop it, then add a watermark... you know the pain. Open three different websites, re-upload every single time, lose quality with every step.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;&lt;a href="https://ihateimg.in" rel="noopener noreferrer"&gt;ihateimg.in&lt;/a&gt;&lt;/strong&gt; — a free, no-login image toolkit that handles it all.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it can do
&lt;/h2&gt;

&lt;p&gt;🗜️ &lt;strong&gt;Compress&lt;/strong&gt; — shrink file sizes without killing quality&lt;br&gt;&lt;br&gt;
✂️ &lt;strong&gt;Crop&lt;/strong&gt; — trim exactly what you need&lt;br&gt;&lt;br&gt;
📐 &lt;strong&gt;Resize&lt;/strong&gt; — set custom dimensions instantly&lt;br&gt;&lt;br&gt;
💧 &lt;strong&gt;Watermark&lt;/strong&gt; — protect your images with text or logo&lt;br&gt;&lt;br&gt;
🔄 &lt;strong&gt;Rotate &amp;amp; Flip&lt;/strong&gt; — straighten or mirror in one click&lt;br&gt;&lt;br&gt;
🔧 ...and more tools being added  &lt;/p&gt;




&lt;h2&gt;
  
  
  The best part? The Pipeline Feature 🚀
&lt;/h2&gt;

&lt;p&gt;Instead of visiting 5 tools separately, you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add multiple tools in sequence &lt;em&gt;(e.g. Crop → Resize → Watermark)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Upload your image once&lt;/li&gt;
&lt;li&gt;Hit execute — done.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;One image. One upload. Everything applied at once.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why you'll love it
&lt;/h2&gt;

&lt;p&gt;✅ 100% Free&lt;br&gt;&lt;br&gt;
✅ No login required&lt;br&gt;&lt;br&gt;
✅ No watermarks forced on you&lt;br&gt;&lt;br&gt;
✅ Works right in your browser  &lt;/p&gt;




&lt;p&gt;Would love your feedback — especially if something is broken or a tool you wish existed. Drop a comment or try it out 👇&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://ihateimg.in" rel="noopener noreferrer"&gt;ihateimg.in&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Code Collab</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Sun, 21 May 2023 04:39:47 +0000</pubDate>
      <link>https://dev.to/harshilshah99/code-collab-3log</link>
      <guid>https://dev.to/harshilshah99/code-collab-3log</guid>
      <description>&lt;p&gt;&lt;a href="https://code-collab.xyz" rel="noopener noreferrer"&gt;CodeCollab&lt;/a&gt; is a web solution that allows multiple users to code together in real-time, and you can also run and save the code file, with a chat feature for easy communication and support for multiple languages and CodeGPT for solving any programming related queries.&lt;/p&gt;

&lt;p&gt;Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Realtime code editing&lt;/li&gt;
&lt;li&gt;Code in multiple languages&lt;/li&gt;
&lt;li&gt;Save your code&lt;/li&gt;
&lt;li&gt;Run your code&lt;/li&gt;
&lt;li&gt;CodeGPT&lt;/li&gt;
&lt;li&gt;Chat with the users in the room&lt;/li&gt;
&lt;li&gt;Tech Stack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Frontend : ReactJs, Socket IO, Bootstrap&lt;br&gt;
Backend : NodeJs, Express&lt;br&gt;
API : Open AI API&lt;br&gt;
Hosting : Render&lt;/p&gt;

&lt;p&gt;Link - &lt;a href="https://code-collab.xyz" rel="noopener noreferrer"&gt;https://code-collab.xyz&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Code-Collab</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Tue, 18 Apr 2023 09:50:12 +0000</pubDate>
      <link>https://dev.to/harshilshah99/code-collab-2l5n</link>
      <guid>https://dev.to/harshilshah99/code-collab-2l5n</guid>
      <description>&lt;p&gt;&lt;a href="https://code-collab.xyz" rel="noopener noreferrer"&gt;&lt;strong&gt;CodeCollab&lt;/strong&gt;&lt;/a&gt; is a web solution that allows multiple users to code together in real-time, and you can also run and save the code file, with a chat feature for easy communication and support for multiple languages and CodeGPT for solving any programming related queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flowchart&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%2Fucxne6pvuziz06qwa5r5.jpg" 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%2Fucxne6pvuziz06qwa5r5.jpg" alt=" " width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Realtime code editing&lt;/li&gt;
&lt;li&gt;Code in multiple languages&lt;/li&gt;
&lt;li&gt;Save your code&lt;/li&gt;
&lt;li&gt;Run your code&lt;/li&gt;
&lt;li&gt;CodeGPT&lt;/li&gt;
&lt;li&gt;Chat with the users in the room&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend : ReactJs, Socket IO, Bootstrap&lt;/li&gt;
&lt;li&gt;Backend : NodeJs, Express&lt;/li&gt;
&lt;li&gt;API : Open AI API&lt;/li&gt;
&lt;li&gt;Hosting : Render&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Link&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://code-collab.xyz" rel="noopener noreferrer"&gt;https://code-collab.xyz&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Code-Collab</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Thu, 09 Mar 2023 04:37:30 +0000</pubDate>
      <link>https://dev.to/harshilshah99/code-collab-2hkn</link>
      <guid>https://dev.to/harshilshah99/code-collab-2hkn</guid>
      <description>&lt;p&gt;&lt;strong&gt;Code-Collab&lt;/strong&gt; is a realtime code sync website. Multiple users can connect to the room and can use the code editor. Users can code in various languages. There is a chat feature to help users communicate easily.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tech Stack used:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;NodeJs&lt;/li&gt;
&lt;li&gt;Express&lt;/li&gt;
&lt;li&gt;Socket IO&lt;/li&gt;
&lt;li&gt;Bootstrap&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Link to the &lt;a href="https://www.harshilshah.xyz/" rel="noopener noreferrer"&gt;website&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>UseRef Hook React</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Mon, 26 Dec 2022 07:17:09 +0000</pubDate>
      <link>https://dev.to/harshilshah99/useref-hook-18o5</link>
      <guid>https://dev.to/harshilshah99/useref-hook-18o5</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useState, useEffect, useRef } from "react";
import ReactDOM from "react-dom/client";

function App() {
  const [inputValue, setInputValue] = useState("");
  const previousInputValue = useRef("");

  useEffect(() =&amp;gt; {
    previousInputValue.current = inputValue;
  }, [inputValue]);

  return (
    &amp;lt;&amp;gt;
      &amp;lt;input
        type="text"
        value={inputValue}
        onChange={(e) =&amp;gt; setInputValue(e.target.value)}
      /&amp;gt;
      &amp;lt;h2&amp;gt;Current Value: {inputValue}&amp;lt;/h2&amp;gt;
      &amp;lt;h2&amp;gt;Previous Value: {previousInputValue.current}&amp;lt;/h2&amp;gt;
    &amp;lt;/&amp;gt;
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(&amp;lt;App /&amp;gt;);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>motivation</category>
    </item>
    <item>
      <title>V-Blogs</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Tue, 20 Dec 2022 13:12:05 +0000</pubDate>
      <link>https://dev.to/harshilshah99/v-blogs-26ig</link>
      <guid>https://dev.to/harshilshah99/v-blogs-26ig</guid>
      <description>&lt;p&gt;V-Blogs is a website in which you can add, update, delete blogs. In this website you can listen to the blogs. You can also record the blog to publish it. It is created using &lt;strong&gt;&lt;em&gt;react&lt;/em&gt;&lt;/strong&gt; and any user can add their blogs.&lt;/p&gt;




&lt;p&gt;You can view the website by clicking on below link:&lt;br&gt;
&lt;a href="https://blogging-d53ef.web.app/" rel="noopener noreferrer"&gt;V-blogs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blog</category>
      <category>technology</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>UseState Hook React</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Wed, 23 Nov 2022 03:59:58 +0000</pubDate>
      <link>https://dev.to/harshilshah99/usestate-hook-react-2inf</link>
      <guid>https://dev.to/harshilshah99/usestate-hook-react-2inf</guid>
      <description>&lt;p&gt;&lt;strong&gt;UseState Hook&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The React useState Hook allows us to track state in a function component.&lt;/p&gt;

&lt;p&gt;State generally refers to data or properties that need to be tracking in an application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React,{useState} from 'react';

function Example(){
const [count,setCount] = useState(0);
return(
    &amp;lt;div&amp;gt;
        &amp;lt;p&amp;gt;you have clicked {count} times&amp;lt;/p&amp;gt;
        &amp;lt;button onClick={()=&amp;gt; setCount(count+1)}&amp;gt;
        Click Me
        &amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;

    );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>learning</category>
    </item>
    <item>
      <title>Adding ads to your website</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Tue, 08 Nov 2022 07:05:06 +0000</pubDate>
      <link>https://dev.to/harshilshah99/adding-ads-to-your-website-18dn</link>
      <guid>https://dev.to/harshilshah99/adding-ads-to-your-website-18dn</guid>
      <description>&lt;p&gt;&lt;a href="https://cyclingg.web.app" rel="noopener noreferrer"&gt;https://cyclingg.web.app&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;You can add &lt;strong&gt;ads&lt;/strong&gt; to your websites. You just need to login to &lt;strong&gt;adsterra&lt;/strong&gt; and then you need to add the link of your website ,you then need to choose which ads to display on your website and also the size and type of the ads. They will the take a few minutes to check your website and then provide you with the code to write in your html file where you want to display the ad and then you have to again deploy your website with the new code and that's how you can add ads to your website.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://cyclingg.web.app" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/p&gt;

</description>
      <category>website</category>
      <category>webdev</category>
      <category>ads</category>
      <category>programming</category>
    </item>
    <item>
      <title>HTML Image Map</title>
      <dc:creator>Harshil shah </dc:creator>
      <pubDate>Wed, 02 Nov 2022 06:08:57 +0000</pubDate>
      <link>https://dev.to/harshilshah99/html-image-map-2gd6</link>
      <guid>https://dev.to/harshilshah99/html-image-map-2gd6</guid>
      <description>&lt;p&gt;With HTML image maps, you can create clickable areas on an image.&lt;/p&gt;

&lt;p&gt;The HTML &lt;strong&gt;map&lt;/strong&gt; tag defines an image map. An image map is an image with clickable areas. The areas are defined with one or more &lt;strong&gt;area&lt;/strong&gt; tags.&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;img src="workplace.jpg" alt="Workplace" usemap="#workmap"&amp;gt;

&amp;lt;map name="workmap"&amp;gt;
  &amp;lt;area shape="rect" coords="34,44,270,350" alt="Computer" href="computer.html"&amp;gt;
  &amp;lt;area shape="rect" coords="290,172,333,250" alt="Phone" href="phone.html"&amp;gt;
  &amp;lt;area shape="circle" coords="337,300,44" alt="Coffee" href="coffee.html"&amp;gt;
&amp;lt;/map&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;To get the coordinates of the objects in the image you can visit the following websites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.image-map.net/" rel="noopener noreferrer"&gt;https://www.image-map.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imagemap.org/" rel="noopener noreferrer"&gt;https://imagemap.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;blockquote&gt;
&lt;p&gt;You can also visit my website where image map is used &lt;/p&gt;
&lt;div class="ltag-netlify"&gt;
  &lt;iframe src="https://reverent-yalow-4ee88e.netlify.app/accessories" title="Netlify embed"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;



&lt;p&gt;And you can find the above website's code at &lt;a href="https://github.com/harshilshah99/greenPaddle/blob/main/public/accessories.html" rel="noopener noreferrer"&gt;https://github.com/harshilshah99/greenPaddle/blob/main/public/accessories.html&lt;/a&gt; &lt;/p&gt;


&lt;/blockquote&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%2Fesdonxqo5kzyj9rugnuf.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%2Fesdonxqo5kzyj9rugnuf.png" alt="Image of HTML image mapper from above website" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>html</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
