<?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: I'm Phuc</title>
    <description>The latest articles on DEV Community by I'm Phuc (@phc_y_55deee7323f8de7e).</description>
    <link>https://dev.to/phc_y_55deee7323f8de7e</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%2F3844697%2F23b2876c-8955-441c-90f7-3c444abd5bec.png</url>
      <title>DEV Community: I'm Phuc</title>
      <link>https://dev.to/phc_y_55deee7323f8de7e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/phc_y_55deee7323f8de7e"/>
    <language>en</language>
    <item>
      <title>How AI Scrapers Crashed My Vercel App (And How I Saved It with DigitalOcean &amp; Cloudflare)</title>
      <dc:creator>I'm Phuc</dc:creator>
      <pubDate>Tue, 07 Apr 2026 11:39:52 +0000</pubDate>
      <link>https://dev.to/phc_y_55deee7323f8de7e/how-ai-scrapers-crashed-my-vercel-app-and-how-i-saved-it-with-digitalocean-cloudflare-1n0o</link>
      <guid>https://dev.to/phc_y_55deee7323f8de7e/how-ai-scrapers-crashed-my-vercel-app-and-how-i-saved-it-with-digitalocean-cloudflare-1n0o</guid>
      <description>&lt;p&gt;If you run a public-facing website today, you might have noticed some strange, massive spikes in your traffic. You get excited, thinking your app finally went viral—only to realize it's just AI bots hammering your servers.&lt;/p&gt;

&lt;p&gt;I recently experienced this exact scenario with my project, &lt;strong&gt;Viconic.dev&lt;/strong&gt;, a platform for finding and sharing icons. Here's the story of how AI crawlers almost took down my site—and how I regained control without losing AI search visibility.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 The "Hug of Death" by AI Bots
&lt;/h2&gt;

&lt;p&gt;Initially, I hosted Viconic on &lt;strong&gt;Vercel&lt;/strong&gt;. It was fast, easy to deploy, and worked perfectly for my needs.&lt;/p&gt;

&lt;p&gt;However, as the site grew, I started getting hit by massive waves of automated requests.&lt;/p&gt;

&lt;p&gt;Web crawlers from AI companies like &lt;strong&gt;Perplexity&lt;/strong&gt;, &lt;strong&gt;OpenAI (ChatGPT)&lt;/strong&gt;, and others were aggressively scraping my site for training data and real-time search results.&lt;/p&gt;

&lt;p&gt;Within a short period, these bots completely exhausted my Vercel request limits.&lt;/p&gt;

&lt;p&gt;👉 My site was choking.&lt;br&gt;&lt;br&gt;
👉 I was facing potential downtime.&lt;br&gt;&lt;br&gt;
👉 And unexpected costs were coming.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Step 1: Moving for Control (Vercel → DigitalOcean)
&lt;/h2&gt;

&lt;p&gt;To handle the load and get more predictable server control, I decided to migrate my infrastructure from &lt;strong&gt;Vercel&lt;/strong&gt; to &lt;strong&gt;DigitalOcean&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Having my own server environment gave me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better stability&lt;/li&gt;
&lt;li&gt;No serverless request limits&lt;/li&gt;
&lt;li&gt;Predictable pricing&lt;/li&gt;
&lt;li&gt;More control over traffic handling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was no longer at the mercy of request quotas—and I finally had the raw power to handle traffic spikes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛡️ Step 2: Taming the Bots with Cloudflare
&lt;/h2&gt;

&lt;p&gt;Moving servers solved the capacity issue—but letting bots consume all my bandwidth was still a bad idea.&lt;/p&gt;

&lt;p&gt;At the same time, I &lt;strong&gt;didn't want to block them completely&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI search engines are the future of discovery, and I still wanted Viconic to be referenced by tools like ChatGPT and Perplexity.&lt;/p&gt;

&lt;p&gt;So I brought in &lt;strong&gt;Cloudflare&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  My "Smart Defense" Strategy:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🚫 Throttling aggressive behavior
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Blocked or rate-limited known AI bots&lt;/li&gt;
&lt;li&gt;Prevented crawling on resource-heavy endpoints&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ✅ Allowing targeted access
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Whitelisted bots for:

&lt;ul&gt;
&lt;li&gt;Icon portfolio pages&lt;/li&gt;
&lt;li&gt;Search endpoints&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This created a perfect balance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bots can still index my content
&lt;/li&gt;
&lt;li&gt;But they &lt;strong&gt;can't overload my infrastructure&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;AI is changing how traffic works on the web.&lt;/p&gt;

&lt;p&gt;As developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We &lt;strong&gt;can’t block all bots&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;But we also &lt;strong&gt;can’t let them drain our resources&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A solid setup like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DigitalOcean (VPS) + Cloudflare (Smart Routing &amp;amp; Bot Control)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…is a powerful way to survive in the AI scraping era.&lt;/p&gt;




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

