Frontend Integration (Vite)
Pionia is API-first. v3 adds first-class Vite scaffolding — React, Vue, and Svelte templates with a dev proxy to /api/v1/.
Scaffold on new project
When creating an app you can pick a frontend template interactively or pass a flag:
php pionia new my-app --install --vue-ts
composer create-project pionia/pionia-app my-api -- --react-ts| Framework flag | Stack |
|---|---|
react-ts | React + TypeScript (default when prompted) |
vue-ts | Vue + TypeScript |
svelte-ts | Svelte + TypeScript |
--with-frontend=react-ts is an alias for the framework flag. Non-TTY environments (CI, tests) skip prompts unless a flag is passed.
Scaffold in existing project
php pionia frontend:scaffold --framework=react-ts --yes| Framework flag | Stack |
|---|---|
react-ts | React + TypeScript |
vue-ts | Vue + TypeScript |
svelte-ts | Svelte + TypeScript |
Creates frontend/ with Vite config proxying API calls to your Pionia dev server.
Development
Terminal 1 — API:
php pionia serveTerminal 2 — Vite:
php pionia frontend:devProduction build
php pionia frontend:buildAssets land in public/assets/; SPA entry is served via SPA fallback when public/index.html exists (see [frontend] SPA_FALLBACK in settings.ini).
Cleanup
php pionia frontend:clean # remove build output
php pionia frontend:drop # remove frontend/ treeCORS
Default scaffold includes [cors] for http://localhost:5173 in settings.ini.