- Replace monolithic React SPA (App.tsx) with 7 Astro pages (+ routing) - Implement full design system from design/ (OKLCH tokens, Tailwind 4 @theme) - Add 12 Astro components (Button, Badge, Card, Sidebar, Header, states) - Add 11 React islands (AuthGuard, MessageFeed, VoiceControls, AudioVisualizer, etc.) - Add 3 Zustand stores (UI, voice, message state) - Add CSS architecture: dark/light themes, glassmorphism, fluid typography, animations - Add 404, login, settings, recordings pages - Remove 40+ legacy React SPA files - Add Particles background and MascotChat deferred islands - Wire WebSocket bridge for real-time messages and voice events Build: 7 pages in ~900ms Typecheck: clean (0 errors) Lint: clean (0 errors)
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import { defineConfig } from "astro/config";
|
||
import react from "@astrojs/react";
|
||
|
||
// ─────────────────────────────────────────────────────────────
|
||
// BETE – Astro Configuration
|
||
// Tailwind v4 ditangani via PostCSS (postcss.config.js)
|
||
// ─────────────────────────────────────────────────────────────
|
||
export default defineConfig({
|
||
integrations: [react()],
|
||
|
||
output: "static",
|
||
|
||
// Dev server
|
||
server: {
|
||
host: "0.0.0.0",
|
||
port: 3000,
|
||
},
|
||
|
||
// Preview
|
||
preview: {
|
||
host: true,
|
||
port: 3000,
|
||
allowedHosts: [
|
||
"imphnen.asepharyana.my.id",
|
||
"imphnen.asepharyana.tech",
|
||
"imphnen.asepharyana.web.id",
|
||
],
|
||
},
|
||
|
||
// Vite config
|
||
vite: {
|
||
server: {
|
||
allowedHosts: [
|
||
"imphnen.asepharyana.my.id",
|
||
"imphnen.asepharyana.tech",
|
||
"imphnen.asepharyana.web.id",
|
||
],
|
||
watch: {
|
||
ignored: ["!**/node_modules/**"],
|
||
},
|
||
},
|
||
},
|
||
});
|