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>
Vite/Rollup generates chunk names with !~{} characters that cause
esbuild syntax errors on Netlify's build system. Added sanitizeFileName
to replace special characters with underscores.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Set esbuild charset to utf8 and target to es2022 to avoid
syntax errors from ASCII-escaped unicode in the bundled output
on Netlify's build environment.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Netlify's asset post-processing was re-minifying Vite's output
and causing esbuild syntax errors. Disable it since Astro/Vite
already handles bundling and minification.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Swap @astrojs/node for @astrojs/netlify adapter
- Admin API reads/writes admin-data.json via GitHub API in production
- Status changes (commitStatus) and deletes commit directly to repo
- Env vars: ADMIN_PASSWORD, GITHUB_TOKEN
- Local dev falls back to filesystem (no env vars needed)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Astro-based site with 40+ interactive math games, puzzles, and explorations.
Includes admin dashboard, todo system, blog, theme/subcategory navigation,
and embed pages for iframe embedding.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>