This guide provides a comprehensive, step-by-step roadmap to building a passive income stream through micro-tool websites. By finding small, low-competition problems and using AI to build fast, SEO-optimized utilities, you can rank on Google and earn revenue via Google AdSense.
.com domain (~₹1,000/year).The goal is to find a small problem with low competition that users are actively searching for.
Your domain name is a crucial ranking factor.
.com domain.realonlineruler.com contains online and ruler).freeruler.com is taken, try adding context like realonlineruler.com.Prepare your local machine for the AI agent to build the tool.
npm install -g @anthropic-ai/claude-code
*(Why? This command uses the Node Package Manager (npm) to install Claude Code globally (-g) on your system, allowing you to use the claude command from any terminal folder.)*
Alternatively, use free alternatives like Cursor AI or Gemini CLI / Google OpenCode Minimax.realonlineruler.com).npm create astro@latest .
(Why this command? npm create fetches the latest Astro installation script. The . at the end tells it to install directly into your current empty folder rather than creating a new subfolder. Astro is chosen because it outputs static HTML, which is lightning-fast and highly favored by Google's search algorithms.)Give the AI the context it needs to create professional, modern designs.
Vercel Design System: In a separate terminal, install the Vercel design markdown structure:
npx shadcn@latest init
(Why this command? npx runs a package without permanently installing it. shadcn is a popular UI component library. This command pulls down Vercel's clean, modern design standards into your project so the AI has a beautiful baseline to work from.)
(Alternatively, search for "Vercel design.md" on Google and download it to your project root as @DESIGN.md)
Launch Your AI Agent: In the VS Code terminal, start your CLI:
claude
antigravity
(Alternatively, if using Cursor AI, just open the Composer/Chat panel).Install Skills / Provide Context:
claude mcp add web-design-guidelines
claude mcp add tailwind-v4-docs
(Source Links: Web Design Guidelines | Tailwind v4 Docs)@Docs feature and search for "Tailwind CSS v4" to give it context.(Purpose: AI models are trained on past data. Adding live context or MCP "skills" ensures the AI writes modern code instead of outdated versions, preventing frustrating bugs.)
Astro JS MCP Server: Use the Astro JS MCP Server so the AI knows the latest Astro syntax.
claude mcp add --transport http "Astro docs" https://mcp.docs.astro.build/mcp
{
"mcpServers": {
"Astro docs": {
"type": "http",
"url": "https://mcp.docs.astro.build/mcp"
}
}
}
Paste the following master prompt into your AI agent (adapt the bracketed text for your tool):
I have initialized a new AstroJS project. Use your available web design skills, plugins, or read modern Tailwind v4 documentation. Also use @DESIGN.md. Keep the website design like Vercel.
Name: [Your Tool Name]
Domain: [yourdomain.com]
Create a [describe your tool in detail]. My competitor is [URL] — analyze it, identify its weaknesses,
and build a better version. Use MPA (multi-page application) architecture for best SEO.
Real-World Prompt Example (from realonlineruler.com):
Create an online ruler website that will have ruler on the edges, user can select where to place the ruler. we want these 3 calibration methods Method 1: Auto-Detect Device Method 2: Screen Diagonal Method 3: Credit Card Calibration
My competitor website is https://anruler.com/ and it have some features which we need and we need to make a website better than it. Give me ideas how to make it better. go on to this website and check what exactly we need to make. Do not copy design or ui from that website.
Iterating:
npm run dev
(What this does: It starts a live preview of your website on your computer. Any changes the AI makes will automatically refresh in your browser so you can test them instantly.)http://localhost:4321 in your browser./clear
Make the site look legitimate and trackable.
/public folder.favicon.svg file.npm run deploy so the tracking goes live.Google needs text to understand what your tool does. Pure tool pages don't rank.
Run this prompt in the AI (remember to run /clear first to save tokens):
Do the on-page SEO of this website for:
Main Keyword: [your keyword]
Supporting Keywords: [comma-separated list of keywords you found in Ahrefs]
Also add proper OG meta tags for social sharing. Write 600 words of highly optimized, user-friendly text about the tool on the home page for SEO purposes. Make sure the page URL structure is clean.
This captures long-tail search traffic and triggers Google Rich Snippets.
Prompt the AI:
Add an SEO-friendly FAQ section to the homepage using JSON-LD structured data. Use these exact questions:
[Paste the list of questions you copied from Ahrefs (https://ahrefs.com/keyword-generator) and Google's (https://google.com) "People Also Ask"]
Example JSON-LD Format the AI should generate:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Can I use my phone as a ruler?",
"acceptedAnswer": {
"@type": "Answer",
"text": "<p>Yes, by using the screen diagonal or credit card calibration methods, you can accurately use your phone screen as a ruler.</p>"
}
}
]
}
</script>
(Why JSON-LD? JSON-LD is a specific code format that Google understands perfectly. Instead of just displaying text on a screen, JSON-LD explicitly tells Google "This is an FAQ". This often results in Google showing your questions directly on the search results page, massively increasing your click-through rate.)
Google AdSense will reject your site without standard legal pages.
Prompt the AI:
Create these pages as separate MPA routes for best SEO:
- Privacy Policy
- Terms & Conditions
- About Us
- Contact Us
Make these pages clearly visible and linked in the home page footer and header.
Also, generate a custom 404 error page, a 500 error page, a sitemap.xml, and a robots.txt file that links to the sitemap.
(Purpose: A sitemap.xml is a literal map of your website for Google's bots. A robots.txt file tells those bots which pages they are allowed to scan. Together, they ensure your site gets indexed on Google as fast as possible.)
Cloudflare Pages provides free, lightning-fast hosting for static sites.
npx wrangler login
(Why this command? Wrangler is Cloudflare's official terminal tool. This command connects your local VS Code environment to your Cloudflare account securely via your browser.)
(Authorize in the browser window that opens)package.json."npm run deploy
(What this does: It bundles all your code, shrinks it for maximum speed, and uploads it directly to Cloudflare's global servers. Within seconds, your updates are live worldwide.)
Your site is now live on a free *.pages.dev subdomain.Now that the site is fully built and deployed, buy your .com domain (from GoDaddy, Hostinger, Namecheap, or BigRock).
💡 Domain Purchasing Tips:
- Double-Check Spelling: Verify the spelling multiple times. Once paid, you cannot change or refund a domain name!
- 1-Year Plan: Registrars often default to a 3-year plan in your cart. Manually change this to 1-year to save upfront costs.
- Auto-Renewal: Turn OFF auto-renewal in your registrar account settings. You should only renew next year if the site is generating income.
.com domain and select the Free plan.A@8.8.8.8.com domain and activate it (add the www version too).Your site is now accessible at both yourdomain.com and yoursite.pages.dev. Google penalizes this duplicate content. (Note: If you decided to use Cloudflare Workers instead of Pages, you must explicitly disable the .workers.dev domain routing in your Cloudflare dashboard after connecting your .com domain).
_headers inside your project's /public folder..pages.dev URL):https://yoursite.pages.dev/*
X-Robots-Tag: noindex
.com domain:npm run deploy
.pages.dev URL in Google Chrome.X-Robots-Tag: noindex (and often other security headers like x-content-type-options: nosniff). This confirms that the duplicate content issue is successfully fixed and Google will ignore this subdomain!Force search engines to crawl your new site.
realonlineruler.com — enter it exactly like that, without https:// or www).TXT, type @ in the Name field, and paste the copied TXT record into the Content field. Save it.https://realonlineruler.com/robots.txt).https://realonlineruler.com/sitemap-index.xml).https://, e.g., https://realonlineruler.com), and press Enter.https://realonlineruler.com) and click submit. (Why? Bing powers DuckDuckGo, Yahoo, and many AI search engines—it's highly worth the 5 minutes).Congratulations! Your website is now fully live and indexed.
⏳ Timeline Expectations:
- Performance Data: It will take about 2 days before Google Search Console starts showing any traffic data for your page.
- Site Icon: It will take roughly 1 week for your website's favicon to appear next to your site in Google search results.
Back in Step 7, you added the Google Analytics tracking code to your website. Now that your site is fully live on the internet, you must verify the installation to track your users.
Do not apply for AdSense on day one. You need to wait at least 1 month before applying so your site has time to age and build trust. You MUST also ensure your Google Analytics shows you are getting a minimum of 10+ consistent organic users per day (check this in Analytics under Real-time → Users). Applying too early with zero traffic will result in an instant rejection.
https:// or www, e.g., realonlineruler.com).npm run deploy. Wait 10 seconds.ads.txt is Not Found.ads.txt option and copy the publisher ID code it gives you.ads.txt file in the public directory with this content: [paste your AdSense publisher ID text]"npm run deploy.yourdomain.com/ads.txt in your browser).npm run deploy, and reapply. You have to be persistent).*.com domain and map in Cloudflare._headers to block .pages.dev indexing.Credits:
- Source Material: Extracted from Compile Future: How to Earn Using AI
- Guide Created By: Mohit Arora (LinkedIn) | GitHub