// @ts-check
import { defineConfig } from "astro/config";
import react from "@astrojs/react";
import node from "@astrojs/node";
import tailwindcss from "@tailwindcss/vite";

/**
 * Astro 6 — landing publique + blog rubis.pro.
 *
 * Stratégie de rendu (cf. /docs/tech/architecture.md §3) :
 *  - `output: "server"` → SSR par défaut, on opt-out par page avec
 *    `export const prerender = true;` pour les pages statiques.
 *  - Landing + pages légales : `prerender = true` (HTML figé au build, ultra-rapide).
 *  - Blog (/blog, /blog/:slug) : SSR pur, fetch Adonis API à la requête, cache
 *    HTTP côté Traefik / nginx pour absorber les pics — publish admin = immédiat.
 *
 * Adapter Node standalone : produit un serveur autonome dans `dist/server/`,
 * démarré par `node ./dist/server/entry.mjs` dans le container K3s.
 */
export default defineConfig({
  site: "https://rubis.pro",
  output: "server",
  adapter: node({
    mode: "standalone",
  }),
  integrations: [
    react(),
  ],
  vite: {
    plugins: [tailwindcss()],
  },
  server: {
    host: "0.0.0.0",
    port: 5174,
  },
});
