<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ruoyexi pan</title>
    <description>The latest articles on Forem by ruoyexi pan (@ruoyexi_pan_9ef6adab51ba8).</description>
    <link>https://forem.com/ruoyexi_pan_9ef6adab51ba8</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%2F3924520%2F43cea002-812b-4a0e-b35d-a005491696f5.jpg</url>
      <title>Forem: ruoyexi pan</title>
      <link>https://forem.com/ruoyexi_pan_9ef6adab51ba8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ruoyexi_pan_9ef6adab51ba8"/>
    <language>en</language>
    <item>
      <title>I Built a Developer Tools Website Because I Was Tired of Bookmarking 20 Different Sites</title>
      <dc:creator>ruoyexi pan</dc:creator>
      <pubDate>Mon, 11 May 2026 08:39:07 +0000</pubDate>
      <link>https://forem.com/ruoyexi_pan_9ef6adab51ba8/i-built-a-developer-tools-website-because-i-was-tired-of-bookmarking-20-different-sites-ec4</link>
      <guid>https://forem.com/ruoyexi_pan_9ef6adab51ba8/i-built-a-developer-tools-website-because-i-was-tired-of-bookmarking-20-different-sites-ec4</guid>
      <description>&lt;p&gt;Every developer has that folder in their bookmarks. You know the one. JSON formatter here, Base64 converter there, regex tester somewhere else, hash generator in another tab.&lt;br&gt;
I got tired of it.&lt;br&gt;
So I built AgentsAITools - a single place with 86+ developer tools that actually work well together.&lt;br&gt;
The problem&lt;br&gt;
My typical workflow looked like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Need to format some JSON → open jsonformatter.org&lt;/li&gt;
&lt;li&gt;Need to encode something in Base64 → open base64decode.org&lt;/li&gt;
&lt;li&gt;Need to test a regex → open regex101.com&lt;/li&gt;
&lt;li&gt;Need to generate a hash → search "md5 hash generator"&lt;/li&gt;
&lt;li&gt;Need to check a JWT → open jwt.io
Five different sites. Five different interfaces. Five different sets of ads and popups.
What I built
A single-page app with everything in one place. The tools are organized by category:&lt;/li&gt;
&lt;li&gt;Crypto &amp;amp; Security (hash, encrypt, generate)&lt;/li&gt;
&lt;li&gt;Converters (JSON, YAML, Base64, colors)&lt;/li&gt;
&lt;li&gt;Web (URL encoding, HTML entities, meta tags)&lt;/li&gt;
&lt;li&gt;Text (lorem ipsum, diff, case conversion)&lt;/li&gt;
&lt;li&gt;Network (IP calculators, MAC lookup)
Tech decisions
I went with Vue.js 3 + TypeScript because I wanted something reactive and type-safe. Vite for the build tool because it's fast. Cloudflare Pages for hosting because it's free and the CDN is solid.
No backend. Everything runs client-side. Your data never leaves your browser.
What I learned&lt;/li&gt;
&lt;li&gt;Simple tools have surprisingly complex edge cases. JSON formatting sounds easy until you deal with deeply nested objects, circular references, or different encoding standards.&lt;/li&gt;
&lt;li&gt;SEO for tool sites is different. Each tool needs its own landing page with proper meta tags. Google treats each tool as a separate query intent.&lt;/li&gt;
&lt;li&gt;Free hosting is good enough. Cloudflare Pages handles everything. No need for a VPS for a static site.
Try it
&lt;a href="https://agentsaitools.com" rel="noopener noreferrer"&gt;https://agentsaitools.com&lt;/a&gt;
Feedback welcome. Always looking for new tool ideas or ways to improve existing ones.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>productivity</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
