astro-static.md 3.0 KB


name: astro-static category: framework public: true database: optional hosting_hints:

  • netlify
  • cloudflare-pages
  • vercel
  • github-pages
  • shared audit_stack:
  • analyze
  • code-clean
  • seo
  • design-review
  • perf
  • cso
  • a11y
  • doc plugins: context7: optional ui-ux-pro-max: yes gstack: optional ---

Astro (static / islands)

Framework statique avec islands (React/Vue/Svelte). Zéro JS par défaut. Idéal portfolio, docs, blog, landing.

Detection signals

Strong signals (×3)

  • FILE: astro.config.mjs OR astro.config.ts OR astro.config.js
  • DEP: package.json contient "astro"

Medium signals (×2)

  • DIR: src/pages/ AVEC FILE .astro
  • EXT: 3+ fichiers .astro
  • DIR: src/components/
  • DIR: src/layouts/

Weak signals (×1)

  • DIR: src/content/ (Content Collections)
  • DEP: @astrojs/* (integrations : react, tailwind, mdx, sitemap)
  • FILE: tsconfig.json avec "extends": "astro/tsconfigs/*"

Composition overlays

  • Islands framework : DEP @astrojs/react, @astrojs/vue, @astrojs/svelte → noter
  • SSR activé : astro.config.* contient output: 'server' → change implications (pas 100% static)

Implications

  • Hébergement : Netlify, Cloudflare Pages, Vercel, GitHub Pages, shared (static)
  • Base de données : OPTIONNELLE — rare en mode statique, possible via Astro DB ou backend externe
  • SEO/GEO : EXCELLENT — HTML statique au build, parfait pour AI crawlers
  • Surface sécurité : PETITE (pas de backend en mode static) / MOYENNE (mode SSR)
  • UI/UX : CRITIQUE

Typical pain points

  • @astrojs/sitemap non installé/configuré
  • @astrojs/mdx mal configuré (pas de frontmatter type-safe)
  • Content Collections sans schéma Zod
  • Images non optimisées (pas <Image> d'Astro)
  • client:load utilisé partout (défait l'intérêt des islands)
  • Pas de robots.txt
  • Pas de JSON-LD / Schema.org
  • View Transitions non utilisées alors que pertinentes
  • RSS feed manquant (blog)

Interview questions (adaptive)

En plus du set minimum business :

  • Type de site : portfolio / blog / docs / landing / e-commerce / autre ?
  • Islands framework si besoin d'interactivité : React / Vue / Svelte / Solid / aucun ?
  • Content Collections utilisées ? (articles / projets / autre)
  • Mode : static (par défaut) ou SSR (output: 'server') ?
  • Déploiement : Netlify / Cloudflare / Vercel / GitHub Pages / autre ?
  • i18n prévu ? (oui + quelles langues / non) [if: public=true]
  • CMS headless couplé ? (Sanity / Contentful / Notion / aucun)

Plugin recommendations

  • context7 : OPTIONAL — ON si Astro version récente + integrations nombreuses
  • ui-ux-pro-max : ON — Astro est souvent choisi pour sites "beaux"
  • gstack : OPTIONAL — utile pour Lighthouse

Example project layout

astro.config.mjs
src/
  pages/
    index.astro
    about.astro
    blog/[slug].astro
  layouts/
    Base.astro
  components/
    Header.astro
    Card.tsx  (React island)
  content/
    blog/*.md
public/
  favicon.svg