Astro is still interesting to me because the core stays small and integrations are added on purpose. For a personal open source project, that is exactly what I want: less magic, strong performance, predictable builds.
Integrations that pull real weight
On this site I currently use:
@astrojs/mdx: keeps the default Markdown flow simple, while still letting me embed components where plain text is not enough.@astrojs/sitemap: generates an up-to-date sitemap on every build so search engines pick up new and revised content faster.@astrojs/rss: produces language-specific feeds (/de/rss.xml,/en/rss.xml) so readers can follow updates without social-media algorithms.
These are not exotic plugins. They are stable foundational pieces, and for an initial launch they are usually enough.
How to enable them in practice
In this project, all three are already installed and active. For a fresh Astro project, the usual setup is:
npm install @astrojs/mdx @astrojs/sitemap @astrojs/rss
Then wire mdx and sitemap in astro.config.mjs:
import { defineConfig } from 'astro/config';
import mdx from '@astrojs/mdx';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
site: 'https://your-domain.tld',
integrations: [mdx(), sitemap()],
});
@astrojs/rss is not enabled through the integrations array. You enable it by adding an RSS route, for example src/pages/en/rss.xml.ts:
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
export async function GET(context) {
const posts = (await getCollection('posts')).filter((p) => p.data.lang === 'en' && !p.data.draft);
return rss({
title: 'My feed',
site: context.site,
items: posts.map((post) => ({
title: post.data.title,
pubDate: post.data.pubDate,
link: `/en/posts/${post.id.replace(/^en\\//, '')}/`,
})),
});
}
After that, npm run dev is enough for local verification, and npm run build is your final pre-publish check.
Where AI actually fits
An “official AI integration” in Astro core is not the point. A modular approach works better:
- Use LLM support to shape topics, structure, and rough drafts.
- Store content as versioned Markdown in
src/content/posts/.... - Enforce consistency through the content schema in
src/content.config.ts.
That keeps the workflow transparent: AI helps with drafting, but Git remains the source of truth.
Open source over black boxes
The value in Astro is not “AI out of the box.” The value is how well it combines with open tools:
- GitLab/GitHub for traceable change history
- Cloudflare Pages for reproducible builds
- local agent workflows in Cursor instead of opaque CMS platforms
In short: small understandable building blocks beat one giant all-in-one system.
My current takeaway
For this use case, Astro is strong exactly where I need it: content-first, fast, versionable, and integration-friendly. AI accelerates the writing process, but it does not own the system. I use AI for idea research and occasionally a rough draft, but the final text here is written by me.
The English adaptation is now published, and both versions are linked via translationOf.