Gitea Pages serves .js with text/plain MIME, which browsers reject for ES modules. Inlining the entire bundle into index.html bypasses the issue and keeps the deploy a single static file.
React + TS + Tailwind + Framer Motion SPA per TRD: - 6 editable templates (elegant, classic, modern, romantic, festive, minimal) - Editable event fields (type, names, date, time, location, message, RSVP) - Background modes: gradient presets, solid color, AI (OpenAI Images) - Real-time animated preview with Framer Motion - Export to PNG (html-to-image) and PDF (jsPDF) - Responsive mobile design - Russian UI - OpenAI API key stored locally in browser, calls api.openai.com directly