interactives/astro.config.mjs
Neeldhara Misra 8e61afac2b Switch to standalone Netlify Function for admin API
Remove Astro adapter (causes esbuild bundling errors on Netlify)
and use a pure static build + standalone Netlify Function instead.

- Removed @astrojs/netlify adapter — site builds as fully static
- Created netlify/functions/admin.mts as a standalone Netlify Function
- Function handles all admin API operations via GitHub API
- Removed src/pages/api/admin.ts (Astro SSR route)
- Local dev: admin syncs to localStorage (server sync fails silently)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 03:44:01 +05:30

41 lines
1,018 B
JavaScript

// @ts-check
import { defineConfig, fontProviders } from "astro/config";
import mdx from "@astrojs/mdx";
import sitemap from "@astrojs/sitemap";
import react from "@astrojs/react";
import tailwindcss from "@tailwindcss/vite";
// Admin API runs as a standalone Netlify Function (see netlify/functions/admin.mts)
// https://astro.build/config
export default defineConfig({
site: "https://interactives.neeldhara.com",
integrations: [mdx(), sitemap(), react()],
output: "static",
fonts: [
{
provider: fontProviders.fontsource(),
name: "Imprima",
cssVariable: "--font-imprima",
},
],
vite: {
plugins: [tailwindcss()],
build: {
target: "es2022",
minify: "esbuild",
// Sanitize chunk filenames — Netlify esbuild chokes on ! and ~ in names
rollupOptions: {
output: {
sanitizeFileName: (name) => name.replace(/[^\w./-]/g, '_'),
},
},
},
esbuild: {
target: "es2022",
charset: "utf8",
},
},
});