&lt;p&gt;Have you experienced AI bots crashing your projects?&lt;/p&gt;

&lt;p&gt;How are you handling this new wave of AI scrapers?&lt;/p&gt;

&lt;p&gt;Let me know in the comments 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Check out Viconic
&lt;/h2&gt;

&lt;p&gt;If you're looking for high-quality icons for your next project, feel free to explore:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://viconic.dev" rel="noopener noreferrer"&gt;https://viconic.dev&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Cheers 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cloud</category>
      <category>devops</category>
      <category>ai</category>
    </item>
    <item>
      <title>Why I moved Viconic to a new domain (and what's new)</title>
      <dc:creator>I'm Phuc</dc:creator>
      <pubDate>Wed, 01 Apr 2026 15:32:23 +0000</pubDate>
      <link>https://dev.to/phc_y_55deee7323f8de7e/why-i-moved-viconic-to-a-new-domain-and-whats-new-3nom</link>
      <guid>https://dev.to/phc_y_55deee7323f8de7e/why-i-moved-viconic-to-a-new-domain-and-whats-new-3nom</guid>
      <description>&lt;p&gt;Over the past few weeks, I’ve been quietly working on improving Viconic — a project I’ve been building to make working with icons simpler and more enjoyable.&lt;/p&gt;

&lt;p&gt;Originally, the project lived at viconic.io.vn. It worked well, especially for local usage. But since I’m based in Vietnam, I often discuss projects with friends and other developers here — and one piece of advice kept coming up:&lt;/p&gt;

&lt;p&gt;“If you want better SEO and a more global presence, you should move to a .dev domain.”&lt;/p&gt;

&lt;p&gt;At first, I didn’t think it would make a huge difference. But the more I looked into it — branding, trust, and discoverability — the more it made sense.&lt;/p&gt;

&lt;p&gt;So I decided to make the switch 👉 &lt;a href="https://viconic.dev" rel="noopener noreferrer"&gt;https://viconic.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s a small change on the surface, but it feels like a step toward building something more global.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Better UI with Multiple Themes
&lt;/h2&gt;

&lt;p&gt;One thing I’ve always cared about is how tools feel to use — not just what they do.&lt;/p&gt;

&lt;p&gt;So in this update, I introduced multiple color themes to make the experience more flexible and personal.&lt;/p&gt;

&lt;p&gt;Available themes include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blue&lt;/li&gt;
&lt;li&gt;Red&lt;/li&gt;
&lt;li&gt;Orange&lt;/li&gt;
&lt;li&gt;Amber&lt;/li&gt;
&lt;li&gt;Teal&lt;/li&gt;
&lt;li&gt;Purple&lt;/li&gt;
&lt;li&gt;Rose&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%2Fir6w83c662a09btl895x.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%2Fir6w83c662a09btl895x.png" alt=" " width="402" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of being locked into a single look, users can now choose what fits their style or mood.&lt;/p&gt;

&lt;p&gt;In the image, you can see how switching themes instantly changes the tone of the interface. It’s a small detail, but it makes the product feel more alive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Viconic Plugin (Early but Promising)
&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%2Fsx5svj4emj3xqfj4sbdd.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%2Fsx5svj4emj3xqfj4sbdd.png" alt=" " width="788" height="762"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alongside the website, I’ve also started working on the Viconic Plugin — currently focused on integrating with Figma.&lt;/p&gt;

&lt;p&gt;Right now, it’s still in a very early stage, but it already supports:&lt;/p&gt;

&lt;p&gt;Browsing icon collections&lt;br&gt;
Searching icons quickly&lt;br&gt;
Clicking an icon to instantly insert it into Figma&lt;/p&gt;

&lt;p&gt;The goal is simple: reduce friction.&lt;/p&gt;

&lt;p&gt;Instead of downloading SVGs, copying code, or switching between tabs — everything should happen in one smooth flow.&lt;/p&gt;

&lt;p&gt;There’s still a lot to improve, but this is the first step.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned From This Update
&lt;/h2&gt;

&lt;p&gt;This update isn’t just about features — it’s also about learning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Small branding decisions matter (like choosing the right domain)&lt;/li&gt;
&lt;li&gt;User experience is more than functionality&lt;/li&gt;
&lt;li&gt;Start simple, iterate fast — especially with plugins&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤔 What Should I Build Next?
&lt;/h2&gt;

&lt;p&gt;I’m still exploring the direction for Viconic, and I’d genuinely love to hear your thoughts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Should I focus more on the plugin ecosystem or keep improving the web platform?&lt;/li&gt;
&lt;li&gt;What would make this tool part of your daily workflow?&lt;/li&gt;
&lt;li&gt;Would you prefer deeper Figma integration or support for tools like VS Code?&lt;/li&gt;
&lt;li&gt;Do UI themes actually matter to you, or are they just a nice bonus?&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;If you’re curious or want to try it out, feel free to visit:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://viconic.dev" rel="noopener noreferrer"&gt;https://viconic.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any feedback, ideas, or even criticism would mean a lot — this project is still evolving, and your input can help shape it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I built my own icon platform after getting frustrated with FontAwesome — here's how each feature came to life</title>
      <dc:creator>I'm Phuc</dc:creator>
      <pubDate>Thu, 26 Mar 2026 14:38:54 +0000</pubDate>
      <link>https://dev.to/phc_y_55deee7323f8de7e/i-built-my-own-icon-platform-after-getting-frustrated-with-fontawesome-heres-how-each-feature-352g</link>
      <guid>https://dev.to/phc_y_55deee7323f8de7e/i-built-my-own-icon-platform-after-getting-frustrated-with-fontawesome-heres-how-each-feature-352g</guid>
      <description>&lt;p&gt;I'm a 20-year-old student from Vietnam. I built Viconic (viconic.io.vn) alone, with no team and no sponsor. Every single feature came from a real frustration I had while building web projects.&lt;br&gt;
Here's the story.&lt;/p&gt;

&lt;h2&gt;
  
  
  It started with FontAwesome
&lt;/h2&gt;

&lt;p&gt;When I first learned web development, I used FontAwesome like everyone else. But the kit builder was confusing — I couldn't figure out how to generate a CDN link on my own. I ended up having to go to cdnjs.com just to grab a script tag. The free tier also had very few icons.&lt;br&gt;
At the time, I had no idea SVGrepo or Iconify even existed.&lt;br&gt;
So I started building my own thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every feature came from a real problem
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SVG injection instead of font icons
&lt;/h3&gt;

&lt;p&gt;My first approach was to use icomoon to generate font icons. But I quickly ran into a problem — font-based icons can't render multicolor icons accurately. Colors get lost or merged.&lt;br&gt;
So I switched to SVG injection. Icons load directly via a  custom tag from the CDN, similar to how Iconify works. Bundle size stays at 0KB since nothing is bundled — icons are fetched at runtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kit builder for offline use
&lt;/h3&gt;

&lt;p&gt;I study at a university where the internet connection is often unstable or completely unavailable. I needed a way to prepare a set of icons in advance and use them offline — similar to icomoon's kit system, but without the font limitations.&lt;br&gt;
So I built a kit builder. You pick the icons you need, give the kit a name, and Viconic generates a custom CDN URL for that kit. Load that URL once and all your icons are ready — even offline after the first load.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inline SVG editor
&lt;/h3&gt;

&lt;p&gt;Every time I needed to inspect or quickly tweak an icon, I'd open a new tab and go to svgviewer.dev. After doing this dozens of times, I got tired of it.&lt;br&gt;
So I built an SVG editor directly into Viconic. You can adjust colors, size, and preview the result in real time — without leaving the page.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fast mode
&lt;/h3&gt;

&lt;p&gt;Sometimes I just need to copy an icon quickly. Opening a detail modal every single time felt unnecessary.&lt;br&gt;
So I added fast mode. When enabled, clicking an icon copies it instantly — no modal, no extra steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Viconic has now — completely free
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;200,000+ icons from Lucide, Tabler, FontAwesome, and many more&lt;/li&gt;
&lt;li&gt;CDN + npm package with zero bundle size&lt;/li&gt;
&lt;li&gt;SVG injection via  custom tag&lt;/li&gt;
&lt;li&gt;Kit builder — create your own icon set with a custom CDN URL&lt;/li&gt;
&lt;li&gt;Inline SVG editor — adjust colors and size directly in the browser&lt;/li&gt;
&lt;li&gt;Copy as JSX, SVG, HTML, or Tailwind class in one click&lt;/li&gt;
&lt;li&gt;Fast mode — click to copy instantly&lt;/li&gt;
&lt;li&gt;Individual page for each icon — download SVG or PNG&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I'm sharing this
&lt;/h2&gt;

&lt;p&gt;I'm not sharing this because Viconic is perfect. It's still in open beta and there's a lot left to build.&lt;br&gt;
I'm sharing because every feature on this list came from a real problem I personally ran into. No market research, no competitor analysis — just solving my own frustrations one by one.&lt;br&gt;
If you've ever felt like existing icon tools were either too complex, too limited on the free tier, or just not designed for how you actually work — Viconic might be worth a try.&lt;br&gt;
👉 &lt;a href="https://viconic.io.vn" rel="noopener noreferrer"&gt;https://viconic.io.vn&lt;/a&gt;&lt;br&gt;
I'd love honest feedback — what's missing, what's broken, what would make you actually use this over SVGrepo or Iconify.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>frontend</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
