I recently launched a developer tools website called AgentsAITools. It's a collection of 90+ free online tools for developers - JSON formatter, Base64 encoder, hash generator, JWT decoder, and more.
This isn't a "how I made millions" post. It's about the technical decisions, mistakes, and lessons from building a real product.
Why I Built It
I was tired of bookmarking 15 different websites for basic developer tasks. Every time I needed to format JSON or encode Base64, I'd open a different site with different UIs, different ads, and different levels of quality.
So I decided to build my own.
The Tech Stack
Frontend: Vue.js 3 with TypeScript
Build Tool: Vite
Hosting: Cloudflare Pages (free)
CDN: Cloudflare
Domain: $12/year
Total cost: $12/year. That's it.
The SPA Problem
The biggest issue I ran into was SEO. Vue.js creates a Single Page Application (SPA), which means all pages share the same HTML. When Google's crawler visits /json-formatter and /hash-text, it sees identical HTML.
This is a disaster for SEO. Google thinks all your pages are the same content.
Solution: SSG (Static Site Generation)
I wrote a script that generates static HTML for each tool page. Now each page has:
Unique
Unique
Unique
Proper JSON-LD structured data
function generateHtml(page) {
let html = indexHtml;
// Replace title
html = html.replace(/
<title>${page.title}</title>);
// Replace description
html = html.replace(
/<meta name="description" content="[^"]*"/,
<meta name="description" content="${page.description}"
);
// Replace canonical URL
html = html.replace(
/<link rel="canonical" href="[^"]*"/,
<link rel="canonical" href="https://agentsaitools.com${page.path}/"
);
return html;
}
The Canonical URL Trap
Another issue: all pages had canonical URLs pointing to the homepage. This tells Google "these pages are duplicates of the homepage."
Fix: Each page's canonical must point to itself:
/json-formatter/ → canonical: https://agentsaitools.com/json-formatter/
/hash-text/ → canonical: https://agentsaitools.com/hash-text/
Internal Linking
Ahrefs audit showed many pages had no internal links (orphan pages).
Solution: Add a "Related Tools" section and "All Tools" list to every page. Now each page links to 90+ other pages.
Results After 3 Months
Google indexed all 93 tool pages
500+ daily visitors from organic search
...(中间省略 3028 字)...
Add to Build Process
{
"scripts": {
"build": "vite build && node scripts/ssg.mjs"
}
}
Key Lessons
Canonical URLs must point to themselves - Not to the homepage
Each page needs unique meta tags - Title, description, keywords
Add structured data - JSON-LD helps search engines understand your content
Test with Google's Rich Results Test - Verify your structured data
Results
After implementing SSG:
All pages indexed by Google
Unique titles in search results
Proper canonical URLs
Rich snippets in search results
Top comments (0)