- capacitor.config.json: appId gr.bonamin.xenia, webDir dist-native, androidScheme http (origin http://localhost - no mixed-content block when calling venue servers over plain HTTP on the LAN) - vite: `--mode native` builds to dist-native with the PWA plugin disabled (no service worker inside the app) - Android: minSdk 24 / target 36; CAMERA permission for QR pairing; cleartext allowed via network_security_config (LAN IPs can't be listed per-domain); allowBackup=false so backups never carry login tokens - Release signing reads ~/.xenia/keystore.properties (override with XENIA_KEYSTORE_PROPS) - the key never enters the repo; versionName 1.0.0 / versionCode 1 with a bump-both rule for sideloaded updates - npm scripts build:native, apk:debug, apk:release (scripts/build-apk.mjs); APKs land in releases/ (gitignored); release APK is also copied to public/downloads/ so venue servers serve it at /downloads/xenia-waiter.apk - waiter nginx: /downloads/ served as application/vnd.android.package-archive, real 404 when missing (never falls through to index.html) - launcher icons + splash generated from the app icon (assets/ is the source) - .gitattributes: gradlew LF, *.bat CRLF Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
React + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Oxc
- @vitejs/plugin-react-swc uses SWC
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the ESLint configuration
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.