I recently launched SiftedTools, an independent AI tool comparator for e-commerce, published in 7 languages (FR/EN/ES/DE/IT/PT/NL). Here's the technical stack and why I made these choices.
The stack
- Astro for static site generation (145 pages, builds in under 2 seconds)
- Cloudflare Pages for hosting (free tier, drag-and-drop deployment)
- Markdown for all content (65 money pages + 21 guides + 7 homepages)
- GitHub for version control
- No database — everything is flat files
Why Astro over Next.js
For a content-heavy site with zero interactivity (no user accounts, no forms beyond a newsletter signup), Astro ships zero JavaScript by default. That means:
- Perfect Lighthouse scores out of the box
- Pages that load in under 500ms on any connection
- No hydration cost, no client-side routing overhead
Next.js would have shipped 80-200KB of JS for features I don't use. For a comparison site where SEO is everything, that's unacceptable overhead.
The i18n architecture
7 languages live under subfolders (/fr/, /en/, /es/, etc.) with:
- Localized slugs (not just translated content, but native URL structures)
- Full hreflang network (8 entries per page: 7 languages + x-default)
- A neutral root language selector at
/with soft browser detection - Each content page exists as clean
.mdby appending.mdto the slug — this is specifically for LLM crawlers who prefer Markdown
The i18n dictionary lives in a single TypeScript file with ~600 keys across 7 languages.
The GEO layer (AI search optimization)
Beyond traditional SEO, I optimized for AI search engines (ChatGPT, Gemini, Perplexity):
-
robots.txtexplicitly allows GPTBot, ClaudeBot, PerplexityBot, and 7 other AI crawlers -
llms.txtat the root indexes all 145 pages with descriptions (the emerging standard for LLM discoverability) -
llms-full.txtcontains detailed verdicts for deeper context - Every content page as
.mdendpoint — LLMs parse Markdown better than HTML - Schema.org with FAQPage, author, Organization on every money page
Deployment
Cloudflare Pages free tier with drag-and-drop. No CI/CD, no build pipeline. I run npm run build locally, drag the dist/ folder to the Cloudflare dashboard, and it's live in 30 seconds. Simple, free, fast.
The entire site costs $0/month to host.
What I'd do differently
- I'd set up CI/CD from day one (GitHub Actions → Cloudflare Pages) instead of manual drag-and-drop
- I'd use Astro content collections with type-safe schemas earlier (I retrofitted them)
- I'd build the 7-language architecture before writing content, not after
Try it
The site: https://siftedtools.com
The repo: https://github.com/MVMStudio34/siftedtools
Happy to answer questions about the Astro i18n setup or the GEO optimization layer.
Top comments (0)